정오표

 

1쇄

 

6쪽 메시지 관리자 부분 (김남형 님)
상호배(뮤스)

상호(뮤스)

 

52쪽 중간 본문 2행 (저자)
실제 레지스터 주소 번지는 그림 3-1과 같이 pxa255.h에 …

실제 레지스터 주소 번지는 pxa255.h에 …

 

60쪽 그림 4-2 30번 비트 (김남형 님)

31  30  29  28

N   N   C   V

31  30  29  28

N   Z   C   V

 

66쪽 그림 4-4 오른쪽 아래 박스 바로 위 (김모락 님)
0xA000810

0xA00081FC

 

68쪽 위쪽 소스코드 밑에서 3행 (이원철 님)
asm__(“swi 77”);

__asm__(“swi 77”);

 

68쪽 아래쪽 소스코드 1행 (노진희 님)
globl_ram_entry

.globl_ram_entry

 

73쪽 1행 파일명 (김남형 님)
ezboot/start/start.S<

ezboot/start/start.S

 

80쪽 5.1.2 제목 (김남형 님)
테스크-ISR 간 컨텍스트 스위칭

태스크-ISR 간 컨텍스트 스위칭

 

88쪽 그림 5-2 중간의 메모리 열 (김남형 님)

r12

r13

r12

r14

 

126쪽 그림 7-3 (김남형 님)

0×A02F FFFC

0×A02F FFF8

0×A02F FFF4

0×A02F FFF0

0×A02F FFFC

0×A02F FFE8

0×A02F FFE4

0×A02F FFE0

0xA02F FFFC

0xA02F FFF8

0xA02F FFF4

0xA02F FFF0

0xA02F FFEC

0xA02F FFE8

0xA02F FFE4

0xA02F FFE0

 

132쪽 그림 8-1 왼쪽 상자 1행 (김남형 님)
blcok_start_addr, block_end_addr

block_start_addr, block_end_addr

 

132쪽 아래쪽 소스코드 밑에서 4행 (김영현 님)
unsigned int alloc(void);

unsigned int (*alloc)(void);

 

139쪽 밑에서 7행 (장태종 님)
운영가 여러 개의 태스크를

운영체제가 여러 개의 태스크를

 

143쪽 2행 (김남형 님)
임베디드 운영체제에는 대부분 셸이 없기기 때문에 …

임베디드 운영체제에는 대부분 셸이 없기 때문에 …

 

147쪽 소스코드 11행 (장태종, 김남형 님)
if (task_idx > MAXTASKNUM) {

if (task_idx >= MAXTASKNUM) {

 

168쪽 그림 10-3 (김모락 님)
[r13] [pc]

[r13] [r14] [pc]

 

181쪽 그림 10-5 위에서 네 번째 상자 (김남형 님)
ir

lr

 

183쪽 마지막 행 (김남형 님)
처리하기 위해 ISR(Interrupt Service Rutin) 안으로 …

처리하기 위해 ISR(Interrupt Service Routine) 안으로 …

 

186쪽 그림 11-1 바로 아래 행 (김남형 님)
예를 들면 GPIO 핀에 full-down 저항을 …

예를 들면 GPIO 핀에 pull-down 저항을 …

 

186쪽 마지막 문단 1행 (김남형 님)
Falling edge에서는 full-up 저항을 …

Falling edge에서는 pull-up 저항을 …

 

189쪽 11.1.7 4행 (김남형 님)
full-up 저항으로…

pull-up 저항으로…

 

193쪽 4행 (김남형 님)
Full-up 되게 만든다.

pull-up 되게 만든다.

 

242쪽 그림 13-3 (김남형 님)
msgmng_itc_get()

msgmng.itc_get()

 

269쪽 둘째 문단 1행 (김남형 님)
254번째까지 50개의 자유 메시지 …

254번째까지 55개의 자유 메시지 …

 

294쪽 첫 문단 2행 (김남형 님)
헤더에는 블록이 사용 중인지를 표시하는 flag

헤더에는 블록이 사용 중인지를 표시하는 플래그

 

296쪽 밑에서 2행 (김남형 님)
할당할 크기를 매개변수로 받으면 heap_end 변수를 size만큼 증가시키고, 해당 블록을 사용 중으로 표시한다. 그리고 heap_start와 heap_end 사이에 할당했다가 해제한 블록이 있는지 검사한다. 있다면 그 크기를 검사해서 해당 블록의 크기가 요청받은 크기보다 큰지 확인한다. 해당 블록의 크기가 충분히 크면 그 블록을 그대로 재사용한다.

할당할 크기를 매개변수로 받으면 먼저 heap_start와 heap_end 사이에 할당했다가 해제한 블록이 있는지 검사한다. 있다면 그 크기를 검사해서 해당 블록의 크기가 요청받은 크기보다 큰지 확인한다. 해당 블록의 크기가 충분히 크면 그 블록을 그대로 재사용한다. 만약 해제한 블록이 없거나 해제한 블록 중 요청한 크기보다 큰 블록이 없다면, used_end 뒤에 요청한 크기로 새 블록을 생성하고  used_end 변수를 ‘요청한 크기 + 메모리 블록 헤더’만큼 증가시킨다.

 

 

301쪽 마지막 문단 2행 (김남형 님)
각각 2킬로바이트, 3킬로바이트, 4킬로바이트를 할당했다가, 3킬로바이트짜리 변수를 할당 해제한다. 여기까지 결과는 3킬로바이트 블록의 used 플래그가 0이다. 다시 1킬로바이트가 할당되면 3킬로바이트보다 크기가 작으므로 전에 3킬로바이트 블록이 사용했던 블록을 1킬로바이트짜리 변수가 사용하게 될 것이다(그림 15-3).

각각 2킬로바이트와 3킬로바이트를 할당했다가, 3킬로바이트짜리 변수를 할당 해제한 후 4킬로바이트짜리 변수를 할당한다. 여기까지 졀과는 3킬로바이트 블록의 used 플래그가 0이다. 다시 1킬로바이트가 할당되면 3킬로바이트보다 크기가 작으므로 전에 3킬로바이트 블록이 사용했던 블록을 1킬로바이트짜리 변수가 사용하게 될 것이다(그림 15-3).

 

332쪽 17.2.6 2행, 4행 (김남형 님)

동기화(세마포어, 뮤택스)로 …

세마포어와 뮤택스를 …

동기화(세마포어, 뮤텍스)로 …

세마포어와 뮤텍스를 …