memory missmatch;address:0x00000000;value=0xff
问题类别:ARM软件工具 > Keil MDK | 浏览次数:7598 |
发布日期:2012/4/23 15:05:26 | 文章来源:新蒲京娱乐场官网8555cc最新网站 |
回复日期:2020/12/20 10:20:50 |
环境说明
MDK 3.05 及以上,LPC229x系列开发板分析描述
在调试工程的时候出现 memory missmatch ; address:0x00000000; value=0xff 无法调试。问题解答
相似的工程已经提供在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