Price : 24,500원
help@crz-tech.com ( 031-701-5057)
Mango Story 6.0 Feature
l ARM9, ARM11 시스템 개발자의 고민을 한번에 해결하는
l 완벽! ARM9, ARM11 펌웨어, RTOS (eCos) 실전 바이블
l Introduction & 환경 구성
l 하드웨어 매뉴얼
l Firmware 연구
l RTOS (eCos) 포팅
l RTOS (eCos) 기반 디바이스 드라이버 연구
목 차
서 언 .....................................................................................................................................................................
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. 우분투 업데이트 – 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
목 차
www.mangoboard.com cafe.naver.com/embeddedcrazyboys CRZ Technology 5
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 – 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
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/Headphone 인터페이스 ..................................................................................
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
목 차
www.mangoboard.com cafe.naver.com/embeddedcrazyboys CRZ Technology 7
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] – NOR Flash Boot
...............................................................................
135
8.3.3. Boot Mode [SW100] – 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 극성 설정 – 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
8
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로 네트워크 설정 변경 – 망고24 보드 .................................................................
178
9.4.5. 고정 IP로 네트워크 설정 변경 – 우분투 .............................................................................
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로 네트워크 설정 변경 – 망고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 – 크로스 케이블 다운로드 테스트 ..........................................................................
195
9.6.4. 망고24 – 크로스 케이블 다운로드 테스트 ..........................................................................
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 – UART 부분 회로도 ......................................................................................................
204
10.3.2. 망고24 – Hello
Mango 프로그램..............................................................................................
205
10.3.3. 망고24 – Hello
Mango 내용 설명 ...........................................................................................
206
10.3.4. 망고24 – Hello
Mango 빌드 .......................................................................................................
210
10.3.5. 망고24 – Hello
Mango 수행 .......................................................................................................
212
10.3.6. bootelf
.................................................................................................................................................
213
10.3.7. 망고64 – UART 부분 회로도 ......................................................................................................
215
10.3.8. 망고64 – Hello
Mango 프로그램..............................................................................................
215
10.3.9. 망고64 – Hello
Mango 내용 설명 ...........................................................................................
218
10.3.10. 망고64 – Hello
Mango 빌드 .......................................................................................................
219
목 차
www.mangoboard.com cafe.naver.com/embeddedcrazyboys CRZ Technology 9
10.3.11. 망고64 – Hello
Mango 수행 ......................................................................................................
220
10.4. 임베디드 개발 개요 .................................................................................................................................
222
10.5. UART GPIO 설정 .......................................................................................................................................
223
10.5.1. UART 관련 GPIO 포트 설정 ......................................................................................................
223
10.5.2. GPIO 포트 설정 코드 확인 – 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 – 초기화 부분 변경 사항 ......................................................................................
255
12.1.5. s3c_uart.c – Write 부분 변경 사항 .........................................................................................
258
12.1.6. s3c_uart.c – 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
10
12.3.5. 기타 함수 – _sbrk
...........................................................................................................................
275
12.3.6. 기타 함수 – __srget_r ....................................................................................................................
279
12.3.7. 기타 함수 – _fstat
...........................................................................................................................
280
12.3.8. 기타 함수들 – _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 컨트롤 – Pin Configuration
............................................................................................
286
13.1.3. GPIO 컨트롤 – Pin Data Register ............................................................................................
286
13.1.4. GPIO 컨트롤 – 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. 함수 프로토타입 설계 – s3c_gpio.h
.......................................................................................
307
14.1.3. 기타 헤더 파일 수정 .....................................................................................................................
308
14.2. 버튼 드라이버 소스 파일 수정 – mango_button.c
.................................................................... 308
14.3. main 함수 수정 .........................................................................................................................................
309
14.4. GPIO 드라이버 소스 파일 수정 – 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
목 차
www.mangoboard.com cafe.naver.com/embeddedcrazyboys CRZ Technology 11
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 – 레지스터 주소 Offset
..................................................................................
327
15.3.3. Timer header – Prescaler 설정 (Configuration 0)
............................................................ 329
15.3.4. Timer Dead Zone
............................................................................................................................
330
15.3.5. Timer header – 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 구현 – Configuration 부분 .....................................................................................
340
16.1.3. Function 구현 – PWM enable 부분 .......................................................................................
342
16.1.4. Function 구현 – 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 구현 – 초기화 부분 ...................................................................................................
352
16.3.3. Function 구현 – 밝기 설정 부분 ............................................................................................
352
16.3.4. Function 구현 – 밝기 Step Up Down 부분 .......................................................................
355
16.3.5. Makefile 변경과 Main 함수 변경 ...........................................................................................
355
12
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. 작업 폴더 빌드 – 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에서 실행하기 – DNW 이용 ...................................................................................................
387
19.1.1. DNW 실행 및 설정 ........................................................................................................................
387
19.1.2. 망고24에서 redboot.bin 실행하기 ...........................................................................................
388
19.2. 망고64에서 실행하기 – 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에서 실행하기 – U-Boot 이용 ...............................................................................................
393
목 차
www.mangoboard.com cafe.naver.com/embeddedcrazyboys CRZ Technology 13
19.4.1. 망고24 – TFTP 다운로드 및 수행 ............................................................................................
393
19.4.2. 망고24 – NAND 저장 및 수행 .................................................................................................
395
19.4.3. 망고24 – bootcmd를
이용한 자동 수행 ..............................................................................
397
19.4.4. 망고24 – 환경 변수 설정을 통한 자동 수행 .....................................................................
397
19.5. 망고64에서 실행하기 – U-Boot 이용 ...............................................................................................
398
19.5.1. 망고64 – TFTP 다운로드 및 수행 ............................................................................................
398
19.5.2. 망고64 – U-Boot에서의
동작 문제점 수정 .........................................................................
399
19.5.3. 망고64 – NAND 저장 및 수행 .................................................................................................
401
19.5.4. 망고64 – 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 포팅 과정 분석 – 첫 번째 이야기 ...............................................................................
425
14
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. 포팅 과정 진행 – 메모리 포팅............................................................................................................
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 포팅 과정 분석 – 두 번째 이야기 ...............................................................................
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
목 차
www.mangoboard.com cafe.naver.com/embeddedcrazyboys CRZ Technology 15
24. 망고24 포팅 과정 분석 – 세 번째 이야기 ...............................................................................
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 – 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
16
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.
Interrupt..............................................................................................................................................
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 개발 – 망고 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 개발 – 망고 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
목 차
www.mangoboard.com cafe.naver.com/embeddedcrazyboys CRZ Technology 17
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
18
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 |
내용