한빛출판네트워크

IT/모바일

IT EXPERT, ARM으로 배우는 임베디드 리눅스 시스템 : CPU에서 안드로이드까지 총망라! (개정판)

한빛미디어

집필서

절판

IT EXPERT, ARM으로 배우는 임베디드 리눅스 시스템 : CPU에서 안드로이드까지 총망라! (개정판)
좋아요: 42
  • 저자 : 안효복
  • 출간일 : 2013-12-10
  • 페이지 : 1092쪽
  • ISBN : 9788968480683
  • 물류코드 :2068

합계 : 40,500

  • 실전 프로젝트를 수행할 수 있게 체계적 접근한다!

     

    이 책은 임베디드 시스템의 개념에서부터 시작하여 ARM 프로세서의 동작 원리와 캐시, MMU, MPU의 구조와 사용 방법, ARM 프로세서를 사용한 SoC 및 하드웨어 설계 방법, 임베디드 소프트웨어 설계 방법 및 최적화 기법, ARM 프로세서 기반의 임베디드 리눅스 구조와 커널 포팅 방법, 디바이스 드라이버 개발 방법, 루트 파일시스템 구축 방법, 안드로이드 플랫폼의 탑재와 활용 방법을 풍부한 실무 경험을 바탕으로 핵심을 짚어가면서 체계적으로 설명한다. 또한 임베디드 리눅스를 활용하여 프로젝트를 수행할 수 있는 방법을 제시하는 데 노력을 기울였다.

     

    대상 독자

    • 하드웨어 시스템 입문자
    • 리눅스 커널 포팅 및 디바이드 드라이버 개발
    • 체계적으로 임베디드 지식을 정립하고자 하는 기존 개발자

    이론과 실습을 바탕으로 테블릿 만들기에 도전하자! 
    대부분의 스마트폰은 프로세서를 사용한다. 그 위에 리눅스와 안드로이드가 올라가 있을 뿐이다. 이 책은 현업에서 가장 대중적으로 사용되는 프로세서와 OS를 집중해부하고 테블릿을 만드는 방법을 다룬다. 이 책은 저자의 오랜 개발과 강의 노하우가 녹아 있어 임베디드 시스템에 대한 이론을 바탕으로 실습 능력을 키울 수 있을 것이다.

     

    오랜 개발과 강의 노하우가 가득한 실전 문제를 접한다!
    오래 개발하고 오래 강의한 저자는 개발자들이 무엇을 궁금해하는지 안다. 그러한 내용을 본문에 담고 장 끝에서 연습문제로 확인할 수 있게 했다. 또한 실습문제를 곳곳에 두어 진짜로 실전 능력이 쌓였는지 스스로 점검해볼 수 있게 했다(정답지는 PDF로 따로 제공한다).

     

    이 책의 주요 내용

    • 임베디드 하드웨어/소프트웨어 구성 요소와 설계 절차 및 방법
    • ARM의 내부 구조와 동작 원리, 명령어 구조와 사용법, 캐시, MMU, MPU, 쓰기 버퍼
    • ARM 기반 SoC 설계 및 하드웨어 설계 방법
    • 임베디드 소프트웨어를 설계하는 데 필요한 툴 구성 및 최적화된 소프트웨어 설계 기법
    • ARM 기반 부트로더 개발과 하드웨어 제어 방법
    • 임베디드 리눅스 커널, 디바이스 드라이버, 애플리케이션, 루트 파일 시스템 개발 방법
    • Qt 및 안드로이드 탑재
  • [저자] 안효복

    E-Mail: hbahn@dignsys.com
    삼성전자에 근무하면서 ARM 프로세서 기반의 SoC 응용 개발을 담당했으며, 다양한 RTOS 및 디바이스 드라이버를 포팅한 경험과 MMU 없는 ARM 프로세서에서 동작하는 임베디드 리눅스를 직접 개발하여 국내외에 다양한 임베디드 시스템 솔루션을 제공한 경험이 있다. 현재 임베디드 시스템 솔루션 전문회사인 ㈜다인시스의 대표로서 휴대용, 가정용 멀티미디어 솔루션 개발을 하고 있으며, 삼성전자를 비롯한 국내외 여러 회사에서 ARM 프로세서 및 임베디드 리눅스 분야 강사로도 활동 중이다.

    [주요 개발 경력]
    • 국산 중형 컴퓨터 주전산기 개발
    • ARM 프로세서 기반 SoC 응용 개발
    • 모뎀 라우터 개발, 유무선 공유기 개발
    • ADSL 모뎀, 유무선 통합형 ADSL 모뎀 라우터 개발
    • 스마트 카드리더 솔루션 개발
  • [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 참고 자료

  •  

    • IoT(사물인터넷), M2M(사물 간 통신) 등이 많은 각광과 주목을 받고 있는 시대가 도래했죠.

      모든 사물은 주위 환경을 인식하고 사용자 경험에 어울리는 정보를 제공하는 세상이 된거죠.

      그러다 보니, 모든 사물(Things)에는 정보를 인식하고 처리하는 CPU가 조그맣던 크던 필요하게 되었어요.

      밥통, 청소기, 냉장고, 심지어는 칫솔, 변기커버까지 말이죠..

      그러면서 저전력을 가지고도 임베디드(사물에 내장되어) 명령어의 처리를 할 수 있는 CPU가 주목받게 되었죠.

      또한, 이러한 녀석들(CPU)는 운영체제로서 Device(장치)들을 제어하기 위해서 프로그래밍 되어지고, 통신하게 되었는데

      그러면서 커널 이라는 이름만 들어도 깊숙하고 어려운 용어를 직면하게 되었지요.......



      여기까지가 제가 알고 있는 ARM CPU에 대한 것이었고,...그다지 많이 알지 못하는 초보자의 수준에서 이 책을 Œ! 접하게 됩니다...



      뭐 눈엔 뭐만 보인다고...

      차츰.....주위에서 ARM에 대해 조금 더 심도있게 나누는 연구 내용들이 귀에 들어오기 시작했습니다....

      그러다보니, 예외처리는 어떤 식으로 하는지.....포팅은 어떻게 하는지....임베디드 C는 어떻게 다른지.....

      OS 공부할 때 많이 들리던 녀석들의 정체가 사뭇 진지하게 궁금해졌죠....



      하지만, 위에서 이야기 했듯이.. 많이 알지 못했던 초보 of 초보 였던 저는 어떻게 공부해야 갈피를 잡지 못하고 그냥 흘려버리게 됩니다.



      그러던 와중에, 우연히 한빛미디어의 좋은 기회를 만나게 되었고..

      주저없이 이 책을 선택하고, 읽게 되었어요..



      멋있는 명언을 말하고 싶은데 지금 이 말이 제일 적당한 듯 싶네요.

      "밥은 배고플 때 먹어야 제일 맛있다"



      ARM에 대해 살짝 갈증을 느끼던 차에 읽어보니, 정말 포카리스웨트 같은 청량함을 느낄 수 있었습니다.

      그만큼, ARM CPU에 대한 궁금증을 전 이 책을 통해 풀 수 있었습니다.

    • 리눅스 시스템 프로그래밍(개정2판) : 커널과 C 라이브러리로 풀어가는(리눅스 3.x 최신 커널 기반)

      로버트 러브

    • 디자인 패턴을 적용한 임베디드 시스템: 당신을 임베디드 전문가로 이끌어줄 꼼꼼한 멘토링

      엘레시아 화이트

    • Blog2Book, 임베디드 프로그래밍 C 코드 최적화

      김유진

닫기

해당 상품을 장바구니에 담았습니다.
장바구니로 이동하시겠습니까?