임베디드 엔지니어 교과서
도서명:임베디드 엔지니어 교과서
저자/출판사:와타나베,노보루,마키노,신지/제이펍
쪽수:304쪽
출판일:2020-07-29
ISBN:9791190665407
목차
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 임베디드 시스템을 사용한 C언어 프로그래밍 77
14 아두이노의 하드웨어 확인하기 79
아두이노란? 79
아두이노 우노의 하드웨어 구성 80
마이크로컴퓨터의 데이터 시트 조사하기 82
데이터 시트와 보드 맞춰 보기 84
ATmega328P의 내부 구성과 커넥터와의 관계 88
15 LED를 ON/OFF하는 실험 93
LED 실험의 개요 93
LED 접속 94
점멸 프로그램 작성하기 96
동작 확인 101
16 LED 실험 프로그램 이해하기 103
CPU의 관점에서 바라본 레지스터 제어 103
어셈블러에서 확인 103
17 LED 점멸 시간 지정하기 109
타이머의 이용 111
CHAPTER 5 실시간 운영체제 113
18 임베디드 시스템의 운영체제 115
운영체제란? 115
임베디드 운영체제가 필요한 이유 116
임베디드 운영체제를 사용할 때의 단점 121
19 임베디드 운영체제 사용해 보기 123
임베디드 운영체제의 동작 123
20 FreeRTOS 동작 배우기 128
FreeRTOS의 구성 128
FreeRTOS의 기본 동작 129
소스 코드의 실제 동작 131
21 임베디드 운영체제의 역사 136
임베디드 운영체제의 역사 136
임베디드 운영체제의 종류와 시대 배경 138
22 임베디드 운영체제의 선택 방법 142
임베디드 운영체제의 선정 포인트 142
CHAPTER 6 스마트 디바이스 145
23 데이터 주도 사회 147
데이터의 활용 147
24 스마트 디바이스 149
스마트 디바이스란? 149
스마트 디바이스의 사용 예 150
스마트 디바이스의 구성 152
CHAPTER 7 임베디드 리눅스 161
25 임베디드 리눅스 163
리눅스 운영체제를 사용하는 이유 163
리눅스 운영체제가 동작하는 하드웨어 구성 164
리눅스 운영체제가 동작하는 소프트웨어 구성 168
26 임베디드 리눅스 소프트웨어의 개요 170
프로세스 170
스레드 171
IPC 171
커널 172
시스템 콜 인터페이스 175
27 임베디드 리눅스의 빌드와 기동 179
이용할 하드웨어 179
라즈베리 파이 3B+의 리눅스 배포판 181
라즈베리 파이 3B+에서 Yocto를 기동하기까지의 흐름 183
Yocto에서의 빌드 실행 183
28 임베디드 리눅스의 동작 확인 187
Yocto 재빌드에 의한 자체 개발환경의 도입 187
sysfs의 이용 196
오픈 소스 소프트웨어의 이용 198
임베디드 리눅스 개발에서 주의해야 할 포인트 203
CHAPTER 8 임베디드 소프트웨어의 개발 프로세스 207
29 임베디드 시스템의 라이프사이클 209
30 임베디드 시스템의 개발 방법 211
동시 개발 211
프런트 로딩 212
임베디드 소프트웨어 개발 프로세스의 V자 모델 213
임베디드 소프트웨어 개발 프로세스 214
31 시스템 요구 정의 216
32 시스템 아키텍처 설계 218
33 소프트웨어 요구 정의 223
34 소프트웨어 아키텍처 설계 225
35 소프트웨어 상세 설계 228
36 구현, 단위 테스트 229
37 소프트웨어 결합, 통합 테스트 232
38 소프트웨어 타당성 확인 테스트 235
39 시스템 결합, 통합 테스트와 시스템 타당성 확인 테스트 236
40 제품 출하 237
CHAPTER 9 사물인터넷/인공지능 시대의 임베디드 소프트웨어 개발 239
41 산업혁명과 임베디드 시스템 241
제1차 산업혁명 241
제2차 산업혁명 242
제3차 산업혁명 243
제4차 산업혁명 245
42 DX 시대의 임베디드 시스템 개발 247
기능 배치의 변화 247
43 임베디드 엔지니어의 학습방법 253
수파리 이론 253
표준적인 개발 방법 배우기 254
자신이 직접 정보를 제공하면 다른 정보도 수집된다 255
APPENDIX A Arduino IDE/Yocto의 설치 257
44 Arduino IDE를 윈도우 10에서 설치하기 259
Arduino IDE의 입수 259
Arduino IDE의 설치 262
AVR 명령의 동작 확인 266
45 Yocto 빌드 환경의 준비 267
dash의 전환 267
빌드에 필요한 패키지 설치 267
프록시의 설정이 필요할 때 268
46 라즈베리 파이 3의 Yocto 환경 구축 271
Yocto의 버전 271
Yocto의 환경 구축 271
Yocto 환경의 셋업 272
찾아보기 276