1.確定自己芯片的RAM起始地址和大小,例如我用的神舟王STM32F1底板
CPU為STMF103ZET 包含 64K RAM:0x2000 0000----0x2000 FFFF。
2.重新划分RAM
我將64K RAM分成兩部分 48K(0xC000)用來當做Flash,16K(0x4000)當做RAM
3.Debug設置
4.CpuRAM.ini文件內容
------------------------------------------------------------------------------------
FUNC void Setup (void) {
SP = _RDWORD(0x20000000); // 設置堆棧指針
PC = _RDWORD(0x20000004); // 設置PC指針
_WDWORD(0xE000ED08, 0x20000000); // 設置中斷向量表地址
}
LOAD obj\My_STM32F1.axf INCREMENTAL // 裝在代碼到CPU內部RAM (工程選擇就不要選 Load Application ar Startup)
Setup(); // 再調用Setup函數修改堆棧指針和PC指針 因為SP的值要從目標代碼中讀取
g, main // 運行到main函數
------------------------------------------------------------------------------------------------
4.下載部分設置
點擊Seting,刪除里面的器件編程算法
至此設計就完成了,點擊debug按鍵就可以在RAM中調試了。
5.如果要在RAM中調試中斷還要如下定義 VECT_TAB_SRAM
6.在main的最開始加一句:NVIC_SetVectorTable(NVIC_VectTab_RAM, 0x0);
7.最后記得把硬件啟動模式也改了 在CPU中調試就OK了!!!
