실전! ARM 임베디드시스템 Firmware / RTOS 완전정복
완벽! ARM9, ARM11, 펌웨어, RTOS(eCos) 실전바이블
이 책의 모든 내용은 실재 임베디드 보드에서 검증하고 테스트한 것으로 독자들이 가진 임베디드 보드에도 쉽게 올려보고 테스트 해 볼 수 있을 것입니다. 각 코드들을 조금씩 변경하여 시험해 봄으로써 ARM을 기반으로 한 임베디드 시스템 소프트웨어에 대해 실질적인 체험이 가능하도록 하는 것을 가장 중요하게 생각하고 집필하였습니다.
Couldn't load pickup availability
출판사 리뷰
출판사 리뷰
www.mangoboard.com
cafe.naver.com/embeddedcrazyboys
실전! Embedded Crazy Boys!
임베디드에 미친 녀석들!
실전! ARM 임베디드시스템 Firmware/RTOS 완전정복
ARM9 (S3C2443), ARM11(S3C6410) 테스트 보드를 통해
실제 개발에 활용할 수 있는 가장 완벽한 지침서
Embedded System Firmware, RTOS (eCos)의 통합 가이드
ARM9, ARM11 시스템 프로그램 개발 실전 가이드
입문에서 전문가 수준까지 친절한 안내서
펌웨어 및 RTOS (eCos) 개발 실전 코드 제공
진정한 RTOS (eCos) 포팅에 대한 실전적 설명
단순 제어에서 RTOS 디바이스 드라이버까지 광범위한 체험
ARM9, ARM11 시스템 개발자의 고민을 한번에 해결하는
완벽! ARM9, ARM11 펌웨어, RTOS (eCos) 실전 바이블
1부. Introduction & 환경 구성
ARM9, ARM11 프로세서와 임베디드 보드 개발 환경 갖추기
VMware & 리눅스(Ubuntu) 환경 구축, VMware Tools & 삼바(Samba)
Cross compiler (CodeSourcery G++) 설치, 망고24, 망고64 부팅 모드
2부. 하드웨어 매뉴얼
Mango-24 하드웨어 매뉴얼, 하드웨어 사양, Hardware Description
Mango-64 하드웨어 매뉴얼, 하드웨어 사양, Hardware Description
3부. Firmware 연구
망고보드 연결 및 U-Boot 구동, 환경 변수 설정
UART 및 화면 입출력, UART GPIO 설정, printf 사용
GPIO와 Button (Polling 방식), S3C2443 / S3C6410 GPIO Registers
GPIO driver, Button driver
Timer와 정확한 1초 Delay 구현, S3C2443/S3C6410 Timer
PWM Timer와 LCD Backlight 조절
4부. RTOS (eCos) 포팅
eCos 개요, 다운로드 및 설치
망고24, 망고64 eCos 포팅 소스 빌드 및 망고 보드에서 실행
eCos 포팅, eCos Configuration Tool, Template 빌드 작업
포팅 과정 진행 - 메모리 포팅, Clock 설정, Interrupt 설정
포팅 과정 진행 - Timer 설정 작업, UART, 초기 빌드 작업
망고24 포팅, 망고64 포팅
5부. RTOS (eCos) 기반 디바이스 드라이버 연구
Ethernet Device Driver, eCos Ethernet driver 구조, Ethernet driver 개발
NOR Flash Memory Device Driver, 플래시 디바이스 드라이버
Frame Buffer Device Driver, eCos framebuffer 구현
JFFS2 File System Device Driver
그간 망고스토리 시리즈를 통해 Windows CE, Android에 대해 폭넓게 다루어 왔습니다. 이들 운영체제는 많은 Embedded System의 기반이 되는 것으로 망고스토리에서는 기존의 전문서적과 달리 실전적인 내용으로 이들 운영체제를 처음 접하는 엔지니어들도 책의 내용을 따라가기만 해도 어느 정도 수준의 지식을 쉽게 얻을 수 있도록 하였습니다.
지루한 이론적인 내용보다는 한 페이지 한 페이지의 내용을 모두 실습해 볼 수 있도록 하여 책을 읽어 가는 동안 자연스럽게 그 운영체제와 Embedded System에 친숙해지도록 많은 배려를 하였습니다.
최근 각광을 받고 있는 Android와 이에 조금은 밀려난 감이 있는 Windows CE에 대한 책을 내면서 좀더 단순하고 직관적인 Embedded Software에 대한 입문서를 만들어 Embedded System을 처음 접하는 사람들도 쉽게 ARM 프로세서와 소프트웨어에 친숙해지게 하고 싶다는 생각이 있었습니다.
Android 등의 High-Level OS는 그 구조가 상당히 복잡하고 높은 프로세서(CPU) 성능과 많은 메모리 그리고 복잡한 IO를 필요로 하므로, ARM9, ARM11등 저가형 Embedded 응용에 많이 사용되는 프로세서에는 적합하지 않습니다.
ARM9 등의 저가, 저성능 프로세서는 특정한 목적의 응용을 위해 많이 사용됩니다. 이러한 프로세서로 구성된 Embedded System에는 Firmware나 RTOS가 주로 탑재 됩니다.
Firmware에는 여러가지 정의가 있지만 여기서는 단순히 프로세스 스케쥴링 등의 운영체제 기능이 없이 직접 하드웨어를 제어하는 소프트웨어를 지칭하는 것으로 합니다.
RTOS(Real-Time OS)의 경우, 일반적으로는 Real-Time 기능이 있는 운영체제를 말하지만 여기서는 단순하게 Real-Time 기능을 사용하던 사용하지 않던, 간단한 스케쥴링 및 시분할 프로세스 관리 기능이 있는 정도의 Embedded OS를 말하는 것으로 합니다. 좀 더 복잡하고 정확하게 설명할 수도 있지만 이러한 설명이 이 책을 읽는 Embedded System 개발자들에게 아무런 실질적인 도움도 되지 않으므로 여기서는 생략하기로 합니다.
관심이 있는 엔지니어들은 검색엔진에서 Firmware와 Real Time Operating System에 대해 찾아 보거나 전문서적을 읽어 보기 바랍니다. 아마도 실전에서는 전혀 도움이 되지 않는 수많은 정의들이 있어 오히려 머리만 복잡해질 것입니다.
필자들은 Firmware와 RTOS의
l 단순함
l 프로세서(CPU) 성능 및 메모리 용량에 대한 요구가 적음
l 직관적인 프로그램이 가능함
정도에 주목하여 실전적으로 이 책을 만들기로 하였습니다.
즉, 가장 단순한 코드에서 시작하여 OS 포팅, 디바이스 드라이버, 응용프로그램에 이르기까지 순서 데로 차근차근 다루어, 누구나 따라 하기만 하여도 ARM9, ARM11 프로세서 및 소프트웨어에 익숙해 질 수 있도록 하였습니다.
이 책의 모든 내용은 실재 임베디드 보드에서 검증하고 테스트한 것으로 독자들이 가진 임베디드 보드에도 쉽게 올려보고 테스트 해 볼 수 있을 것입니다. 각 코드들을 조금씩 변경하여 시험해 봄으로써 ARM을 기반으로 한 임베디드 시스템 소프트웨어에 대해 실질적인 체험이 가능하도록 하는 것을 가장 중요하게 생각하고 집필하였습니다.
이 책의 내용에 대해 의문이 있으면 다른 망고시리즈와 마찬가지로 http://cafe.naver.com/embeddedcrazyboys로 질문하면 저자 또는 다른 많은 엔지니어 분들이 친절하게 답해 줄 것입니다.
이 책이 많은 분들에게 큰 도움이 되기를 바랍니다.
http://www.mangoboard.com/
http://cafe.naver.com/embeddedcrazyboys
목차
목차
1. Introduction
1.1. ARM9, ARM11 프로세서와 임베디드 보드
1.2. MANGO 보드 개발 철학
1.3. 개발 환경 갖추기
2. VMware & 리눅스(Ubuntu) 환경 구축
2.1. VMware 및 우분투 설치
2.2. 우분투 기초 활용
3. 리눅스(Ubuntu) 에디터 gedit & vim
3.1. gedit
3.2. vim
4. Host PC와 파일 공유 - VMware Tools & 삼바(Samba)
4.1. VMware Tools
4.2. VMware Tools를 이용한 파일 공유
4.3. 삼바 (Samba) 이용
5. Cross compiler (CodeSourcery G++) 설치하기
5.1. Cross-Compiler 선택
5.2. Code Sourcery G++ 설치
5.3. Hello Mango World를 Simulator로 실행해보기
6. DNW 수행과 망고24, 망고64 부팅 모드
6.1. DNW 실행 및 설정
6.2. 망고24 - NOR Mode로 부팅하기
6.3. 망고24 - NAND Mode로 부팅하기
6.4. 망고64 - NOR Mode로 부팅하기
6.5. 망고64 - NAND Mode로 부팅하기
7. Mango-24 하드웨어 매뉴얼
7.1. 하드웨어 사양
7.2. 보드 구성
7.3. Hardware Block Description
8. Mango-64 하드웨어 매뉴얼
8.1. 하드웨어 사양
8.2. 보드 구성
8.3. Hardware Block Description
9. 망고보드 연결 및 U-Boot 구동
9.1. U-Boot 빌드를 위한 환경 변수 설정
9.2. Minicom 설정
9.3. Ethernet Downloading Server 설치
9.4. 망고24 U-Boot 구동
9.5. 망고64 U-Boot 구동
9.6. Cross-Cable을 이용한 직접 연결
9.7. 망고24 소스를 이용해서 망고64 U-Boot 만들기
10. UART 및 화면 입출력 - 첫 번째 이야기
10.1. 환경 구축에 대한 리뷰
10.2. RS-232C와 UART에 대한 상식
10.3. 가장 간단한 화면 출력 프로그램
10.4. 임베디드 개발 개요
10.5. UART GPIO 설정
11. UART 및 화면 입출력 - 두 번째 이야기
11.1. UART에 관한 사전 지식
11.2. S3C2443/S3C6410 UART
11.3. 망고24 소스 코딩
11.4. 망고24 테스트
12. UART 및 화면 입출력 - 세 번째 이야기
12.1. 망고24, 망고64에 모두 적용하는 코드 만들기
12.2. 망고24, 망고64에서 실행하기
12.3. printf를 사용하자
12.4. Makefile 하나로 망고24, 망고64 모두 빌드하기
13. GPIO와 Button (Polling 방식) - 첫 번째 이야기
13.1. GPIO에 관한 사전 지식
13.2. S3C2443 / S3C6410 GPIO Registers
13.3. GPIO driver
13.4. Button driver
13.5. 기타 소스 코드 변경 사항
13.6. 시험 결과
14. GPIO와 Button (Polling 방식) - 두 번째 이야기
14.1. GPIO 드라이버 헤더 파일 수정
14.2. 버튼 드라이버 소스 파일 수정 ? mango_button.c
14.3. main 함수 수정
14.4. GPIO 드라이버 소스 파일 수정 ? s3c_gpio.c
14.5. 결론
15. Timer와 정확한 1초 Delay 구현
15.1. Timer 관련 분석
15.2. S3C2443/S3C6410 Timer
15.3. Delay function 만들기
15.4. 테스트 하기
16. PWM Timer와 LCD Backlight 조절
16.1. PWM function 만들기
16.2. LCD Backlight 회로 분석
16.3. Backlight 밝기 조절 구현
16.4. 실행 결과
17. eCos 개요, 다운로드 및 설치
17.1. RTOS 실시간 운영체제
17.2. eCos 개요
17.3. eCos 다운로드 및 설치
18. 망고24, 망고64 eCos 포팅 소스 빌드
18.1. 망고24, 망고64 통합 eCos 포팅 소스 다운로드
18.2. 작업 폴더 생성
18.3. 환경 변수 설정
18.4. 작업 폴더 빌드 ? configtool
18.5. Mango24 빌드하기
18.6. Mango64 빌드하기
18.7. 빌드할 때의 주의점
19. 망고24, 망고64에서 실행하기
19.1. 망고24에서 실행하기 ? DNW 이용
19.2. 망고64에서 실행하기 ? DNW 이용
19.3. 망고 보드에 다운로드 하는 주소값
19.4. 망고24에서 실행하기 ? U-Boot 이용
19.5. 망고64에서 실행하기 ? U-Boot 이용
20. 작업 폴더(ecos.wk)에서 불필요한 파일 삭제하기
20.1. 전체 비교 및 툴 삭제
20.2. ecos-3.0 부분 비교 정리
20.3. packages/hal 부분 비교 정리
21. eCos 포팅 전 준비 및 확인
21.1. eCos 폴더 구조
21.2. eCos Configuration Tool
21.3. SMDK2410 Template 빌드 작업
22. 망고24 포팅 과정 분석 ? 첫 번째 이야기
22.1. 포팅 과정 개요
22.2. 포팅 습작 제작을 위한 준비
22.3. 포팅 과정 진행 ? 메모리 포팅
22.4. S3C2443 DRAM 초기화 과정 진행
23. 망고24 포팅 과정 분석 ? 두 번째 이야기
23.1. Clock 설정 하기
23.2. Interrupt 설정 하기
24. 망고24 포팅 과정 분석 ? 세 번째 이야기
24.1. Timer 설정 작업
24.2. UART
24.3. 초기 빌드 작업
25. 망고24 포팅하기
25.1. 망고24에 맞도록 변경하기
25.2. 망고-24 포팅 작업
26. 망고64 포팅하기
26.1. ARM11 eCos 포팅 개요
26.2. ARM11 eCos 포팅 과정
26.3. Mango64 폴더 포팅 작업
26.4. 망고64 구동
27. Ethernet Device Driver
27.1. 디바이스 드라이버 개요
27.2. Ethernet driver 개요
27.3. eCos Ethernet driver 구조
27.4. Ethernet driver 개발 ? 망고 24
27.5. Ethernet driver 개발 ? 망고 64
28. NOR Flash Memory Device Driver
28.1. Introduction
28.2. 망고24 플래시 디바이스 드라이버
28.3. 망고24 보드에서 시험 수행
28.4. 망고64 플래시 디바이스 드라이버
28.5. 망고64 보드에서 시험 수행
29. Frame Buffer Device Driver
29.1. Introduction
29.2. eCos framebuffer 구현 하기
29.3. 망고보드 Framebuffer Driver 작성
29.4. 망고24 보드에서 시험 수행
29.5. 망고64 Framebuffer Driver 작성
29.6. 망고64 보드에서 시험 수행
30. JFFS2 File System Device Driver
30.1. 망고24 보드에서 시험 수행
30.2. 망고64 보드에서 시험 수행
맺음말
색 인
저자
저자
서울대학교 컴퓨터공학과 석사
현대전자주식회사 중대형컴퓨터 개발
VK주식회사 GSM 핸드폰 개발
코아로직 사업본부장
현) 씨알지테크놀러지 대표이사
네이버 embeddedcrazyboys 카페 필명 "설렁설렁"
Your payment information is processed securely. We do not store credit card details nor have access to your credit card information.

