|
楼主 |
发表于 2007-12-21 21:50:27
|
显示全部楼层
以上的程序是在ram中运行的!把ARM Linker中的RO地址改为0X0、RW改为0XC000000后在编译,然后用H-JTAG下载即可在FLASH中运行.
有一点需要说明的是:由于以上的代码是在SDRAM中运行的,发生中断时,PC会跳到NOR FLASH中去,所以在NOR FLASH中相应的中断入口地址处烧写地址跳转指令。相应的代码如下:
ADDR_RESETHANDLER EQU 0XC000000
ADDR_HANDLERUNDEF EQU 0XC000004
ADDR_HANDLERSWI EQU 0XC000008
ADDR_HANDLERPABORT EQU 0XC00000C
ADDR_HANDLERDABORT EQU 0XC000010
ADDR_HANDLERIRQ EQU 0XC000018
ADDR_HANDLERFIQ EQU 0XC00001c
AREA Vector,CODE,READONLY
ENTRY
LDR PC,=ADDR_RESETHANDLER
LDR PC,=ADDR_HANDLERUNDEF
LDR PC,=ADDR_HANDLERSWI
LDR PC,=ADDR_HANDLERPABORT
LDR PC,=ADDR_HANDLERDABORT
B .
LDR PC,=ADDR_HANDLERIRQ
LDR PC,=ADDR_HANDLERFIQ
END
先把以上代码编译后烧到NOR FLASH 中起始地址为0X000处,之后调试代码时就可以不用把代码烧到FLASH中,直接下载到SDRAM就可以仿真你的带有中断的程序 |
|