목차
머리말 = 3
이 책을 읽는 방법 = 4
독자 지원 센터 = 5
첫째마당 임베디드 프로그래밍 개요
01 임베디드 프로그래밍 = 15
01-1 임베디드의 이해 = 16
임베디드란 = 16
임베디드 소프트웨어 = 20
01-2 임베디드 프로그래밍의 개념 = 22
임베디드 시스템의 소프트웨어 = 22
임베디드에서 사용하는 운영체제 = 23
01-3 하드웨어와 프로그래밍의 관계 = 25
프로그래밍이 필요한 하드웨어란 = 25
임베디드 제품이 생산되는 과정 = 28
정리해 볼까요? = 34
둘째마당 임베디드 프로그래밍에 필요한 하드웨어 지식
02 임베디드의 두뇌, CPU = 37
02-1 CPU의 이해 = 38
CPU의 중요성 = 38
CPU란 = 39
CPU의 역사 = 42
02-2 CPU의 구성 = 48
CPU 구성 요소 = 48
02-3 CPU의 종류 = 52
CPU 선정 = 52
다양한 CPU = 53
임베디드 시스템의 운영체제 = 56
정리해 볼까요? = 59
03 메모리 = 61
03-1 메모리의 개념 = 62
메모리의 물리적 해석 = 62
메모리를 사용하기 위한 개념 = 65
03-2 메모리의 구조 = 69
메모리의 기본 구조 = 69
8051 = 71
03-3 메모리의 종류 = 74
다양한 메모리 = 74
정리해 볼까요? = 77
04 주변 장치 = 79
04-1 주변 장치의 이해 = 80
주변 장치란 = 80
주변 장치의 호환성 = 81
04-2 주변 장치의 구성 = 84
임베디드 시스템의 장치 구성 = 84
04-3 주변 장치의 종류 = 88
임베디드 시스템에 적용할 수 있는 장치의 종류 = 88
정리해 볼까요? = 94
셋째마당 임베디드 프로그래밍에 필요한 소프트웨어 지식
05 며느리도 모르는 어셈블리어 = 97
05-1 어셈블리어의 이해 = 98
기계어, 어셈블리어, 고급 언어 = 98
어셈블리어란 = 101
05-2 어셈블리어의 이용 = 109
어셈블리어를 이용하는 이유 = 109
05-3 어셈블리어의 장·단점 = 121
어셈블리어의 장점 = 121
어셈블리어의 단점 = 122
정리해 볼까요? = 125
06 천상천하 유아독존 C = 127
06-1 C 언어가 최고인 이유 = 128
C와 임베디드 = 128
C의 구성 요소 = 129
06-2 C와 어셈블리어 = 134
C와 어셈블리 프로그램 = 134
C와 어셈블리어 함께 사용하기 = 135
06-3 C++로 해 보자 = 139
C++ = 139
정리해 볼까요? = 141
07 컴파일과 링크, 그리고 다운로드 = 143
07-1 임베디드 프로그래밍 개발 과정 = 144
임베디드 프로그래밍 개발 3단계 = 144
07-2 크로스 컴파일 = 150
크로스 컴파일이란 = 150
크로스 컴파일하기 = 151
07-3 Make와 링크 = 153
Make란 = 153
실무에서 사용하는 Makefile = 155
07-4 다운로드 = 159
다운로드하기 = 159
디버깅 = 160
정리해 볼까요? = 162
넷째마당 약방의 감초, 리눅스
08 실시간 운영체제 = 165
08-1 임베디드 시스템의 운영체제 = 166
임베디드에 사용할 수 있는 운영체제 = 166
범용 운영체제와 임베디드 운영체제 = 167
하드웨어 자원 관리 = 168
임베디드 운영체제의 활용 = 169
08-2 실시간 운영체제 = 170
태스크 = 170
멀티태스킹 = 170
태스크의 정보 = 171
TCB = 174
스케줄러와 컨텍스트 스위칭 = 175
선점형 커널과 비선점형 커널 = 176
상호 배제 = 178
08-3 임베디드 프로그래밍과 운영체제 = 181
Foreground/Background Program = 181
정리해 볼까요? = 183
09 임베디드의 최고봉 리눅스 = 185
09-1 리눅스를 파헤치자 = 186
진화되는 운영체제 리눅스 = 186
리눅스의 장·단점 = 186
리눅스의 사용 = 189
리눅스 커널의 특징 = 191
09-2 임베디드 시스템에 리눅스 적용하기 = 200
크로스 컴파일 환경 구축하기 = 200
부트 로더, 커널 및 루트 파일 시스템 = 202
임베디드 리눅스 개발자가 되기 위한 선행 과정 = 204
09-3 하드웨어를 제어하는 디바이스 드라이버 = 206
모듈 프로그래밍 = 206
디바이스 드라이버 = 209
기본적인 디바이스 드라이버 작성 방법 = 212
정리해 볼까요? = 220
다섯째마당 ARM과 MIPS를 이용한 임베디드 프로그래밍
10 ARM과 MIPS = 223
10-1 임베디드 프로세서의 종류 = 224
임베디드 프로세서란 = 224
프로세서, 컨트롤러 = 224
다양한 임베디드 프로세서 = 225
10-2 모바일의 강자 ARM = 230
ARM = 230
왜 ARM인가 = 230
ARM의 Suffix = 231
StronARM과 XScale = 231
ARM 개발 과정 = 232
10-3 임베디드 최고의 프로세서 MIPS = 234
힘 좋은 임베디드 프로세서 = 234
왜 MIPS인가 = 234
정리해 볼까요? = 237
11 모니터 프로그램 = 239
11-1 모니터링 프로그램의 이해 = 240
모니터링이란 = 240
비주얼 C++와 임베디드 시스템의 디벙깅 차이 = 241
모니터링에 필요한 기본 개념들 = 245
모니터링 프로그램이 필요한 이유 = 259
11-2 YAMON의 이해와 실제 포팅 예제 = 261
개발 환경 = 261
초기 설정 = 262
YAMON이란 = 265
PMON이란 = 267
정리해 볼까요? = 268
여섯째마당 PC로 해 보는 임베디드 프로그래밍
12 임베디드 프로그래밍을 위한 기본 개념 = 271
12-1 직렬 포트의 이해 = 272
임베디드에 통신은 왜 필요한가 = 272
직렬 통신 방식의 이해 = 273
RS-232C = 274
RS-232C 포트의 모양 = 277
PC 포트 = 279
하이퍼 터미널의 이용 방법 = 280
12-2 병렬 포트의 이해 = 283
병렬 포트의 모드 = 283
병렬 포트의 사용 방법 = 284
12-3 임베디드 프로그래밍을 기본적인 하드웨어 = 288
전원 = 288
LED = 291
LCD = 292
풀업과 풀다운 저항 = 293
정리해 볼까요? = 295
13 Turbo-C를 이용한 임베디드 프로그래밍 맛보기 = 297
13-1 PC의 버저로 소리 내기 = 298
Turbo-C를 이용한 버저 제어 = 298
버저로 동요 연주하기 = 300
13-2 병렬 포트 이용하기 = 302
테스트 보드 제작 = 302
병렬 포트를 이용하여 문자 LCD 제어하기 = 308
13-3 직렬 포트 이용하기 = 315
UART = 315
다른 PC와 직렬 통신하기 = 316
타깃 보드와 직렬 통신하기 = 320
13-4 임베디드 하드웨어의 추가 개념 = 323
문자 LCD 이해하기 = 323
PC의 UART 이해하기 = 331
정리해 볼까요? = 335
14 비주얼 베이직을 이용한 임베디드 프로그래밍 = 337
14-1 비주얼 베이직을 이용한 직렬 포트 제어 = 338
임베디드 프로그래밍과 비주얼 베이직의 관계 = 338
비주얼 베이직을 이용한 화면 구성 = 339
비주얼 베이직 코드 작성하기 = 342
14-2 비주얼 베이직을 이용한 병렬 포트 제어 = 347
DriverLINX Port I/O 드라이버 = 347
병렬 포트 제어하기 = 348
정리해 볼까요? = 361
15 비주얼 C++를 이용한 임베디드 프로그래밍 = 363
15-1 비주얼 C++를 이용한 직렬 포트 제어 = 364
비주얼 C++를 이용한 화면 구성 = 364
15-2 비주얼 C++를 이용한 병렬 포트 제어 = 377
비주얼 C++를 이용한 문자 LCD 제어하기 = 377
정리해 볼까요? = 385
16 JTAG = 387
16-1 JTAG의 이해 = 388
JTAG의 유래 = 388
JTAG의 개념 = 388
JTAG의 전체적인 모습 = 389
JTAG의 용도 = 391
JTAG로 IDCODE 읽기 = 391
16-2 StrongARM(SA1110)의 JTAG = 395
ARM과 StrongARM(SA1110)이란 = 395
StrongARM(SA1110)의 JTAG 구성도 = 396
StrongARM(SA1110)의 Instruction Register 구성 = 396
StrongARM(SA1110)의 IDCODE = 397
16-3 비주얼 C++를 이용한 StrongARM(SA1110)
JTAG 프로그래밍 = 399
JTAG 케이블 이해하기 = 399
IDCODE 읽어 오기 = 399
Bypass 모드 = 405
EXTEST 모드 = 408
16-4 부록 = 411
StrongARM(SA1110)의 Boundary Scan Cell = 413
TAP Controller = 413
JTAG 명령어 레지스터 = 416
NOR Flash Memory = 417
정리해 볼까요? = 421
찾아보기 = 422