64 lines
2.3 KiB
INI
64 lines
2.3 KiB
INI
/* 使用说明
|
||
1,使用xip_flash.sct作为链接文件;
|
||
2,工程选项的Debug标签页中,初始化文件(Initialization File)选择:debug_xip_flash.ini
|
||
3,【重要】Utilities标签页中,取消选择:Update Target before Debugging
|
||
*/
|
||
|
||
|
||
/*----------------------------------------------------------------------------
|
||
* Name: debug_xip_flash.ini
|
||
* Purpose: XIP Debug Initialization File
|
||
*----------------------------------------------------------------------------*/
|
||
|
||
/*----------------------------------------------------------------------------
|
||
Setup() configure PC & SP for RAM Debug
|
||
*----------------------------------------------------------------------------*/
|
||
FUNC void Setup (void) {
|
||
_WDWORD(0xE0050020, 0xffffffff);
|
||
_WDWORD(0xE0050024, 0xffffffff);
|
||
_WDWORD(0xE0050028, 0xffffffff);
|
||
_WDWORD(0xE005002c, 0xffffffff);
|
||
_WDWORD(0xE0050030, 0xffffffff);
|
||
_WDWORD(0xE0050034, 0xffffffff);
|
||
_WDWORD(0xE0050038, 0xffffffff);
|
||
_WDWORD(0xE005003c, 0xffffffff);
|
||
_WDWORD(0xE0050040, 0xffffffff);
|
||
_WDWORD(0xE0050044, 0xffffffff);
|
||
SP = _RDWORD(0x08002000); // Setup Stack Pointer
|
||
PC = _RDWORD(0x08002004); // Setup Program Counter
|
||
_WDWORD(0xE000ED08, 0x08002000); // Setup Vector Table Offset Register
|
||
|
||
// Enable Cache
|
||
if ((_RDWORD(0xE00B0004) & 0x03) == 0x00) {
|
||
_WDWORD(0xE00B0000, 0x00000038);
|
||
_WDWORD(0xE00B0000, 0x0000003C);
|
||
_WDWORD(0x20000000, 0x12345678);
|
||
_WDWORD(0x20000004, 0x12345678);
|
||
_WDWORD(0x20000008, 0x12345678);
|
||
_WDWORD(0x2000000c, 0x12345678);
|
||
_WDWORD(0x20000010, 0x12345678);
|
||
_WDWORD(0x20000014, 0x12345678);
|
||
_WDWORD(0x20000018, 0x12345678);
|
||
_WDWORD(0x2000001c, 0x12345678);
|
||
_WDWORD(0xE00B0000, 0x0000003E);
|
||
_WDWORD(0x20000000, _RDWORD(0x20000000));
|
||
_WDWORD(0x20000000, _RDWORD(0x20000000));
|
||
_WDWORD(0x20000000, _RDWORD(0x20000000));
|
||
_WDWORD(0x20000000, _RDWORD(0x20000000));
|
||
_WDWORD(0x20000000, _RDWORD(0x20000000));
|
||
_WDWORD(0x20000000, _RDWORD(0x20000000));
|
||
_WDWORD(0x20000000, _RDWORD(0x20000000));
|
||
_WDWORD(0x20000000, _RDWORD(0x20000000));
|
||
_WDWORD(0xE00B0000, 0x0000003D);
|
||
}
|
||
}
|
||
|
||
FUNC void OnResetExec (void) { // executes upon software RESET
|
||
Setup(); // Setup for Running
|
||
}
|
||
|
||
load %L incremental
|
||
|
||
Setup(); // Setup for Running
|
||
|
||
//g, main |