STM32F103VC在RAM中調試方法

最近開始學習STM32,芯片STMF103VCT6 編譯工具 keil 4.14(評估板)。起初是改寫買板子送的例程,下載程序到FLASH,看看現象。雖說FLASH可以下載萬次,但看到人家說這樣容易損傷FLASH。datasheet中說到STM32有三種啓動方式,可以在芯片上的SRAM中調試程序。但搞來搞去始終不能明白。 今天我終於搞成了,我以GPIO跑馬燈的程序來測試的。首先把程序下載到FLASH,然後改變啓動方式。把原來的GPIO跑馬燈程序少做修改,在SRAM中調試。最後又把啓動方式改回到從FLASH啓動,看到板子上的現象和原來下載到FLASH的一樣。說明我在SRAM中調試成功了。 下面來說說我是怎麼配置的,當然這其中也參考了網上搜集的很多內容,在這感謝互聯網。 STMF103VCT6有內部48K 的SRAM。SRAM的起始地址爲0x20000000 到 0x2000c000 。在keil工程選項中設置如下圖: 在上面這個圖片中注意 IROM1 和 IRAM1 後面的地址就按圖中的填寫就行,這裏我把SRAM均分兩份,一份爲虛擬FLASH,一份爲SRAM。同時別忘了,前面的複選框打勾。 對於輸出的list 和obj 文件放在哪裏,相信很多人都會,在就不浪費大家的時間了。接着在debug中做如下設置如圖。 仿真器就選擇你自己的就行了,下面有兩個複選框一定要選上,Load Application at Startup 和 Run to main()。另外下面還要添加一個文件RAM.ini 在這我給出源碼: SP = _RDWORD(0x20000000); // Setup Stack Pointer PC = _RDWORD(0x20000004); // Setup Program Counter _WDWORD(0xE000ED08, 0x20000000); // Setup Vector Table Offset Register把這個文件添加到你工程的根目錄下,以方便查找。 接着在Utilities中Setting選項中選擇你的芯片,並更改RAM 和 FLASH 的地址。 再者就是編寫你的主程序,編譯 調試了。但是記住一點,一定不要點FLASH下的Download 。 最後別忘了,改變啓動方式。 到此爲止,設置已經完成。把程序的CODE 區定義到0x20000000 爲起始,大小爲 0xa000,也就是40K 了,然後RAM 區則定義到0x2000a000爲起始,大小爲0x2000,即8KSTM32f103VC的RAM起始地址爲0x20000000,48k,flash的起始地址爲0x4002 2000,256k
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章