임베디드/Arm2567SAM

4월 23일 capture.S와 Elf32

송시혁 2013. 4. 23. 14:42

확장자 S = 어셈블리

 : (라벨)은 글자형태의 주소

ldr = load rge, 레지스터를 load한다.


pc, reset_handler

pc = program counter = 실행하다

메모리에 code영역에서 주소를 받아와서 해석한다.

즉, 파일을 실행한다는 의미.

인텔 = ip

확장= 32비트 EIP

arm칩에서 reset은 0번지

reset_handler 호출= cpu를 깨우고 reg를 정렬한다.

   그제서야 main()호출

_low level_init

   ->low_level_init(위의 init과는 다름.)

-> void lowlevel_init(void)(lowlevel.c)


branch =b, ldr과 만찬가지로 점프하는 역할


vector talble = 점프하는 위치를 저장해 놓은 영역

사용자가 주소를 잘못 사용시 이곳으로가서 pc가 

vector table에가서 수행한다. 예)undefines =에러 메시지


ELF32(링커)

파일의 포맷, 파일의 저장형태

실행되기전 실행을 하기위해 준비하는 단계

ENTRY point = 진입점

(제일 처음 수행된다.)

code영역 = text