000 | 00929namcc2200289 c 4500 | |
001 | 000045779100 | |
005 | 20131218214317 | |
007 | ta | |
008 | 131218s2013 ulkad b 001c kor | |
020 | ▼a 9788968480683 ▼g 13000 | |
040 | ▼a 211009 ▼c 211009 ▼d 211009 | |
082 | 0 4 | ▼a 005.446 ▼2 23 |
085 | ▼a 005.446 ▼2 DDCK | |
090 | ▼a 005.446 ▼b 2013z4 | |
100 | 1 | ▼a 안효복 |
245 | 2 0 | ▼a (ARM으로 배우는) 임베디드 리눅스 시스템 : ▼b CPU부터 안드로이드까지 총망라! / ▼d 안효복 지음 |
250 | ▼a 개정판 | |
260 | ▼a 서울 : ▼b 한빛미디어, ▼c 2013 | |
300 | ▼a 1092 p. : ▼b 삽화, 도표 ; ▼c 26 cm | |
440 | 0 0 | ▼a IT expert : IT전문가의 현장실무서 |
500 | ▼a 참고문헌: p. 1082 | |
500 | ▼a 부록: 1. 개발 환경 설치 및 사용법, 2. ARM 어셈블리 프로그래밍 | |
500 | ▼a "ARM으로 배우는 임베디드 시스템"의 개정판임 | |
500 | ▼a 색인수록 | |
740 | 2 | ▼a ARM으로 배우는 임베디드 시스템 |
945 | ▼a KLPA |
Holdings Information
No. | Location | Call Number | Accession No. | Availability | Due Date | Make a Reservation | Service |
---|---|---|---|---|---|---|---|
No. 1 | Location Science & Engineering Library/Sci-Info(Stacks1)/ | Call Number 005.446 2013z4 | Accession No. 121227701 | Availability Available | Due Date | Make a Reservation | Service |
Contents information
Book Introduction
임베디드 개념과 CPU 선택에서부터 커널 포팅, 디바이스 드라이버 개발, Qt 애플리케이션 개발, 안드로이드 탑재 등 임베디드 개발 전 과정을 다루는 책. 하드웨어 시스템 입문자, 리눅스 커널 포팅 및 디바이드 드라이버 개발자, 체계적으로 임베디드 지식을 정립하고자 하는 기존 개발자를 대상으로 하고 있다.
이 책은 임베디드 시스템의 개념에서부터 시작하여 ARM 프로세서의 동작 원리와 캐시, MMU, MPU의 구조와 사용 방법, ARM 프로세서를 사용한 SoC 및 하드웨어 설계 방법, 임베디드 소프트웨어 설계 방법 및 최적화 기법, ARM 프로세서 기반의 임베디드 리눅스 구조와 커널 포팅 방법, 디바이스 드라이버 개발 방법, 루트 파일시스템 구축 방법, 안드로이드 플랫폼의 탑재와 활용 방법을 풍부한 실무 경험을 바탕으로 핵심을 짚어가면서 체계적으로 설명한다.
이 책이 제시하는 핵심 내용
이 책은 임베디드 시스템을 시작하고 싶지만 어디서부터 무엇을 어떻게 해야 할지 막막한 분들을 위한 책이다. 임베디드 개념과 CPU 선택에서부터 커널 포팅, 디바이스 드라이버 개발, Qt 애플리케이션 개발, 안드로이드 탑재 등 임베디드 개발 전 과정을 다룬다.
이 책의 특징과 장점
실전 프로젝트를 수행할 수 있게 체계적 접근한다!
이 책은 임베디드 시스템의 개념에서부터 시작하여 ARM 프로세서의 동작 원리와 캐시, MMU, MPU의 구조와 사용 방법, ARM 프로세서를 사용한 SoC 및 하드웨어 설계 방법, 임베디드 소프트웨어 설계 방법 및 최적화 기법, ARM 프로세서 기반의 임베디드 리눅스 구조와 커널 포팅 방법, 디바이스 드라이버 개발 방법, 루트 파일시스템 구축 방법, 안드로이드 플랫폼의 탑재와 활용 방법을 풍부한 실무 경험을 바탕으로 핵심을 짚어가면서 체계적으로 설명한다. 또한 임베디드 리눅스를 활용하여 프로젝트를 수행할 수 있는 방법을 제시하는 데 노력을 기울였다.
대상 독자
- 하드웨어 시스템 입문자
- 리눅스 커널 포팅 및 디바이드 드라이버 개발
- 체계적으로 임베디드 지식을 정립하고자 하는 기존 개발자
도서 특징(책 표지 글)
♣ 이론과 실습을 바탕으로 테블릿 만들기에 도전하자!
대부분의 스마트폰은 프로세서를 사용한다. 그 위에 리눅스와 안드로이드가 올라가 있을 뿐이다. 이 책은 현업에서 가장 대중적으로 사용되는 프로세서와 OS를 집중해부하고 테블릿을 만드는 방법을 다룬다. 이 책은 저자의 오랜 개발과 강의 노하우가 녹아 있어 임베디드 시스템에 대한 이론을 바탕으로 실습 능력을 키울 수 있을 것이다.
♣ 오랜 개발과 강의 노하우가 가득한 실전 문제를 접한다!
오래 개발하고 오래 강의한 저자는 개발자들이 무엇을 궁금해하는지 안다. 그러한 내용을 본문에 담고 장 끝에서 연습문제로 확인할 수 있게 했다. 또한 실습문제를 곳곳에 두어 진짜로 실전 능력이 쌓였는지 스스로 점검해볼 수 있게 했다(정답지는 PDF로 따로 제공한다).
[이 책의 주요 내용]
o 임베디드 하드웨어/소프트웨어 구성 요소와 설계 절차 및 방법
o ARM의 내부 구조와 동작 원리, 명령어 구조와 사용법, 캐시, MMU, MPU, 쓰기 버퍼
o ARM 기반 SoC 설계 및 하드웨어 설계 방법
o 임베디드 소프트웨어를 설계하는 데 필요한 툴 구성 및 최적화된 소프트웨어 설계 기법
o ARM 기반 부트로더 개발과 하드웨어 제어 방법
o 임베디드 리눅스 커널, 디바이스 드라이버, 애플리케이션, 루트 파일 시스템 개발 방법
o Qt 및 안드로이드 탑재
Information Provided By: :

Author Introduction
안효복(지은이)
삼성전자에 근무하면서 ARM 프로세서를 기반으로 하는 SoC 응용 개발을 담당했으며 다양한 RTOS 및 디바이스 드라이버를 포팅했다. MMU가 없는 ARM 프로세서에서 동작하는 임베디드 리눅스를 개발하여 국내외에 다양한 임베디드 시스템 솔루션을 제공했다. 현재 임베디드 시스템 솔루션 및 디지털 사이니지/DID 전문 회사인 ㈜다인시스의 대표로 다양한 멀티미디어 솔루션을 개발하고 있고, 삼성전자를 비롯한 국내외 여러 회사에서 ARM 프로세서 및 임베디드 리눅스 분야의 강사로 활동 중이다.

Table of Contents
목차 지은이 소개 = 4 지은이의 말 = 5 이 책의 개발 환경 = 6 1부 임베디드 시스템 1장 임베디드 시스템의 개요 1.1. 임베디드 시스템의 이해 = 32 1.2. 프로세서 = 37 1.3. 메모리 장치 = 46 1.4. 입출력 장치 = 54 1.5. 시스템 버스 = 61 1.6. 연습문제 = 63 2장 임베디드 시스템의 설계 2.1. 임베디드 시스템 설계 절차 = 66 2.2. 임베디드 하드웨어 설계 = 67 2.3. 임베디드 소프트웨어 설계 = 71 2.4. 임베디드 소프트웨어 개발 환경 = 75 2.5. 연습문제 = 77 2부 ARM 프로세서의 이해 3장 ARM 아키텍처와 동작 원리 3.1. ARM 아키텍처 = 82 3.2. ARM 명령어와 파이프라인 = 87 3.3. ARM 구조와 명령어 실행 = 91 3.4. 연습문제 = 94 4장 프로그래머 모델 4.1. 명령어 = 96 4.2. 트러스트존 모델과 보호 영역 = 98 4.3. 동작 모드 = 98 4.4. 레지스터 = 99 4.5. 메모리 구조 = 106 4.6. 예외 처리 = 108 4.7. 연습문제 = 112 5장 ARM 프로세서 명령어 5.1. ARM 프로세서 명령어의 특징 = 116 5.2. 아키텍처 v4 ARM 명령어 = 119 5.3. 아키텍처 v5 ARM 명령어 = 162 5.4. 아키텍처 v6 ARM 명령어 = 170 5.5. 아키텍처 v7 ARM 명령어 = 194 5.6. 16비트 Thumb 명령어 = 197 5.7. Thumb-2와 Thumb-2EE 명령어 = 199 5.8. NEON 및 VFP 프로그래밍 = 204 5.9. ARM의 의사 명령어 = 242 5.10. 연습문제 = 245 6장 예외 처리와 시스템 리셋 6.1. ARM 프로세서의 예외 처리 = 248 6.2. 예외 처리 = 252 6.3. 시스템 리셋 = 260 6.4. 연습문제 = 262 3부 ARM 프로세서와 임베디드 하드웨어 설계 7장 ARM 프로세서 코어 7.1. ARM 프로세서의 종류 = 266 7.2. ARM9 프로세서 = 268 7.3. ARM11 프로세서 = 279 7.4. Xscale 마이크로 아키텍처 = 286 7.5. Cortex 애플리케이션 프로세서 = 288 7.6. Cortex 임베디드 프로세서 = 300 7.7. 연습문제 = 307 8장 ARM 프로세서 8.1. ARM 프로세서의 구조 = 310 8.2. ARM 프로세서의 제어 = 311 8.3. 캐시와 쓰기 버퍼 = 328 8.4. MMU = 336 8.5. MPU = 352 8.6. TCM = 360 8.7. 멀티프로세서 = 362 8.8. 연습문제 = 368 9장 SoC 구조 9.1. SoC와 AMBA 버스 = 372 9.2. 상용 SoC 제품 = 379 9.3. 연습문제 = 387 10장 임베디드 시스템 하드웨어 설계 10.1. 하드웨어 구성 요소 = 390 10.2. 하드웨어 설계 = 404 10.3. 연습문제 = 408 4부 임베디드 소프트웨어 설계 11장 소프트웨어 개발 툴의 이해와 활용 11.1. 소프트웨어 개발 툴의 구성 및 사용법 = 412 11.2. 메모리 구조 설계 = 423 11.3. 다운로드와 디버깅 = 432 11.4. 연습문제 = 441 12장 임베디드 C 프로그래밍과 소프트웨어 최적화 12.1. 컴파일러 사용과 옵션 설정 = 444 12.2. 임베디드 C의 구성 요소와 프로그램 최적화 = 447 12.3. 나눗셈과 나머지 연산 = 462 12.4. 메모리 참조와 포인터 = 464 12.5. ARM/Thumb 인터워킹 = 466 12.6. NEON 명령의 사용 = 470 12.7. 연습문제 = 473 13장 시스템 리셋과 부트코드 13.1. 리셋 핸들러 = 476 13.2. 부트코드 작성 = 480 13.3. 연습문제 = 498 14장 하드웨어 제어 14.1. GPIO 제어와 LED 점멸 = 500 14.2. UART 장치 제어 = 505 14.3. 타이머 제어 = 512 5부 임베디드 ARM 리눅스 15장 개발 환경과 부트로더 15.1. 부트로더의 이해 = 522 15.2. U-Boot 빌드와 설치 = 526 15.3. U-Boot 활용 = 545 15.4. U-Boot 포팅 = 554 15.5. 연습문제 = 562 16장 리눅스 커널 16.1. 임베디드 시스템과 리눅스 = 564 16.2. 리눅스 커널과 프로세스 = 566 16.3. 리눅스의 메모리 사용 = 582 16.4. 예외 처리와 인터럽트 = 584 16.5. 시스템 콜 인터페이스 = 588 16.6. 가상 파일시스템 = 590 16.7. 사용자 프로그램 실행 = 594 16.8. 프로세스 간 통신과 동기화 = 596 16.9. 리눅스 커널 디렉터리 및 소스 = 602 16.10. 리눅스 커널 초기화 절차 = 605 16.11. 연습문제 = 632 17장 디바이스 드라이버 17.1. 디바이스 드라이버의 이해 = 634 17.2. 디바이스 드라이버 모델 = 645 17.3. 커널 모듈 = 653 17.4. 메모리 매핑 = 657 17.5. 문자 디바이스 = 664 17.6. 블록 디바이스 = 680 17.7. 네트워크 인터페이스 = 692 17.8. 연습문제 = 706 18장 리눅스 파일시스템과 애플리케이션 18.1. 리눅스 파일시스템 = 710 18.2. 루트 파일시스템 = 718 18.3. 리눅스 애플리케이션 = 720 18.4. 연습문제 = 723 6부 커널 포팅 및 디바이스 제어 19장 커널 포팅 준비 19.1. 타깃 머신 선정 및 등록 = 728 19.2. 커널 소스 준비 = 733 19.3. 커널 소스 설치, 빌드 및 탑재 = 735 19.4. 연습문제 = 754 20장 커널 포팅 20.1. 타깃 머신 추가 = 756 20.2. 커널 포팅과 디버깅 = 784 20.3. 커널 포팅 = 790 20.4. 멀티코어 지원 = 804 20.5. 연습문제 = 814 21장 루트 파일시스템 21.1. 루트 파일시스템의 제작 방법 = 818 21.2. 루트 파일시스템의 제작 = 834 21.3. 연습문제 = 845 22장 디바이스 제어 22.1. 개발 환경 = 848 22.2. 디바이스 드라이버 작성 = 854 22.3. 버스 드라이버 작성 = 873 22.4. 네트워크 인터페이스 지원 = 890 22.5. 리눅스 멀티미디어 = 896 22.6. 연습문제 = 934 23장 임베디드 리눅스의 활용 23.1. 프레임버퍼의 활용 = 936 23.2. Qt/Everywhere 설치와 활용 = 941 7부 안드로이드 탑재와 활용 24장 안드로이드의 이해 24.1. 안드로이드의 개요 = 950 24.2. 안드로이드의 구조 = 952 24.3. 안드로이드 커널 및 라이브러리 = 957 24.4. 안드로이드의 개발 환경 = 960 25장 안드로이드 빌드, 탑재 및 실행 25.1. 안드로이드 빌드, 탑재 및 실행 = 968 25.2. 안드로이드 애플리케이션 = 974 부록 A. 개발 환경 설치 및 사용법 = 993 A.1 개발 환경 구성에 앞서 = 994 A.2 타깃 시스템 설정 = 996 A.3 윈도우 기반의 호스트 시스템 설정 = 997 A.4 리눅스 기반의 호스트 시스템 설정 = 1025 A.5 우분투 10.04 기반 개발 환경 구축 = 1041 A.6 VirtualBox와 리눅스 사용 = 1048 부록 B. ARM 어셈블리 프로그래밍 = 1053 B.1 ARM 어셈블리 프로그래밍 실습에 앞서 = 1054 B.2 ARM 명령어 기초 = 1056 B.3 데이터 처리 명령어 실습 = 1061 B.4 데이터 전송 명령어 실습 = 1068 부록 C. 참고 자료 = 1081 INDEX = 1083