2008年8月7日 星期四

ARM BootLoader 基本流程

參考程式碼
ResetEntry
b SYS_RST_HANDLER
b UDF_INS_HANDLER
b SWI_SVC_HANDLER
b INS_ABT_HANDLER
b DAT_ABT_HANDLER
b .
b IRQ_SVC_HANDLER
b FIQ_SVC_HANDLER
SWI_SVC_HANDLER
stmfd sp!, {r0-r12, lr}
ldr r0,[lr,#-4]
ldr r1, =SWI_SVC_VECTOR
mov lr, pc
ldr pc, [r1]
ldmfd sp!, {r0-r12, pc}^
MAP _ISR_STARTADDRESS ;0xcffff00
SYS_RST_VECTOR # 4
UDF_INS_VECTOR # 4
SWI_SVC_VECTOR # 4
IMPORT SWI_SERVICE
ldr r0, =SWI_SVC_VECTOR
ldr r1, =SWI_SERVICE
str r1, [r0]


void SWI_SERVICE(int type)
{
switch(type)
case 0:
case 1:
}

main()
{
__asm{ SWI 0x1 }
}

來源:http://cuijinbird.blogchina.com/cuijinbird/1733878.html

沒有留言:

一個小故事讓我們明白資金流通的意義

“又是炎熱小鎮慵懶的一天。太陽高掛,街道無人,每個人都債台高築,靠信用度日。這時,從外地來了一位有錢的旅客,他進了一家旅館,拿出一張1000 元鈔票放在櫃檯,說想先看看房間,挑一間合適的過夜,就在此人上樓的時候---- 店主抓了這張1000 元鈔,跑到隔壁屠戶那裡支付了他欠的肉錢...