임베디드/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