Start up code
GET 2440addr.inc ; 2410addr.inc 파일에는 S3C2410의 레지스터 주소가 정의되어있는데,
; PSR(Program Status Register)에 사용될 상수 값 정의
USERMODE EQU 0x10 ; User 모드 값
FIQMODE EQU 0x11 ; FIQ 모드 값
IRQMODE EQU 0x12 ; IRQ 모드 값
SVCMODE EQU 0x13 ; Supervisor 모드 값
ABORTMODE EQU 0x17 ; Abort 모드 값
UNDEFMODE EQU 0x1b ; Undefined 모드 값
MODEMASK EQU 0x1f ; 모든 마스크 값
NOINT EQU 0xc0 ; IRQ, FIQ disable
_STACK_BASEADDRESS EQU 0x33ff8000 ; Stack base address
; 모드별 Stack base address
; 모드별 스텍 베이스 주소를 Descendign Stack 방식으로 사용한다.
; 스택 주소의 증가 방향이 어드래스가 감소하는 방향으로 된다.
UserStack EQU (_STACK_BASEADDRESS-0x3800) ;0x33ff4800 ~
SVCStack EQU (_STACK_BASEADDRESS-0x2800) ;0x33ff5800 ~
UndefStack EQU (_STACK_BASEADDRESS-0x2400) ;0x33ff5c00 ~
AbortStack EQU (_STACK_BASEADDRESS-0x2000) ;0x33ff6000 ~
IRQStack EQU (_STACK_BASEADDRESS-0x1000) ;0x33ff7000 ~
FIQStack EQU (_STACK_BASEADDRESS-0x0) ;0x33ff8000 ~
; IMPORT는 외부로 링크된 함수와 변수를 참조하기 위해 사용하는 명령어.
; RO(Read Only) =상수로 선언된 변수들의 영역, ROM에 존재
; RW(Read Write) = 초기값을 가지는 변수들의 영역, RAM에 존재
; ZI(Zero initialize) = 초기화 하지 않은 변수들의 영역
IMPORT |Image$$RO$$Base|
IMPORT |Image$$RO$$Limit| ; End of ROM code
IMPORT |Image$$RW$$Base| ; Base of RAM to initialize
IMPORT |Image$$RW$$Limit|
IMPORT |Image$$ZI$$Base| ; Base and limit of area
IMPORT |Image$$ZI$$Limit| ; to zero initialize
; AREA = 새로운 데이터 영역이나 코드 영역을 어셈블하게 한다.
; AREA 이름 init, code 영역, 읽기 전용
AREA Init.CODE,READONLY
;ENTRY = 다음 줄에 첫 실행코드가 있음을 알려준다.
ENTRY
b ResetHandler
b.
b.
b.
b.
nop
b A_IRQHandler
b A_FIQHandler
'유용한정보' 카테고리의 다른 글
[오류] 워크3 배틀넷 접속시 하드디스크 용량 부족 (2) | 2011.07.02 |
---|---|
S9 가사 보는 방법 (3) | 2011.01.31 |
향수이름 뒤에 붙어 있는 이름은? (2) | 2010.08.16 |
유튜브 무한 로딩 안녕~ (3) | 2010.06.22 |
부정적분 해주는 사이트 (1) | 2010.05.01 |