HOME > 상세정보

상세정보

(실전!) ARM 임베디드시스템 Firmware/RTOS 완전정복 (36회 대출)

자료유형
단행본
개인저자
박선호 오영환, 저
서명 / 저자사항
(실전!) ARM 임베디드시스템 Firmware/RTOS 완전정복 / 박선호, 오영환 공저
발행사항
성남 :   D&W WAVE,   2011  
형태사항
646 p. : 삽화 ; 26 cm
총서사항
Mango story ;6
ISBN
9788996380030
일반주기
색인수록  
ARM9(S3C2443), ARM11(S3C6410) 테스트 보드를 통해 실제 개발에 활용할 수 있는 가장 완벽한 지침서, Embedded System Firmware, RTOS(eCos)의 통합가이드  
000 00909camcc2200277 c 4500
001 000045655871
005 20110704165841
007 ta
008 110704s2011 ggka 001c kor
020 ▼a 9788996380030 ▼g 93560
035 ▼a (KERIS)BIB000012418514
040 ▼a 211062 ▼c 211062 ▼d 211009
082 0 4 ▼a 005.43 ▼a 621.39 ▼2 22
085 ▼a 005.43 ▼2 DDCK
090 ▼a 005.43 ▼b 2011z4
100 1 ▼a 박선호
245 2 0 ▼a (실전!) ARM 임베디드시스템 Firmware/RTOS 완전정복 / ▼d 박선호, ▼e 오영환 공저
260 ▼a 성남 : ▼b D&W WAVE, ▼c 2011
300 ▼a 646 p. : ▼b 삽화 ; ▼c 26 cm
440 0 0 ▼a Mango story ; ▼v 6
500 ▼a 색인수록
500 ▼a ARM9(S3C2443), ARM11(S3C6410) 테스트 보드를 통해 실제 개발에 활용할 수 있는 가장 완벽한 지침서, Embedded System Firmware, RTOS(eCos)의 통합가이드
700 1 ▼a 오영환, ▼e
945 ▼a KLPA
949 ▼a 망고 스토리 ; ▼v 6

소장정보

No. 소장처 청구기호 등록번호 도서상태 반납예정일 예약 서비스
No. 1 소장처 과학도서관/Sci-Info(1층서고)/ 청구기호 005.43 2011z4 등록번호 121210970 (16회 대출) 도서상태 대출가능 반납예정일 예약 서비스 B M
No. 2 소장처 과학도서관/Sci-Info(1층서고)/ 청구기호 005.43 2011z4 등록번호 121210971 (20회 대출) 도서상태 대출가능 반납예정일 예약 서비스 B M

컨텐츠정보

책소개

ARM9 (S3C2443), ARM11(S3C6410) 테스트 보드를 통해 실제 개발에 활용할 수 있는 지침서로, Embedded System Firmware, RTOS (eCos)의 통합 가이드. 입문에서 전문가 수준까지를 담고 있으며, 펌웨어 및 RTOS (eCos) 개발 실전 코드를 제공한다. RTOS (eCos) 포팅에 대한 실전적 설명과 단순 제어에서 RTOS 디바이스 드라이버까지 광범위한 체험을 할 수 있도록 구성하였다.

Mango Story 6
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


정보제공 : Aladin

저자소개

박선호(지은이)

서울대학교 컴퓨터공학과 학사 서울대학교 컴퓨터공학과 석사 현대전자주식회사 중대형컴퓨터 개발 VK주식회사 GSM 핸드폰 개발 코아로직 사업본부장 현) 씨알지테크놀러지 대표이사 네이버 embeddedcrazyboys 카페 필명 "설렁설렁"

오영환(지은이)

고려대학교 전산과학과 학사 현대전자주식회사 CDMA 시스템 개발 한테크 기지국 RF Test 장비 개발 뉴젠텔레콤 GSM 핸드폰 개발 코아로직 AP FAE 개발 팀장 현) 씨알지테크놀러지 수석연구원 네이버 embeddedcrazyboys 카페 필명 "푸우" 주요 공저 저술 망고스토리1, S3C2443/S3C6410/JTAG Embedded Board를 통한 ARM9/ARM11 Embedded 환경 체험 망고스토리2, 실전! ARM Cortex-M3 시스템 프로그래밍 완전정복 1 망고스토리3, 실전! ARM Cortex-M3 시스템 프로그래밍 완전정복 2 망고스토리4, 실전! Windows CE 시스템 프로그래밍 완전정복 망고스토리5, 실전! 안드로이드 (Android) 시스템 프로그래밍 완전정복 망고스토리6, 실전! ARM 임베디드시스템 Firmware/RTOS 완전정복

정보제공 : Aladin

목차

목차 
서언 = 2
1. Introduction = 19
 1.1. ARM9, ARM11 프로세서와 임베디드 보드 = 19
 1.2. MANGO 보드 개발 철학 = 19
 1.3. 개발 환경 갖추기 = 20
  1.3.1. 임베디드 프로그램 = 20
  1.3.2. Linux 데스크탑 = 21
  1.3.3. 컴파일러 설치 = 21
2. VMware&리눅스(Ubuntu) 환경 구축 = 23
 2.1. VMware 및 우분투 설치 = 23
  2.1.1. VMware 다운로드 = 23
  2.1.2. VMware 설치하기 = 24
  2.1.3. 우분투 다운로드 = 25
  2.1.4. 새 Virtual Machine 만들기 = 26
 2.2. 우분투 기초 활용 = 29
  2.2.1. 우분투 업데이트 ◆U2013◆ Update Manager = 29
  2.2.2. 전체 메뉴창 아래로 옮기기 = 31
  2.2.3. 화면 Resolution 변경 = 31
  2.2.4. 시간 설정하기 = 32
  2.2.5. 터미널 띄우기 = 33
  2.2.6. .bashrc&alias 설정 = 34
  2.2.7. 터미널 키 Shortcut 설정 = 35
  2.2.8. 키보드 반복 입력 속도 설정 = 36
  2.2.9. package 관리 = 36
  2.2.10. grep 사용 = 37
  2.2.11. find 사용 = 38
  2.2.12. sudo 명령 사용 = 43
  2.2.13. 일반 유저가 sudo 명령이 안될 경우 대처 = 44
3. 리눅스(Ubuntu) 에디터 gedit&vim = 46
 3.1. gedit = 46
 3.2. vim = 47
  3.2.1. vi 실행 및 vim 설치 = 48
  3.2.2. vi의 모드 = 50
  3.2.3. 시작과 종료 = 51
  3.2.4. help의 활용 = 51
  3.2.5. 커서 이동 명령 = 53
  3.2.6. 편집 시작 (삽입) 명령 = 54
  3.2.7. 검색 명령 = 55
  3.2.8. 취소 및 반복 명령 = 57
  3.2.9. 삭제 명령 = 58
  3.2.10. 치환 명령 = 59
  3.2.11. 복사 명령 = 61
  3.2.12. 환경 설정 = 61
4. Host PC와 파일 공유 - VMware Tools&삼바(Samba) = 64
 4.1. VMware Tools = 64
  4.1.1. VMware Tools 설치 = 64
  4.1.2. VMware Tools 업데이트 = 64
  4.1.3. VMware Tools 기능 = 66
  4.1.4. 쉬운 VMware Tools 업데이트 = 67
 4.2. VMware Tools를 이용한 파일 공유 = 67
  4.2.1. VMware File Share 이용 = 67
  4.2.2. 우분투에서 공유 폴더 확인 = 68
 4.3. 삼바 (Samba) 이용 = 69
  4.3.1. Samba 설치하기 = 70
  4.3.2. Samba 설정하기 = 71
  4.3.3. Samba User 설정하기 = 72
  4.3.4. Samba 재 시작 = 73
  4.3.5. 네트워크 드라이브 연결 = 73
  4.3.6. 한글 사용 = 74
  4.3.7. 삼바 연결 에러 = 75
5. Cross compiler (CodeSourcery G++) 설치하기 = 76
 5.1. Cross-Compiler 선택 = 76
 5.2. Code Sourcery G++ 설치 = 76
  5.2.1. Sourcery G++ 제품 종류 = 77
  5.2.2. Sourcery G++ Lite Edition = 77
  5.2.3. Lite Edition ◆U2013◆ ARM 다운로드 = 78
  5.2.4. Lite Edition 설치 = 80
  5.2.5. Lite Edition 설치 확인 = 85
 5.3. Hello Mango World를 Simulator로 실행해보기 = 86
6. DNW 수행과 망고24, 망고64 부팅 모드 = 89
 6.1. DNW 실행 및 설정 = 89
  6.1.1. DNW 툴 다운로드 = 89
  6.1.2. USB 드라이버 설치 = 89
  6.1.3. DNW 최초 수행 = 92
 6.2. 망고24 - NOR Mode로 부팅하기 = 92
 6.3. 망고24 - NAND Mode로 부팅하기 = 94
 6.4. 망고64 - NOR Mode로 부팅하기 = 95
 6.5. 망고64 - NAND Mode로 부팅하기 = 95
7. Mango-24 하드웨어 매뉴얼 = 97
 7.1. 하드웨어 사양 = 97
 7.2. 보드 구성 = 98
  7.2.1. 보드 구조도 = 98
  7.2.2. 보드 부품면 = 99
  7.2.3. 보드 LCD면 = 100
 7.3. Hardware Block Description = 100
  7.3.1. CPU (S3C2443XL-53 Application Processor) = 100
  7.3.2. 메모리 시스템 = 103
  7.3.3. Mobile SDRAM = 104
  7.3.4. NOR Flash Memory = 104
  7.3.5. SLC NAND Flash Memory = 106
  7.3.6. Power and Reset = 108
  7.3.7. RS232 Serial Port = 110
  7.3.8. ARM Standard JTAG = 110
  7.3.9. USB 2.0 Device = 111
  7.3.10. USB 1.1 Host = 111
  7.3.11. LCD Interface = 112
  7.3.12. SD Card Socket = 119
  7.3.13. Ethernet = 119
  7.3.14. Audio Codec and Audio Power Amplifier = 121
  7.3.15. Microphone 인터페이스 = 122
  7.3.16. Loud Speaker/rHeadphone 인터페이스 = 123
  7.3.17. 3축 가속도 센서 = 123
  7.3.18. General Purpose Keys = 124
  7.3.19. 전원 입력 및 배터리 충전 = 124
  7.3.20. Li-Ion Battery 장착 = 125
  7.3.21. GPS 모듈과 GPS 안테나 = 126
  7.3.22. WiFi/Bluetooth Combo 모듈 = 127
8. Mango-64 하드웨어 매뉴얼 = 129
 8.1. 하드웨어 사양 = 129
 8.2. 보드 구성 = 130
  8.2.1. 보드 구조도 = 130
  8.2.2. 보드 부품면 = 131
  8.2.3. 보드 LCD면 = 132
 8.3. Hardware Block Description = 132
  8.3.1. Boot Mode [SW100] = 132
  8.3.2. Boot Mode [SW100] ◆U2013◆ NOR Flash Boot = 135
  8.3.3. Boot Mode [SW100] ◆U2013◆ NAND Flash Stepping-Stone Boot = 137
  8.3.4. Memory System = 137
  8.3.5. Clocks = 138
  8.3.6. Indicator LEDs = 139
  8.3.7. UART = 140
  8.3.8. Ethernet = 140
  8.3.9. Audio Codec = 141
  8.3.10. LCD 인터페이스 = 142
  8.3.11. Touch Screen = 143
  8.3.12. VCLK 극성 설정 ◆U2013◆ FoxLink LCD = 143
  8.3.13. LCD 관련 설정 값 정의 = 145
  8.3.14. Back Light 및 LCD 패널 전원 조정 = 146
  8.3.15. Mango64 확장 LCD 커넥터 = 147
  8.3.16. USB 2.0 OTG: USB 2.0 Device = 148
  8.3.17. USB 1.1 Host = 148
  8.3.18. DC-Jack, Charging Status 및 Battery 잔량 인식 = 149
  8.3.19. TV-Out Interface = 150
  8.3.20. WiFi+Bluetooth Combo = 151
  8.3.21. GPS Module = 151
  8.3.22. Expansion Connectors = 153
  8.3.23. Camera Expansion Connector = 155
  8.3.24. HDD Connector = 159
9. 망고보드 연결 및 U-Boot 구동 = 161
 9.1. U-Boot 빌드를 위한 환경 변수 설정 = 161
 9.2. Minicom 설정 = 162
  9.2.1. Minicom 설치 = 162
  9.2.2. USB-to-Serial 장치 연결 = 163
  9.2.3. Minicom 설정 및 최초 수행 작업 = 165
  9.2.4. Minicom 컬러로 수행하기 = 168
 9.3. Ethernet Downloading Server 설치 = 169
  9.3.1. TFTP 패키지 설치 및 환경 설정 = 170
  9.3.2. TFTP 개요 및 시험 = 171
 9.4. 망고24 U-Boot 구동 = 172
  9.4.1. 망고24 U-Boot 다운로드 = 172
  9.4.2. 망고24 U-Boot 빌드하기 = 174
  9.4.3. 망고24 U-Boot 구동하기 = 176
  9.4.4. 고정 IP로 네트워크 설정 변경 ◆U2013◆ 망고24 보드 = 178
  9.4.5. 고정 IP로 네트워크 설정 변경 ◆U2013◆ 우분투 = 180
  9.4.6. TFTP를 이용한 U-Boot 다운로드 = 183
 9.5. 망고64 U-Boot 구동 = 185
  9.5.1. 망고64 U-Boot 다운로드 = 185
  9.5.2. 망고64 U-Boot 빌드하기 = 186
  9.5.3. 망고64 U-Boot 구동하기 = 187
  9.5.4. 고정 IP로 네트워크 설정 변경 ◆U2013◆ 망고64 보드 = 188
  9.5.5. TFTP를 이용한 U-Boot 다운로드 = 189
 9.6. Cross-Cable을 이용한 직접 연결 = 192
  9.6.1. Ethernet crossover cable = 192
  9.6.2. 우분투 서버 네트워크 설정 = 194
  9.6.3. 망고64 ◆U2013◆ 크로스 케이블 다운로드 테스트 = 195
  9.6.4. 망고24 ◆U2013◆ 크로스 케이블 다운로드 테스트 = 196
 9.7. 망고24 소스를 이용해서 망고64 U-Boot 만들기 = 196
10. UART 및 화면 입출력 - 첫 번째 이야기 = 198
 10.1. 환경 구축에 대한 리뷰 = 198
  10.1.1. Serial 연결 = 198
  10.1.2. Ethernet 연결 = 199
  10.1.3. USB 연결 = 199
  10.1.4. S/W 적인 연결 = 199
 10.2. RS-232C와 UART에 대한 상식 = 200
  10.2.1. RS-232-C = 200
  10.2.2. UART = 203
 10.3. 가장 간단한 화면 출력 프로그램 = 204
  10.3.1. 망고24 ◆U2013◆ UART 부분 회로도 = 204
  10.3.2. 망고24 ◆U2013◆ Hello Mango 프로그램= 205
  10.3.3. 망고24 ◆U2013◆ Hello Mango 내용 설명 = 206
  10.3.4. 망고24 ◆U2013◆ Hello Mango 빌드 = 210
  10.3.5. 망고24 ◆U2013◆ Hello Mango 수행 = 212
  10.3.6. bootelf = 213
  10.3.7. 망고64 ◆U2013◆ UART 부분 회로도 = 215
  10.3.8. 망고64 ◆U2013◆ Hello Mango 프로그램 = 215
  10.3.9. 망고64 ◆U2013◆ Hello Mango 내용 설명 = 218
  10.3.10. 망고64 ◆U2013◆ Hello Mango 빌드 = 219
  10.3.11. 망고64 ◆U2013◆ Hello Mango 수행 = 220
 10.4. 임베디드 개발 개요 = 222
 10.5. UART GPIO 설정 = 223
  10.5.1. UART 관련 GPIO 포트 설정 = 223
  10.5.2. GPIO 포트 설정 코드 확인 ◆U2013◆ U-Boot = 224
11. UART 및 화면 입출력 - 두 번째 이야기 = 228
 11.1. UART에 관한 사전 지식 = 228
  11.1.1. Parallel 통신과 Serial 통신 = 228
  11.1.2. Synchronous 전송과 Asynchronous 전송 = 229
  11.1.3. UART 데이터 포맷 = 230
  11.1.4. RS-232 Signal = 231
 11.2. S3C2443/S3C6410 UART = 233
 11.3. 망고24 소스 코딩 = 234
  11.3.1. Working directory 생성 = 234
  11.3.2. Register 헤더 정의 = 235
  11.3.3. UART 초기화 구현 = 242
  11.3.4. UART Write 함수 구현 = 245
 11.4. 망고24 테스트 =246
  11.4.1. main 함수 구현 = 246
  11.4.2. Makefile 구현 = 246
  11.4.3. 소스 파일 빌드 = 249
  11.4.4. 다운로드 및 테스트 = 249
12. UART 및 화면 입출력 - 세 번째 이야기 = 251
 12.1. 망고24, 망고64에 모두 적용하는 코드 만들기 = 251
  12.1.1. Makefile의 변경 = 251
  12.1.2. main 함수의 변경 = 253
  12.1.3. s3c_uart.h 변경 사항 =254
  12.1.4. s3c_uart.c ◆U2013◆ 초기화 부분 변경 사항 = 255
  12.1.5. s3c_uart.c ◆U2013◆ Write 부분 변경 사항 = 258
  12.1.6. s3c_uart.c ◆U2013◆ RX 부분 구현 = 260
 12.2. 망고24, 망고64에서 실행하기 = 262
  12.2.1. 망고64 빌드 및 실행 = 262
  12.2.2. 망고24 빌드 및 실행 = 265
 12.3. printf를 사용하자 = 266
  12.3.1. main 함수의 수정 및 빌드 에러 해결 = 267
  12.3.2. Semi-Hosting = 271
  12.3.3. _write 함수의 구현= 272
  12.3.4. _read 함수 최초 구현 및 Test = 274
  12.3.5. 기타 함수 ◆U2013◆ _sbrk = 275
  12.3.6. 기타 함수 ◆U2013◆ __srget_r = 279
  12.3.7. 기타 함수 ◆U2013◆ _fstat = 280
  12.3.8. 기타 함수들 ◆U2013◆ _isatty, _close, _lseek = 281
 12.4. Makefile 하나로 망고24, 망고64 모두 빌드하기 = 282
  12.4.1. Makefile 수정 = 282
  12.4.2. 망고24, 망고64 빌드 및 수행 = 283
13. GPIO와 Button (Polling 방식) - 첫 번째 이야기 = 285
 13.1. GPIO에 관한 사전 지식 = 285
  13.1.1. GPIO 기본 원리 = 285
  13.1.2. GPIO 컨트롤 ◆U2013◆ Pin Configuration = 286
  13.1.3. GPIO 컨트롤 ◆U2013◆ Pin Data Register = 286
  13.1.4. GPIO 컨트롤 ◆U2013◆ Pull-up/down Configuration = 287
 13.2. S3C2443/S3C6410 GPIO Registers = 289
  13.2.1. S3C2443 = 289
  13.2.2. S3C6410 = 290
 13.3. GPIO driver = 293
  13.3.1. config.h 추가 = 293
  13.3.2. GPIO 드라이버 작업 = 293
 13.4. Button driver =295
  13.4.1. Polling vs. Interrupt 방식 = 295
  13.4.2. 버튼 드라이버 소스 구현 = 296
 13.5. 기타 소스 코드 변경 사항 = 297
  13.5.1. main.c 변경 사항= 297
  13.5.2. Makefile 변경 사항 = 300
 13.6. 시험 결과 = 300
14. GPIO와 Button (Polling 방식) - 두 번째 이야기 = 303
 14.1. GPIO 드라이버 헤더 파일 수정 = 303
  14.1.1. GPIO Port Type 작성 = 303
  14.1.2. 함수 프로토타입 설계 ◆U2013◆ s3c_gpio.h = 307
  14.1.3. 기타 헤더 파일 수정 = 308
 14.2. 버튼 드라이버 소스 파일 수정 ◆U2013◆ mango_button.c = 308
 14.3. main 함수 수정 = 309
 14.4. GPIO 드라이버 소스 파일 수정 ◆U2013◆ s3c_gpio.c = 309
  14.4.1. Base Address 추출 부분 구현 = 309
  14.4.2. GPIO Set Type 부분 수정 = 312
  14.4.3. GPIO Set Value 부분 수정 = 316
  14.4.4. Pull Up Down 수정 = 318
 14.5. 결론 = 318
15. Timer와 정확한 1초 Delay 구현 = 319
 15.1. Timer 관련 분석 = 319
  15.1.1. Timer 기본 사항 = 319
  15.1.2. Timer control 원리 = 320
 15.2. S3C2443/S3C6410 Timer = 320
  15.2.1. Timer 개요 = 320
  15.2.2. Clock source control = 322
  15.2.3. Counter control = 324
  15.2.4. PWM control = 324
  15.2.5. Inverter control = 325
 15.3. Delay function 만들기 = 326
  15.3.1. Delay 기능 구현 개요 = 326
  15.3.2. Timer header ◆U2013◆ 레지스터 주소 Offset = 327
  15.3.3. Timer header ◆U2013◆ Prescaler 설정(Configuration 0) = 329
  15.3.4. Timer Dead Zone = 330
  15.3.5. Timer header ◆U2013◆ Divider 설정(Configuration 1) = 331
  15.3.6. Timer 초기화 = 333
  15.3.7. Delay 계산 = 335
 15.4. 테스트 하기 = 337
  15.4.1. Main 함수 변경 = 337
  15.4.2. Makefile 변경, 빌드 및 시험 = 338
16. PWM Timer와 LCD Backlight 조절 = 339
 16.1. PWM function 만들기 = 339
  16.1.1. Interface 설계 = 339
  16.1.2. Function 구현 ◆U2013◆ Configuration 부분 = 340
  16.1.3. Function 구현 ◆U2013◆ PWM enable 부분 = 342
  16.1.4. Function 구현 ◆U2013◆ Timer Start Stop 부분 = 343
 16.2. LCD Backlight 회로 분석 = 344
  16.2.1. 망고24 회로 분석 = 344
  16.2.2. 망고64 회로 분석 = 346
  16.2.3. ACT6357NH 부분 분석 = 349
 16.3. Backlight 밝기 조절 구현 = 350
  16.3.1. Interface 설계 = 350
  16.3.2. Function 구현 ◆U2013◆ 초기화 부분 = 352
  16.3.3. Function 구현 ◆U2013◆ 밝기 설정 부분 = 352
  16.3.4. Function 구현 ◆U2013◆ 밝기 Step Up Down 부분 = 355
  16.3.5. Makefile 변경과 Main 함수 변경 = 355
 16.4. 실행 결과 = 357
17. eCos 개요, 다운로드 및 설치 = 358
 17.1. RTOS 실시간 운영체제 = 358
  17.1.1. RTOS 개요 = 358
  17.1.2. RTOS 종류 = 359
 17.2. eCos 개요 = 360
 17.3. eCos 다운로드 및 설치 = 361
  17.3.1. eCos 다운로드 및 libstdc 설치 = 361
  17.3.2. eCos와 Toolchain = 364
  17.3.3. eCos SDK 설치 = 365
18. 망고24, 망고64 eCos 포팅 소스 빌드 = 369
 18.1. 망고24, 망고64 통합 eCos 포팅 소스 다운로드 = 369
 18.2. 작업 폴더 생성 = 370
 18.3. 환경 변수 설정 = 371
 18.4. 작업 폴더 빌드 ◆U2013◆ configtool = 374
 18.5. Mango24 빌드하기 = 376
  18.5.1. Templates 구동 = 376
  18.5.2. 망고24 보드 구성 선택 = 378
  18.5.3. 구성 파일 저장 = 379
  18.5.4. Build Tools Path 확인 = 380
  18.5.5. 망고24 빌드 수행 = 380
 18.6. Mango64 빌드하기 = 382
  18.6.1. Templates 구동 = 382
  18.6.2. 망고64 보드 구성 선택 = 383
  18.6.3. 구성 파일 저장 및 Build Tools Path 확인 = 384
  18.6.4. 망고64 빌드 수행 = 384
 18.7. 빌드할 때의 주의점 = 385
19. 망고24, 망고64에서 실행하기 = 387
 19.1. 망고24에서 실행하기 ◆U2013◆ DNW 이용 = 387
  19.1.1. DNW 실행 및 설정 = 387
  19.1.2. 망고24에서 redboot.bin 실행하기 = 388
 19.2. 망고64에서 실행하기 ◆U2013◆ DNW 이용 = 388
  19.2.1. DNW 실행 및 설정 = 388
  19.2.2. 망고64에서 redboot.bin 실행하기 = 389
 19.3. 망고 보드에 다운로드 하는 주소값 = 389
  19.3.1. 주소값 명시 위치 = 390
  19.3.2. eCos Memory Layout Files = 390
 19.4. 망고24에서 실행하기 ◆U2013◆ U-Boot 이용 = 393
  19.4.1. 망고24 ◆U2013◆ TFTP 다운로드 및 수행 = 393
  19.4.2. 망고24 ◆U2013◆ NAND 저장 및 수행 = 395
  19.4.3. 망고24 ◆U2013◆ bootcmd를 이용한 자동 수행 =397
  19.4.4. 망고24 ◆U2013◆ 환경 변수 설정을 통한 자동 수행 = 397
 19.5. 망고64에서 실행하기 ◆U2013◆ U-Boot 이용 = 398
  19.5.1. 망고64 ◆U2013◆ TFTP 다운로드 및 수행 = 398
  19.5.2. 망고64 ◆U2013◆ U-Boot에서의 동작 문제점 수정 = 399
  19.5.3. 망고64 ◆U2013◆ NAND 저장 및 수행 = 401
  19.5.4. 망고64 ◆U2013◆ bootcmd 및 환경 변수를 이용한 자동 수행 = 402
20. 작업 폴더(ecos.wk)에서 불필요한 파일 삭제하기 = 403
 20.1. 전체 비교 및 툴 삭제 = 403
  20.1.1. ecos.wk 부분과 ecos.opt.org 비교 = 403
  20.1.2. 환경 변수 파일과 gnutools 삭제 = 403
 20.2. ecos-3.0 부분 비교 정리 = 404
  20.2.1. ecos-3.0 내의 툴 및 불필요 파일 삭제 = 404
  20.2.2. 소스 편집 백업 파일 삭제 = 405
 20.3. packages/hal 부분 비교 정리= 406
  20.3.1. hal 내의 다른 CPU 삭제 = 406
  20.3.2. hal/arm 내의 다른 Target 삭제 = 407
  20.3.3. ARM11 폴더 비교 = 407
  20.3.4. ARM9 폴더 비교 = 408
21. eCos 포팅 전 준비 및 확인 = 409
 21.1. eCos 폴더 구조 = 409
  21.1.1. opt/ecos 폴더 구조 = 409
  21.1.2. eCos package 디렉토리 구조 = 410
  21.1.3. eCos hal 디렉토리 구조 = 411
 21.2. eCos Configuration Tool = 413
  21.2.1. Configtool View = 413
  21.2.2. HAL architecture = 414
  21.2.3. Property View = 415
  21.2.4. eCos에서 지원하는 package = 417
  21.2.5. eCos Template = 418
 21.3. SMDK2410 Template 빌드 작업 = 419
  21.3.1. Template 선택 = 419
  21.3.2. SMDK2410 빌드 확인 = 421
  21.3.3. smdk2410default_install 폴더 확인 = 422
  21.3.4. main 함수 작성 및 빌드 = 423
22. 망고24 포팅 과정 분석 ◆U2013◆ 첫 번째 이야기 = 425
 22.1. 포팅 과정 개요 = 425
  22.1.1. 포팅(Porting)의 진정한 의미 = 425
  22.1.2. 레퍼런스의 활용 = 425
 22.2. 포팅 습작 제작을 위한 준비 = 426
  22.2.1. 원본 소스 백업 = 426
  22.2.2. 수정 사항 확인 = 427
  22.2.3. 메모리 인터페이스 변경 = 428
  22.2.4. 불필요한 부분의 삭제 = 429
 22.3. 포팅 과정 진행 ◆U2013◆ 메모리 포팅 = 430
  22.3.1. 2410의 메모리 설정 부분 분석 = 430
  22.3.2. 망고-24 메모리 부분 분석 = 432
  22.3.3. S3C2443 DRAM 초기화 과정 = 433
  22.3.4. 망고-24 FW Monitor 프로그램 = 434
  22.3.5. 메모리 초기화 소스 수정 작업 준비 = 435
 22.4. S3C2443 DRAM 초기화 과정 진행 = 436
  22.4.1. DRAM Power와 Clock 안정화를 위한 Delay = 436
  22.4.2. Configuration Register 0 설정하기 = 436
  22.4.3. Control Register1∼3을 Normal 값으로 설정하기 = 441
  22.4.4. BANKCON1 레지스터 설정하기 = 447
  22.4.5. Refresh Timer 레지스터 설정하기 = 448
  22.4.6. Auto Refresh Cycle 2회 대기하기 = 448
  22.4.7. BANKCON1 INIT 10b 설정 = 449
  22.4.8. REFRESH 레지스터 Normal operation 값으로 설정 = 449
  22.4.9. BANKCON1 INIT 11b 설정 = 450
  22.4.10. BANKCON1 INIT 00b 설정 = 451
  22.4.11. DRAM 설정 종료 = 451
23. 망고24 포팅 과정 분석 ◆U2013◆ 두 번째 이야기 = 453
 23.1. Clock 설정 하기 = 453
  23.1.1. S3C2410 클럭 설정 부분 분석 = 453
  23.1.2. S3C2410과 S3C2443 클럭 설정 차이점 분석 = 456
  23.1.3. Configtool을 이용한 설정 변경 작업 = 458
  23.1.4. Clock Divider 설정 작업 = 462
 23.2. Interrupt 설정 하기 = 465
  23.2.1. Interrupt 설정 작업 개요 = 465
  23.2.2. hal_IRQ_handler = 468
  23.2.3. hal_interrupt_mask&hal_interrupt_unmask = 470
  23.2.4. hal_interrupt_acknowledge = 471
  23.2.5. hal_interrupt_configure& hal_interrupt_set_level = 474
24. 망고24 포팅 과정 분석 ◆U2013◆ 세 번째 이야기 = 475
 24.1. Timer 설정 작업 = 475
  24.1.1. 2410 타이머 설정 분석 = 475
  24.1.2. 2410과 2443의 타이머 설정 차이 = 480
 24.2. UART = 481
  24.2.1. UART 포팅 작업 개요 = 481
  24.2.2. 시리얼 포트 초기화 작업 = 482
  24.2.3. Virtual Vector Table (VVT)과 초기화 과정 호출 경로 = 485
  24.2.4. 시리얼 포트 하드웨어 설정 부분 = 488
  24.2.5. 2443의 정확한 클럭 설정을 위한 방법 = 492
  24.2.6. getc/putc 수정 사항 = 495
 24.3. 초기 빌드 작업 = 496
  24.3.1. hal_arm_arm9_smdk2410.cdl 수정 = 496
  24.3.2. Redboot ROM monitor = 498
  24.3.3. Startup Type ◆U2013◆ RAM, ROM = 498
  24.3.4. 최초 수행 = 501
25. 망고24 포팅하기 = 503
 25.1. 망고24에 맞도록 변경하기 = 503
  25.1.1. Template에 Mango24 보드 나타내기 = 503
  25.1.2. CYGPKG 수정 = 504
  25.1.3. CDL 파일 수정 = 506
  25.1.4. 2443 관련 클럭 수정 및 파일 이름 변경 = 508
  25.1.5. 빌드 및 에러 수정 = 510
 25.2. 망고-24 포팅 작업 = 513
  25.2.1. s3c2443x.h 수정 = 513
  25.2.2. 메모리 설정 값을 configurable하게 수정 = 514
  25.2.3. NAND Startup Type 정의하기 = 518
  25.2.4. DRAM 초기화 부분의 삭제 = 520
26. 망고64 포팅하기 = 523
 26.1. ARM11 eCos 포팅 개요 = 523
  26.1.1. ARM11 지원 관련 = 523
  26.1.2. 다른 Core 엿보기와 모방 전략 = 523
 26.2. ARM11 eCos 포팅 과정 = 526
  26.2.1. 폴더 생성 및 CDL 파일 작업 = 526
  26.2.2. Template 작업 ecos.db 수정 및 Configtool 확인 = 529
  26.2.3. 소스 코드 복사 = 532
  26.2.4. var 부분 작업 = 533
  26.2.5. MMU Page Table 작업 = 534
  26.2.6. arm11_misc.c = 538
  26.2.7. hal_cache.h = 538
 26.3. Mango64 폴더 포팅 작업 = 539
  26.3.1. s3c6410.h = 539
  26.3.2. Clock 포팅 = 540
  26.3.3. Peripheral Port Remap = 543
  26.3.4. Watchdog disable = 546
  26.3.5. Interrupt disable = 547
  26.3.6. Cache disable&clear = 548
  26.3.7. Clock initialization = 551
  26.3.8. Main Memory initialization = 555
  26.3.9. MMU initialization = 560
  26.3.10. Interrup = 563
  26.3.11. Timer = 565
  26.3.12. 기타 초기화 = 566
  26.3.13. UART = 566
 26.4. 망고64 구동 = 567
27. Ethernet Device Driver = 568
 27.1. 디바이스 드라이버 개요 = 568
 27.2. Ethernet driver 개요 = 569
 27.3. eCos Ethernet driver 구조 = 570
 27.4. Ethernet driver 개발 ◆U2013◆ 망고 24 = 573
  27.4.1. 회로도 연결 확인 = 573
  27.4.2. Mango24에 CS8900A driver 포팅 준비 = 575
  27.4.3. Mango24 Ethernet CDL 작성 = 575
  27.4.4. Source code 작성 = 577
  27.4.5. configtool 실행 = 579
  27.4.6. 실행 결과 확인 = 580
 27.5. Ethernet driver 개발 ◆U2013◆ 망고 64 = 581
  27.5.1. 회로도 연결 확인 = 581
  27.5.2. Mango64에 LAN9220 driver 포팅 준비 = 583
  27.5.3. LAN9220 driver directory 생성 = 584
  27.5.4. LAN9220 CDL 작성 = 584
  27.5.5. LAN9220 driver 소스 코드 = 586
  27.5.6. Mango64 Ethernet 구현 = 587
  27.5.7. configtool 실행 = 589
  27.5.8. 실행 결과 확인 = 590
28. NOR Flash Memory Device Driver = 592
 28.1. Introduction = 592
  28.1.1. 플래시 메모리 개요 = 592
  28.1.2. CPU와 Flash Memory의 연결 = 593
 28.2. 망고24 플래시 디바이스 드라이버 = 594
  28.2.1. NOR flash 추가하기 = 594
  28.2.2. Samsung NOR flash memory set 추가 = 597
 28.3. 망고24 보드에서 시험 수행 = 600
  28.3.1. 망고24 redboot 생성 = 600
  28.3.2. 망고24 Flash Test Program 생성 = 601
  28.3.3. 망고24 점퍼 설정 및 시험 = 603
 28.4. 망고64 플래시 디바이스 드라이버 = 605
  28.4.1. Mango64 flash driver CDL 작성 = 606
  28.4.2. Mango64 flash driver 소스코드 작성 = 607
  28.4.3. 메모리 뱅크 구분 처리 = 608
 28.5. 망고64 보드에서 시험 수행 = 611
  28.5.1. 망고64 redboot 생성 = 611
  28.5.2. 망고64 Flash Test Program 생성 = 612
  28.5.3. 망고64 점퍼 설정 및 시험 = 613
29. Frame Buffer Device Driver = 616
 29.1. Introduction = 616
  29.1.1. LCD display 기본 = 616
  29.1.2. Framebuffer API = 616
 29.2. eCos framebuffer 구현 하기 = 617
  29.2.1. Header export = 617
  29.2.2. Parameters = 617
  29.2.3. MACRO 정의 = 618
  29.2.4. cyg_fb 구조체 선언 = 619
  29.2.5. Driver source code = 619
 29.3. 망고보드 Framebuffer Driver 작성 = 621
  29.3.1. S3C2443 LCD controller register = 621
  29.3.2. Header 작성 = 621
  29.3.3. Source code 작성 = 622
  29.3.4. CDL file = 623
  29.3.5. Test code = 624
 29.4. 망고24 보드에서 시험 수행 = 625
  29.4.1. 망고24 Frame Buffer Test Program 생성 = 625
  29.4.2. 망고24 시험 = 626
 29.5. 망고64 Framebuffer Driver 작성 = 626
 29.6. 망고64 보드에서 시험 수행 = 628
  29.6.1. 망고64 Frame Buffer Test Program 생성 = 628
  29.6.2. 망고64 시험 = 628 
30. JFFS2 File System Device Driver = 630
 30.1. 망고24 보드에서 시험 수행 = 630
  30.1.1. 프로젝트 생성 및 패키지 선택 = 630
  30.1.2. New API 적용 설정 = 631
  30.1.3. 망고24 점퍼 설정 및 시험 = 632
 30.2. 망고64 보드에서 시험 수행 = 635
  30.2.1. 프로젝트 생성 및 패키지 선택 = 635
  30.2.2. New API 적용 설정 = 636
  30.2.3. 망고64 점퍼 설정 및 시험 = 637
맺음말 = 640
색인 = 641

관련분야 신착자료

Harvard Business Review (2025)