新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > STM32F103VC在RAM中調(diào)試方法

STM32F103VC在RAM中調(diào)試方法

作者: 時(shí)間:2016-11-28 來(lái)源:網(wǎng)絡(luò) 收藏
最近開(kāi)始學(xué)習(xí)STM32,芯片STMF103VCT6 編譯工具 keil 4.14(評(píng)估板)。起初是改寫(xiě)買板子送的例程,下載程序到FLASH,看看現(xiàn)象。雖說(shuō)FLASH可以下載萬(wàn)次,但看到人家說(shuō)這樣容易損傷FLASH。datasheet中說(shuō)到STM32有三種啟動(dòng)方式,可以在芯片上的SRAM中調(diào)試程序。但搞來(lái)搞去始終不能明白。

今天我終于搞成了,我以GPIO跑馬燈的程序來(lái)測(cè)試的。首先把程序下載到FLASH,然后改變啟動(dòng)方式。把原來(lái)的GPIO跑馬燈程序少做修改,在SRAM中調(diào)試。最后又把啟動(dòng)方式改回到從FLASH啟動(dòng),看到板子上的現(xiàn)象和原來(lái)下載到FLASH的一樣。說(shuō)明我在SRAM中調(diào)試成功了。

本文引用地址:http://m.butianyuan.cn/article/201611/322722.htm

下面來(lái)說(shuō)說(shuō)我是怎么配置的,當(dāng)然這其中也參考了網(wǎng)上搜集的很多內(nèi)容,在這感謝互聯(lián)網(wǎng)。

STMF103VCT6有內(nèi)部48K 的SRAM。SRAM的起始地址為0x20000000 到 0x2000c000 。在keil工程選項(xiàng)中設(shè)置如下圖:

在上面這個(gè)圖片中注意 IROM1 和 IRAM1 后面的地址就按圖中的填寫(xiě)就行,這里我把SRAM均分兩份,一份為虛擬FLASH,一份為SRAM。同時(shí)別忘了,前面的復(fù)選框打勾。

對(duì)于輸出的list 和obj 文件放在哪里,相信很多人都會(huì),在就不浪費(fèi)大家的時(shí)間了。接著在debug中做如下設(shè)置如圖。

仿真器就選擇你自己的就行了,下面有兩個(gè)復(fù)選框一定要選上,Load Application at Startup 和 Run to main()。另外下面還要添加一個(gè)文件RAM.ini 在這我給出源碼:

SP = _RDWORD(0x20000000);// Setup Stack Pointer
PC = _RDWORD(0x20000004);// Setup Program Counter
_WDWORD(0xE000ED08, 0x20000000);// Setup Vector Table Offset Register

把這個(gè)文件添加到你工程的根目錄下,以方便查找。

接著在Utilities中Setting選項(xiàng)中選擇你的芯片,并更改RAM 和 FLASH 的地址。

再者就是編寫(xiě)你的主程序,編譯 調(diào)試了。但是記住一點(diǎn),一定不要點(diǎn)FLASH下的Download 。

最后別忘了,改變啟動(dòng)方式。

到此為止,設(shè)置已經(jīng)完成。

把程序的CODE 區(qū)定義到0x20000000 為起始,大小為 0xa000,也就是40K 了,然后RAM 區(qū)則定義到0x2000a000為起始,大小為0x2000,即8K

STM32f103VC的RAM起始地址為0x20000000,48k,flash的起始地址為0x4002 2000,256k



關(guān)鍵詞: STM32F103VCRAM調(diào)試方

評(píng)論


技術(shù)專區(qū)

關(guān)閉