[1부 임베디드 시스템]
1장 임베디드 시스템의 개요
1.1 임베디드 시스템의 이해
1.2 프로세서
1.3 메모리 장치
1.4 입출력 장치
1.5 시스템 버스
1.6 연습문제
2장 임베디드 시스템의 설계
2.1 임베디드 시스템 설계 절차
2.2 임베디드 하드웨어 설계
2.3 임베디드 소프트웨어 설계
2.4 임베디드 소프트웨어 개발 환경
2.5 연습문제
[2부 ARM 프로세서의 이해]
3장 ARM 아키텍처와 동작 원리
3.1 ARM 아키텍처
3.2 ARM 명령어와 파이프라인
3.3 ARM 구조와 명령어 실행
3.4 연습문제
4장 프로그래머 모델
4.1 명령어
4.2 트러스트존 모델과 보호 영역
4.3 동작 모드
4.4 레지스터
4.5 메모리 구조
4.6 예외 처리
4.7 연습문제
5장 ARM 프로세서 명령어
5.1 ARM 프로세서 명령어의 특징
5.2 아키텍처 v4 ARM 명령어
5.3 아키텍처 v5 ARM 명령어
5.4 아키텍처 v6 ARM 명령어
5.5 아키텍처 v7 ARM 명령어
5.6 16비트 Thumb 명령어
5.7 Thumb-2와 Thumb-2EE 명령어
5.8 NEON 및 VFP 프로그래밍
5.9 ARM의 의사 명령어
5.10 연습문제
6장 예외 처리와 시스템 리셋
6.1 ARM 프로세서의 예외 처리
6.2 예외 처리
6.3 시스템 리셋
6.4 연습문제
[3부 ARM 프로세서와 임베디드 하드웨어 설계]
7장 ARM 프로세서 코어
7.1 ARM 프로세서의 종류
7.2 ARM9 프로세서
7.3 ARM11 프로세서
7.4 Xscale 마이크로 아키텍처
7.5 Cortex 애플리케이션 프로세서
7.6 Cortex 임베디드 프로세서
7.7 연습문제
8장 ARM 프로세서
8.1 ARM 프로세서의 구조
8.2 ARM 프로세서의 제어
8.3 캐시와 쓰기 버퍼
8.4 MMU
8.5 MPU
8.6 TCM
8.7 멀티프로세서
8.8 연습문제
9장 SoC 구조
9.1 SoC와 AMBA 버스
9.2 상용 SoC 제품
9.3 연습문제
10장 임베디드 시스템 하드웨어 설계
10.1 하드웨어 구성 요소
10.2 하드웨어 설계
10.3 연습문제
[4부 임베디드 소프트웨어 설계]
11장 소프트웨어 개발 툴의 이해와 활용
11.1 소프트웨어 개발 툴의 구성 및 사용법
11.2 메모리 구조 설계
11.3 다운로드와 디버깅
11.4 연습문제
12장 임베디드 C 프로그래밍과 소프트웨어 최적화
12.1 컴파일러 사용과 옵션 설정
12.2 임베디드 C의 구성 요소와 프로그램 최적화
12.3 나눗셈과 나머지 연산
12.4 메모리 참조와 포인터
12.5 ARM/Thumb 인터워킹
12.6 NEON 명령의 사용
12.7 연습문제
13장 시스템 리셋과 부트코드
13.1 리셋 핸들러
13.2 부트코드 작성
13.3 연습문제
14장 하드웨어 제어
14.1 GPIO 제어와 LED 점멸
14.2 UART 장치 제어
[5부 임베디드 ARM 리눅스]
15장 개발 환경과 부트로더
15.1 부트로더의 이해
15.2 U-Boot 빌드와 설치
15.3 U-Boot 활용
15.4 U-Boot 포팅
15.5 연습문제
16장 리눅스 커널
16.1 임베디드 시스템과 리눅스
16.2 리눅스 커널과 프로세스
16.3 리눅스의 메모리 사용
16.4 예외 처리와 인터럽트
16.5 시스템 콜 인터페이스
16.6 가상 파일시스템
16.7 사용자 프로그램 실행
16.8 프로세스 간 통신과 동기화
16.9 리눅스 커널 디렉터리 및 소스
16.10 리눅스 커널 초기화 절차
16.11 연습문제
17장 디바이스 드라이버
17.1 디바이스 드라이버의 이해
17.2 디바이스 드라이버 모델
17.3 커널 모듈
17.4 메모리 매핑
17.5 문자 디바이스
17.6 블록 디바이스
17.7 네트워크 인터페이스
17.8 연습문제
18장 리눅스 파일시스템과 애플리케이션
18.1 리눅스 파일시스템
18.2 루트 파일시스템
18.3 리눅스 애플리케이션
18.4 연습문제
[6부 커널 포팅 및 디바이스 제어]
19장 커널 포팅 준비
19.1 타깃 머신 선정 및 등록
19.2 커널 소스 준비
19.3 커널 소스 설치, 빌드 및 탑재
19.4 연습문제
20장 커널 포팅
20.1 타깃 머신 추가
20.2 커널 포팅과 디버깅
20.3 커널 포팅
20.4 멀티코어 지원
20.5 연습문제
21장 루트 파일시스템
21.1 루트 파일시스템의 제작 방법
21.2 루트 파일시스템의 제작
21.3 연습문제
22장 디바이스 제어
22.1 개발 환경
22.2 디바이스 드라이버 작성
22.3 버스 드라이버 작성
22.4 네트워크 인터페이스 지원
22.5 리눅스 멀티미디어
22.6 연습문제
23장 임베디드 리눅스의 활용
23.1 프레임버퍼의 활용
23.2 Qt/Everywhere 설치와 활용
[7부 안드로이드 탑재와 활용]
24장 안드로이드의 이해
24.1 안드로이드의 개요
24.2 안드로이드의 구조
24.3 안드로이드 커널 및 라이브러리
24.4 안드로이드의 개발 환경
25장 안드로이드 빌드, 탑재 및 실행
25.1 안드로이드 빌드, 탑재 및 실행
25.2 안드로이드 애플리케이션
부록 A 개발 환경 설치 및 사용법 993
부록 B ARM 어셈블리 프로그래밍 1053
부록 C 참고 자료