MARC 닫기
01084nam ac200349 k 4500
000000745361
20220619200553
ta
061128s2006 ggka 001 kor
▼a 8989975697
▼g 93560:
▼c \25000
▼a 248023
▼c 248023
▼d 111314
▼a kor
▼h eng
▼l EM0000183138
▼a 005.133
▼2 21
▼a 005.133
▼b 루68ㅇ
▼a 루이스, 다니엘 W.
▼a 임베디드 프로그래밍 입문:
▼b C와 어셈블리로 확실히 배우는/
▼d 다니엘 W. 루이스 지음;
▼e 김기주 옮김.
▼a Fundamentals of embedded software : where C and assembly meet
▼a 의왕:
▼b 에이콘출판,
▼c 2006.
▼a xxiii, 364 p.:
▼b 삽화;
▼c 26 cm+
▼e 컴팩트 디스크 1매.
▼a 엠베디드 프로그래밍 시리즈;
▼v 21.
▼a 권말부록으로 '부록 CD 내용', 'DJGPP 컴파일러' 등 수록
▼a 감수: 박재호
▼a Lewis, Daniel W.
▼a 색인수록
▼a 임베디드
▼a 프로그래밍
▼a C언어
▼a 어셈블리
▼a 김기주
▼a 감수: 박재호
▼a Lewis, Daniel W.
▼b \25000
▼a FUTURE
▼a 단행본
| 자료유형 : | 단행본 |
|---|---|
| ISBN : | 8989975697 |
| 분류기호 : | 005.133 |
| 개인저자 : | 루이스, 다니엘 W. |
| 서명/저자사항 : | 임베디드 프로그래밍 입문: C와 어셈블리로 확실히 배우는/ 다니엘 W. 루이스 지음; 김기주 옮김. |
| 원서명 : | Fundamentals of embedded software : where C and assembly meet |
| 발행사항 : | 의왕: 에이콘출판, 2006. |
| 형태사항 : | xxiii, 364 p.: 삽화; 26 cm+ 컴팩트 디스크 1매. |
| 총서사항 : | 엠베디드 프로그래밍 시리즈; 21. |
| 일반주기 : | 권말부록으로 '부록 CD 내용', 'DJGPP 컴파일러' 등 수록 |
| 일반주기 : | 감수: 박재호 |
| 일반주기 : | Lewis, Daniel W. |
| 서지주기 : | 색인수록 |
| 개인저자 : | 김기주 |
| 개인저자 : | 감수: 박재호 |
| 개인저자 : | Lewis, Daniel W. |
| 언어 | 한국어 |
KMO200603963
권 호 :
발행년 : 2006
발행처 : 에이콘출판
서 명 : 임베디드 프로그래밍 입문:C와 어셈블리로 확실히 배우는
목차
감사의 글 = ⅳ
옮긴이의 글 = ⅵ
들어가며 = xviii
01 개요 = 1
1.1 임베디드 시스템이란? = 2
1.2 임베디드 소프트웨어 고유의 디자인 목표는? = 5
1.3 '실시간'이란? = 7
1.4 '멀티태스킹'이란? = 9
1.5 임베디드 프로세서는 얼마나 강력한가? = 10
1.6 어떤 프로그래밍 언어를 사용하는가? = 11
1.7 '실시간 커널'이란? = 12
1.8 임베디드 애플리케이션 제작은 왜 특별한가? = 13
1.9 보통 임베디드 프로그램의 크기는 얼마나 되는가? = 16
1.10 이 책에서 사용하는 소프트웨어 = 16
02 데이터 표현 = 21
2.1 고정 정밀도 이진수 = 22
2.1.1 자릿수 체제 = 24
2.1.2 2진수를 10진수로 바꾸는 법 = 25
2.1.3 10진수를 2진수로 바꾸는 법 = 25
2.1.4 수 세기 = 27
2.1.5 고정 정밀도와 오버플로우 = 27
2.1.6 16진수 표현 = 28
2.2 정수의 2진 표현 = 29
2.2.1 부호 있는 정수 = 30
2.2.2 같은 크기 정수의 양수와 음수 표현 = 30
2.2.3 2의 보수의 해석 = 32
2.2.4 범위와 오버플로우에 대해서 한 번 더 = 33
2.2.5 2의 보수와 하드웨어 복잡도 = 34
2.3 실수의 2진 표현 = 37
2.3.1 고정 소수점 표현 = 37
2.3.2 범용 16.16 포맷의 고정 소수점 = 40
2.3.3 범용 32.32 포맷의 고정 소수점 = 42
2.3.4 부동 소수점 표현 = 46
2.4 텍스트의 ASCII 표현 = 49
2.5 이진화 십진 표기법 = 52
03 C 최대한 활용하기 = 57
3.1 정수 데이터 형 = 58
3.2 데이터 형 섞어 쓰기 = 62
3.3 유용한 TYPEDEF와 #DEFINE = 64
3.4 메모리에서의 비트 조작 = 65
3.4.1 비트 검사 = 68
3.4.2 비트 설정, 클리어, 반전 = 69
3.4.3 비트 추출 = 70
3.4.4 비트 삽입 = 71
3.5 I/O 포트에서의 비트 조작 = 72
3.5.1 쓰기 전용 I/O 포트 = 73
3.5.2 읽기와 쓰기로 구별하는 포트 = 73
3.5.3 쓰는 순서로 구별하는 포트 = 74
3.5.4 쓰는 데이터 비트 값으로 구별하는 포트 = 75
3.6 메모리 맵 I/O장치의 액세스 = 75
3.6.1 포인터를 통한 데이터 접근 = 76
3.6.2 배열, 포인터, '주소' 연산자 = 77
3.7 구조체 = 79
3.7.1 빈틈없이 채운 구조체 = 80
3.7.2 비트 필드 = 82
3.8 가변 접근 = 84
3.8.1 객체 주소 캐스팅 = 84
3.8.2 유니온 = 86
04 프로그래머 관점에서 바라본 컴퓨터 구조 = 91
4.1 메모리 = 92
4.2 CPU = 94
4.2.1 ALU = 95
4.2.2 기타 레지스터 = 96
4.2.3 제어 유닛 = 96
4.3 입출력 = 98
4.4 인텔 아키텍처 개요 = 99
4.4.1 명령어 포맷 = 101
4.4.2 명령어 오퍼랜드 = 102
4.4.3 오퍼랜드 제약사항 = 103
4.4.4 레지스터 = 105
4.4.5 스택 = 108
4.5 인텔 리얼 모드 아키텍처 = 110
4.5.1 세그먼트 어드레싱 = 110
4.5.2 주소 지정 방식 = 113
4.6 인텔 보호 모드 아키텍처 = 116
4.6.1 세그먼트 레지스터와 GDT = 116
4.6.2 플랫 메모리 모델 = 118
4.6.3 주소 지정 방식 = 118
4.7 오퍼랜드와 주소 크기 오버라이드 프리픽스 = 119
4.8 인텔 데이터 조작 명령어 = 120
4.8.1 데이터 이동, 스택, I/O 명령 = 121
4.8.2 산술 연산 명령어 = 123
4.8.3 비트 연산 명령어 = 126
4.8.4 시프트 명령어 = 126
05 C와 어셈블리 섞어 쓰기 = 133
5.1 어셈블리 프로그래밍 = 134
5.2 레지스터 사용 관례 = 136
5.3 전형적인 주소 지정 방식 = 137
5.3.1 상수 주소 데이터 접근 = 138
5.3.2 변수 주소 데이터 접근 = 139
5.4 명령어 실행 순서 = 140
5.4.1 복합 조건식 = 143
5.4.2 If-Then-Else 문 = 145
5.4.3 루프 = 145
5.4.4 문자열 명령어를 이용한 더 빠른 루프 = 147
5.5 프로시저 호출과 복귀 = 149
5.6 파라미터 전달 = 151
5.7 파라미터 읽기 = 153
5.8 모든 것을 값으로 전달 = 155
5.9 임시변수 = 156
06 I/O 프로그래밍 = 163
6.1 인텔 I/O 명령어 = 165
6.2 동기화, 전송 속도, 대기 시간 = 166
6.3 폴링 대기 루프 = 167
6.4 인터럽트 구동 I/O = 170
6.4.1 하드웨어 응답 = 170
6.4.2 ISR = 173
6.4.3 PIC = 175
6.4.4 버퍼와 큐 = 176
6.4.5 어셈블리로 ISR 작성하기 = 179
6.4.6 C로 ISR 작성하기 = 180
6.4.7 NMI = 182
6.4.8 소프트웨어 인터럽트 = 182
6.4.9 예외 = 183
6.5 DMA = 185
6.5.1 이중 버퍼링 = 185
6.6 비교 = 186
07 병행 소프트웨어 = 191
7.1 전경/배경 시스템 = 192
7.1.1 스레드 상태와 직렬화 = 193
7.1.2 지연시간 관리 = 193
7.1.3 인터럽트 초과 실행 방지 = 197
7.1.4 작업을 배경으로 이동 = 199
7.2 멀티스레드 프로그래밍 = 200
7.2.1 독립된 스레드의 병행 실행 = 201
7.2.2 문맥 전환 = 201
7.2.3 비선점형 (협조적) 멀티태스킹 = 203
7.2.4 선점형 멀티태스킹 = 203
7.3 공유 자원과 크리티컬 섹션 = 205
7.3.1 인터럽트 금지 = 206
7.3.2 태스크 전환 금지 = 206
7.3.3 스핀 락 = 207
7.3.4 뮤텍스 = 208
7.3.5 세마포어 = 209
08 스케줄링 = 212
8.1 스레드 상태 = 214
8.2 대기 스레드 = 215
8.3 문맥 전환 = 216
8.4 라운드 로빈 스케줄링 = 219
8.5 우선순위 기반 스케줄링 = 220
8.5.1 우선순위 반전 = 220
8.5.2 우선순위 상속 프로토콜 = 221
8.5.3 우선순위 상한 프로토콜 = 222
8.5 우선순위 할당 = 222
8.6.1 데드라인 구동 스케줄링 = 223
8.6.2 주기 단조 스케줄링 = 224
8.7 데드락 = 225
8.8 와치독 타이머 = 226
09 메모리 관리 = 231
9.1 C에서의 객체 = 232
9.2 스코프 = 233
9.2.1 지역 스코프 = 234
9.2.2 전역 스코프 = 235
9.3 수명 = 237
9.4 자동 할당 = 237
9.4.1 저장 클래스 '레지스터' = 239
9.5 정적 할당 = 239
9.6 정적 할당과 자동 할당을 구별하기 위한 세 가지 프로그램 = 241
9.6.1 객체 생성 = 241
9.6.2 객체 초기화 = 242
9.5.3 객체 제거 = 243
9.7 동적 할당 = 245
9.7.1 단편화 = 246
9.7.2 메모리 할당 풀 = 247
9.8 가변 크기 자동 할당: ALLOCA = 247
9.8.1 가변 크기 배열 = 248
9.9 재귀 함수와 메모리 할당 = 249
10 공유 메모리 = 259
10.1 공유 객체 인식 = 260
10.1.1 공유 전역 데이터 = 261
10.1.2 공유 사적 데이터 = 261
10.1.3 공유 함수 = 261
10.2 재진입 가능 함수 = 262
10.3 읽기 전용 데이터 = 263
10.3.1 타입 수식어 'const' = 263
10.4 피해야 할 코딩 습관 = 264
10.4.1 내부 상태를 지역 정적 객체에 보관하는 함수 = 265
10.4.2 지역 정적 객체의 주소를 리턴하는 함수 = 267
10.5 공유 메모리 접근 = 268
10.5.1 프로세서 워드 크기의 영향 = 270
10.5.2 읽기 전용과 쓰기 전용 액세스 = 271
10.5.3 타입 수식어 'volatile' = 272
11 시스템 초기화 = 279
11.1 메모리 레이아웃 = 280
11.2 CPU = 282
11.2.1 플랫 메모리 모델 설정 = 282
11.2.2 보호 모드로 전환 = 285
11.3 C 런타임 환경 = 286
11.3.1 롬에서 램으로 복사 = 287
11.3.2 초기값 없는 정적 변수를 0으로 초기화 = 288
11.3.3 힙 설정 = 288
11.4 시스템 타이머 = 290
11.4.1 타이머 0: 타이머 틱 = 291
11.4.2 타이머 1: 메모리 리프레시 = 291
11.4.3 타이머 2: 스피커 주파수 = 292
11.5 인터럽트 시스템 = 293
11.5.1 IDT 초기화 = 293
11.5.2 8259 PIC 초기화 = 296
11.5.3 새로운 ISR의 설치 = 298
부록 A 부록 CD 내용 = 301
부록 B DJGPP 컴파일러 = 303
부록 C NASM 어셈블러 = 307
부록 D 프로젝트 프로그래밍 = 310
부록 E libepc 라이브러리 = 339
부록 F 부트 로더 = 352
찾아보기 = 359
(Web·programming·Git이 쉬워지는) 비주얼 스튜디오 코드 가이드
005.13 리47ㅂ김
(만화) 마키아벨리 군주론,. 1 / 개정판
001.308 서66ㅅ2
삶이 허기질 때 나는 교양을 읽는다 : 지식 브런치 마스터 에디션
001.3 지58삶
(Python을 활용한 AI 기반) 데이터 사이언스 방법론 : 머신러닝부터 생성형 AI까지
006.312 이54ㄷ
서평쓰기