|
向MCU高手請教:
原匯編程序
;/*匯編語言部分程序設計*/
REG_EXT0CON EQU 0xFFF01018
EBI_EXT0_VALUE EQU 0xF0078003
AREA Vect, CODE, READONLY
ENTRY ;定義匯編程序的入口點
;異常向量表
B Reset_Handler
B Undefined_Handler
B SWI_Handler
B Prefetch_Handler
B Abort_Handler
B .
B IRQ_Handler
B FIQ_Handler
Undefined_Handler
B .
SWI_Handler
B .
Prefetch_Handler
B .
Abort_Handler
B .
IRQ_Handler
B .
FIQ_Handler
B .
Reset_Handler
LDR R1,=REG_EXT0CON
LDR R0,=EBI_EXT0_VALUE ;外部IO空間初始化
STR R0,[R1]
LDR SP, =8100 ;堆棧地址
IMPORT __main
B __main ; 跳轉到main()函數處的C語言主程序
END
反匯編的一部分
00000000 [0xea00000c] b Reset_Handler
00000004 [0xea000005] b Undefined_Handler
00000008 [0xea000005] b SWI_Handler
0000000c [0xea000005] b Prefetch_Handler
00000010 [0xea000005] b Abort_Handler
00000014 [0xeafffffe] b 0x14
00000018 [0xea000004] b IRQ_Handler
0000001c [0xea000004] b FIQ_Handler
Undefined_Handler [0xeafffffe] b Undefined_Handler
SWI_Handler [0xeafffffe] b SWI_Handler
Prefetch_Handler [0xeafffffe] b Prefetch_Handler
Abort_Handler [0xeafffffe] b Abort_Handler
IRQ_Handler [0xeafffffe] b IRQ_Handler
FIQ_Handler [0xeafffffe] b FIQ_Handler
Reset_Handler [0xe59f100c] ldr r1,0x0000004c ; = #0xfff01018
0000003c [0xe59f000c] ldr r0,0x00000050 ; = #0xf0078003
00000040 [0xe5810000] str r0,[r1,#0]
00000044 [0xe59fd008] ldr r13,0x00000054 ; = #0x00001fa4
00000048 [0xea000002] b __main
0000004c [0xfff01018] dcd 0xfff01018 ....
00000050 [0xf0078003] dcd 0xf0078003 ....
00000054 [0x00001fa4] dcd 0x00001fa4 ....
__main [0xe28f8090] add r8,pc,#0x90 ; #0xf0
0000005c [0xe898000f] ldmia r8,{r0-r3}
00000060 [0xe0800008] add r0,r0,r8
00000064 [0xe0811008] add r1,r1,r8
00000068 [0xe0822008] add r2,r2,r8
初學arm,現在的情況是:軟件調試,程序正常進入C語言main函數,但是用H-JTAG調試,第一句00000000 [0xea00000c] b Reset_Handler就進入不了Reset_Handler [0xe59f100c] ldr r1,0x0000004c ; = #0xfff01018,不知道怎么回事,向高手請教,這是什么原因,JTAG調試另外一個簡單程序是可行的!
|
-
-
TEST2_C.rar
2019-8-15 18:08 上傳
點擊文件名下載附件
24.4 KB, 下載次數: 3
|