相似的工程已经提供在c:\keil\arm\boards\phytec\lpc229x\hello工程下。
需要定义两种不同的targets:一种用于flash programming;一种用于debugging in ram。
在ram下调试需要:
1.将片选cs0和ram连接;
2.在startup.s文件中的memmap设置做如下修改:
$set (ram_intvec) ; enable code below
$if (ram_intvec)
ldr r0, =memmap
mov r1, #3 ; redirect interrupt vectors to off-chip memory
str r1, [r0]
$endif
3.在工程中的project--->options for target...--->:
做如下设置:
target: 关闭use on-chip rom;设置好external memory 的地址空间
选择相应的rom地址和大小
asm - set: external_mode:
debug - use ulink arm debugger - disable load application at startup:
debug - use ulink arm debugger - initialization file参照
..\arm\boards\phytec\lpc229x\hello\flash.ini 创建一个xram.ini
设置需要的pc指针等。
例如:
//*** <<< use configuration wizard in context menu >>> ***
func void setup (void) {
//
//
//
//
//
//
//
//
//
// <2=> 32-bit <3=> reserved
//
_wdword(0xffe00000, 0x20003ce3); // bcfg0: flash bus configuration
_wdword(0xe002c014, 0x0e6001e4); // pinsel2: cs0, oe, we, bls0..3
// d0..31, a2..23, jtag
//
}
setup(); // setup for flash
load myapp incremental
pc = 0x80000000