[volume. vol.1]----------
목차
CHAPTER 1 임베디드 시스템
1.1 임베디드 시스템이란? = 3
1) 최근의 컴퓨터 시스템의 분류 = 5
2) "임베디드 시스템" 용어의 의미 = 8
3) 임베디드 시스템의 특징 = 10
4) 임베디드 시스템의 구성 = 12
5) 임베디드 시스템의 분류 = 15
6) 임베디드 시스템의 응용 분야 = 15
1.2 임베디드 시스템의 개발 절차 = 18
1) 하드웨어의 선정 및 설계 = 19
2) 소프트웨어의 선정 및 설계 = 24
3) 하드웨어와 소프트웨어의 동시 개발의 필요성 = 26
4) 임베디드 시스템 디버거 = 30
CHAPTER 2 임베디드 프로세서(Embedded Processor)
2.1 프로세서(Processor)란? = 37
1) 프로세서의 구조 = 38
2) 프로세서의 종류 및 특징 = 39
3) SoC(System on Chip) 소개 = 42
2.2 ARM 프로세서 = 47
1) ARM 프로세서의 강점 = 48
2) ARM 아키텍처의 특징 = 50
3) ARM 프로세서 Programmer's 모델 = 56
CHAPTER 3 SYS-Lab 5000 장비를 활용한 교차 개발 환경 구축
3.1 교차 개발 환경 개요 = 71
1) 교차 개발 환경의 필요성 = 71
2) 크로스 컴파일러 = 73
3.2 실습 보드 개요 = 74
1) 실습 보드 개요 = 74
2) SYS-Lab 5000 실습 장비의 구조 = 76
3) 실습용 보드의 메모리 구조 = 78
3.3 Host PC 개발 환경 구축 = 82
1) 터미널 환경 구축 = 82
2) JTAG 인터페이스 환경 구축 = 94
3) 크로스 컴파일러 툴 체인 환경 구축 = 101
CHAPTER 4 부트코드
4.1 부트코드 역할 및 특징 = 114
1) ARM 프로세서 부트코드의 동작 절차 = 118
4.2 부트코드 작성 = 122
1) 어셈블리어 부트 코드 작성 = 123
4.3 부트코드를 이용한 장치제어 실습 = 143
1) LED 제어 프로그램 작성 = 143
2) FND 제어 프로그램 작성 = 149
4.4 부트로더 = 157
1) 운영체제와 부트로더 = 157
2) SYS-Lab 5000 부트로더 소개 및 사용법 = 158
3) 부트로더의 소스코드 구현 = 170
4) 리눅스 커널로의 진입 = 173
CHAPTER 5 교차 개발 환경 구축
5.1 교차 개발 환경 구축 = 177
1) 임베디드 시스템 설치용 CD의 구성 = 178
2) 설치 CD 하드디스크에 복사 = 180
3) 크로스 컴파일러 설치 = 184
5.2 파일 전송 환경 구축 = 189
1) 부트로더 파일 전송 환경설정 부분 = 189
CHAPTER 6 임베디드 리눅스 운영체제
6.1 운영체제란? = 211
1) 운영체제의 역할 = 212
6.2 임베디드 리눅스 = 215
1) 리눅스란? = 215
2) 리눅스의 역사 = 215
6.3 리눅스 커널의 특징 = 218
1) 모놀리식 커널 = 218
2) 마이크로 커널 = 219
3) 리눅스의 하이브리드 모놀리식 커널 = 219
6.4 임베디드 리눅스 커널의 발전 = 220
1) 리눅스 커널 v2.6의 특징 = 221
6.5 임베디드 리눅스 커널 환경 설정 및 컴파일 = 224
1) 리눅스 커널 환경 설정 및 컴파일 = 225
2) 분리되어 컴파일 된 커널 추가 기능의 이용 = 236
CHAPTER 7 임베디드 리눅스 커널 포팅 기초
7.1 리눅스 커널 소스 코드 준비 = 252
1) 리눅스 커널 소스 코드 다운로드 방법 = 252
2) 리눅스 커널 소스 코드 압축 해제 = 254
3) 압축이 해제된 커널 소스 코드 디렉터리로 이동 = 254
7.2 리눅스 커널 포팅 = 255
1) 크로스 컴파일러 설정 = 256
2) 장치 번호 수정 = 257
3) 환경 설정 적용 = 259
4) 환경 설정 수정 = 261
CHAPTER 8 임베디드 리눅스 디바이스 드리이버
8.1 리눅스 디바이스 드라이버 = 277
1) 리눅스 디바이스 드라이버 개요 = 279
2) 리눅스 디바이스 드라이버 모듈화 컴파일 방법 = 280
3) 리눅스 디바이스 드라이버 구조 = 283
8.2 리눅스 디바이스 드라이버 작성 실습 = 305
1) LED 디바이스 드라이버 작성 = 305
2) FND 디바이스 드라이버 작성 = 316
3) Dot-Matrix 디바이스 드라이버 작성 = 329
4) Push-Switch 디바이스 드라이버 작성 = 340
8.3 리눅스 디바이스 드라이버 응용 프로그램 작성 = 351
1) LED 디바이스 드라이버 응용 프로그램 작성 = 353
2) FND 디바이스 드라이버 응용 프로그램 작성 = 356
3) Dot-Matrix 디바이스 드라이버 응용 프로그램 작성 = 361
4) Push-Switch 디바이스 드라이버 응용 프로그램 작성 = 363
부록
부록 1 리눅스 설치 = 369
부록 2 VMware 설치 = 384
부록 3 기본적인 리눅스 명령어 = 392
부록 4 Vi 에디터 = 421
부록 5 SYS-Lab 5000 임베디드 시스템 보드 소개 = 429
찾아보기 = 447
[volume. vol.2]----------
목차
CHAPTER 1 FPGA 소개
1.1 FPGA 개요 = 5
1.2 FPGA 설계 도구 = 11
1.3 FPGA 설게 방법 = 14
1) HDL = 14
2) Schematic design = 15
3) State Diagram = 17
CHAPTER 2 HDL(Hareware Description Language)
2.1 VHDL의 구성 및 특징 = 22
1) VHDL의 개요 = 22
2) VHDL의 회로 모델링 방법 = 25
3) VHBL의 문법 구조 = 30
4) VHDL의 port 구문의 속성 = 32
5) VHDL의 선언문 = 33
6) VHDL의 architecture 구문과 동작 표현 = 34
7) VHDL의 subprogram = 36
8) VHDL의 구문의 concurrent 특성 = 38
9) VHDL의 신호 속성 = 44
10) VHDL의 값의 표현 = 45
2.2 VHDL 예제 = 46
1) 8-bit 2개의 입력 중 하나를 선택하여 출력으로 내보내는 Multiplexer = 46
2) 3-bit의 sel의 값에 따라 8-bit의 출력 중 한 비트를 '0'으로 만드는 decoder = 47
3) 8-bit up counter = 48
4) 8-bit up/down counter = 50
5) 10진 counter = 51
6) Half Adder = 52
7) Full Adder = 53
2.3 Verilog의 구성 및 특징 = 54
1) Verilog의 개요 = 54
2) Verilog의 문법 구성 = 55
3) Verilog의 표현 방법 = 57
4) Verilog의 Net 종류와 속성 = 61
5) Verilog의 조건문 = 62
6) Verilog의 데이터 표현 = 65
2.4 Verilog HDL 예제 = 66
1) 8-bit 2개의 입력 중 하나를 선택하여 출력으로 내보내는 Multiplexer = 66
2) 3-bit의 sel의 값에 따라 8-bit 출력 중 한 비트를 '0'으로 만드는 decoder = 67
3) 8-bit up counter = 68
4) 8-bit up/down counter = 69
5) 10진 counter = 70
6) Half Adder = 71
7) Full Adder = 72
CHAPTER 3 FPGA 설계
3.1 LED 값의 출력 = 77
1) 카운터를 사용한 LED 값의 증가 = 91
2) 1초마다 LED 값의 증가 = 95
3) LED를 사용한 2진 표기 시계의 구현 = 98
4) LED의 밝기 조절 = 109
3.2 FND의 데이터 출력 = 113
1) 7-segment의 구성 = 113
2) 특정 값 출력 = 118
3) 카운트 값 출력 = 125
4) 시계 구현 = 130
3.3 LED Dot Matrix 출력 = 142
1) LDM(LED Dot Matrix)의 구성 = 142
2) LDM(LED Dot Matrix) 구동 예제 = 148
3.4 Text LCD 출력 = 156
1) Text LCD의 구성 = 156
2) Text LCD 문자 출력 - 1 = 165
3) Text LCD 문자 출력 - 2 = 173
3.5 Push Switch 입력 = 181
1) Push switch의 입력 = 181
2) Push switch 입력 count = 183
3.6 Key Matrix 입력 = 186
3.7 Slide Switch 입력 = 195
1) Slide switch 입력을 LED에 표시 = 195
2) 3개의 slide switch의 입력을 0에서 7까지의 숫자로 7-segment에 출력 = 196
3.8 DIP Switch 입력 = 198
1) DIP switch 값을 입력 받아 LED에 출력 = 198
2) 두 개의 DIP switch 값을 더해 LED에 출력 = 200
3.9 Rotary Switch 입력 = 201
3.10 Buzzer 출력 = 204
1) Buzzer에 소리 발생 = 204
2) 특정 음계 발생 = 205
3.11 Step Motor 구동 = 214
1) 유니폴라 1상 여자 방식 = 214
2) 유니폴라 2상 여자 방식 = 224
3.12 DC Motor 구동 = 227
3.13 PS/2 keyboard 입력 = 235
3.14 TFT LCD 패턴 출력 = 248
3.15 PXA272 Interface Device 설계 = 264
CHAPTER 4 주변장치 제어기 설계
4.1 FPGA에 구현한 주변장치 제어기의 개요 = 288
4.2 SCR(System Configuration Register)의 구현 = 292
4.3 LCR(LED Control Register)의 구현 = 300
4.4 SGCR(7-Segment Control Register)의 구현 = 305
4.5 LDM(LED Dot Matrix) Control Register의 구현 = 311
4.6 PS2CR(PS/2 Key-Pad Control Register)의 구현 = 339
4.7 Text LCD Control Register의 구현 = 348
4.8 KMCR(Key Matrix Control Register)의 구현 = 354
4.9 ACR(Audio Control Register)의 구현 = 361
4.10 DMCR(DC Motor Control Register)의 구현 = 366
4.11 SMCR(STEP Motor Control Register)의 구현 = 370
4.12 BCR(Buzzer Control Register)의 구현 = 375
4.13 DSCR(DIP Switch Control Register)의 구현 = 378
4.14 SSCR(Slide Switch Control Register)의 구현 = 382
4.15 PSCR(PUSH Switch Control Register)의 구현 = 385
4.16 RSCR(Rotary Switch Control Register)의 구현 = 388
부록
부록 1 FPGA 개발환경 설정 = 393
부록 2 SYS-Lab 5000의 주변장치 제어기 = 412
부록 3 SYS-Lab 5000 임베디드 시스템 보드 소개 = 450
찾아보기 = 467