CHAPTER 1 임베디드 소프트웨어 엔지니어의 업무 1
01 임베디드 시스템이란? 3
임베디드 시스템의 중요성 3
임베디드 시스템과 PC, 서버는 어떻게 다른가? 4
02 임베디드 시스템의 특징 5
Nature: 자연 법칙의 취급 6
Time: 실시간성의 요구 7
Constraint: 엄격한 제약 사항 8
Reliability: 높은 신뢰성 9
제품별 NTCR 요구사항의 특징 9
03 임베디드 소프트웨어란? 10
소프트웨어의 종류 10
04 임베디드 소프트웨어 엔지니어의 업무 13
임베디드 소프트웨어 엔지니어가 속하는 조직 13
임베디드 소프트웨어의 규모에 따라 조직은 변한다 13
하청이 아닌 프로 서비스 14
05 임베디드 소프트웨어 엔지니어의 직종 16
CHAPTER 2 마이크로컴퓨터 하드웨어 19
06 임베디드 시스템의 구성 21
07 임베디드 마이크로컴퓨터의 구성 23
하드웨어의 종류 23
CPU와 마이크로컴퓨터 24
메모리 25
메모리의 종류 27
버스의 구성 29
메인 버스의 용도 29
로컬 버스 31
주변장치 34
주변장치의 제어 방식 36
08 CPU란? 38
CPU의 명령 실행 40
인터럽트 43
CHAPTER 3 임베디드 소프트웨어 47
09 임베디드 시스템의 소프트웨어 49
임베디드 소프트웨어의 종류 49
10 임베디드 소프트웨어를 개발하는 흐름 51
실제 빌드의 흐름 확인하기 53
11 어셈블리 언어로부터 알 수 있는 것 59
스타트업 루틴 61
main 함수가 호출될 때까지의 흐름 추적 61
메모리 맵 63
스택 64
스택과 인터럽트 65
12 임베디드 소프트웨어의 테스트 환경 68
ICE 68
13 임베디드 시스템 프로그래밍에서의 C언어 71
최적화 옵션의 장점과 단점 71
volatile 선언 71
unsigned와 signed 72
pragma 73
포인터와 배열 73
인터럽트 핸들러 74
CHAPTER 4 임베디드 시스템을 사
아두이노와 라즈베리 파이를 이용한 최신 실전 기술 수록!
임베디드 엔지니어를 목표로 하는 사람과 신입 임베디드 엔지니어를 위한 필독서!
이 책은 하드웨어 및 소프트웨어 지식, 임베디드 프로그램의 개요, 실시간 운영체제, 임베디드 소프트웨어의 개발 프로세스뿐만 아니라 사물인터넷/인공지능 시대의 임베디드 소프트웨어에 대해서도 상세히 다루고 있습니다. 또한, 앞으로 임베디드 시스템을 개발할 엔지니어가 개발환경에 참가하기 전에 알아 두어야 할 필수 사항을 수록했습니다. 특히, 마이크로컴퓨터 보드가 단순한 블랙박스가 아닌, 실제로 어떻게 동작하는지에 대해 그 구조를 이해하고 문제를 해결할 수 있도록 충분한 내용을 담았습니다.
다른 책이나 인터넷 등에도 아두이노나 라즈베리 파이에 관한 다양한 정보가 있지만, 대부분이 센서에 접속하거나 서버 설정 방법을 설명하는 정도입니다. 하지만 이 책에서는 독자가 시중에서 구하기 쉬운 소형 마이크로컴퓨터 아두이노와 고성능 마이크로컴퓨터를 탑재한 라즈베리 파이를 활용해서 마이크로컴퓨터나 운영체제를 화이트박스로서 이해하는 것과 함께, 개발환경에서 이용되는 소형 마이크로컴퓨터부터 고성능 마이크로컴퓨터까지 응용하는 것을 목표로 합니다