임베디드 시스템을 개발 한다는 것은 특정 동작만을 수행하는 하드웨어와 소프트웨어를 개발한다는 말과 동일하다. 그러기 위해서는 그 목적에 맞는 최적의 하드웨어를 구성해야 하고 그 하드웨어를 동작시키기 위한 개발 환경을 구축하여야 한다.세상에는 셀수도 없을만큼 많은 종류의 임베디드용 CPU가 있다. 그 중에서 하나를 선택하는 것은 쉽지 않은 일이다. 기능, 성능, 소모전력, 가격, 납기 등등 여러가지 조건을 따져 보고 최종적으로 하나의 CPU를 선정하여야 하기 때문이다.이 블로그에서는 AVR CPU를 통해서 임베디드 시스템의 개념과 프로그램 개발에 필요한 내용을 설명하려고 하기 때문에 이미 어느 정도는 CPU가 정해진거나 다름없다. ATMEL사에서 생산되는 많은 CPU중에서 ATmega128이 가장 대중적으..
C언어를 배울 때 처음으로 작성해 보는 코드는 십중팔구 printf()를 이용하여 화면에 문자를 출력해보는 것으로 시작했을 것이다. 이때 printf() 안에 들어가는 내용은 "hello, world" 아니면 자기 이름이었을 것이다. C언어뿐만 아니라 대부분의 컴퓨터 프로그래밍 언어는 "hello, world"와 같이, 문자를 출력하는 몇줄의 간단한 예제 코드로 설명을 시작한다. 이렇게 간단한 코드를 첫번째 예제로 사용하는 이유는, 작성된 소스코드를 컴파일러가 제대로 해석하여 실행파일을 성공적으로 만드는지, 생성된 실행 파일이 제대로 동작되는지를 빠르고 쉽게 검증해 보고자 하는 것이다. 비록 두 단어를 출력하기 위하여 작성되는 코드는 단 몇줄에 불과하더라도, 작성된 소스코드를 분석하여 프로그래머가 의도한..
알고 있으면 좋은것들 변수는 어디에? 변수는 여기에! 엔디안(Endian) EABI(Embedded Application Binary Interface) random 함수 포인터(Pointer) - 개념 패킷 통신 패킷 통신 - Serial Packet Communication 패킷 통신 - 회로 구성 패킷 통신 - PC 프로그램 패킷 통신 - 바이너리 데이터(Binary data) 패킷 통신 - Start/Stop flag 패킷 통신 - CRC 패킷 통신 - Message ID 패킷 통신 - Request/Reply RTOS Linker Script - 링커 스크립트 crt0 startup.S ISR(Interrupt Service Routine) RTOS - Real Time Operating Sys..