【1】STM32 Debug in RAM 在RAM中調試STM32 !!!


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了!!!

 

 

 

 

 

 

 

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM