新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > STM32F103VC在RAM中調試方法

        STM32F103VC在RAM中調試方法

        作者: 時間:2016-11-28 來源:網絡 收藏
        最近開始學習STM32,芯片STMF103VCT6 編譯工具 keil 4.14(評估板)。起初是改寫買板子送的例程,下載程序到FLASH,看看現象。雖說FLASH可以下載萬次,但看到人家說這樣容易損傷FLASH。datasheet中說到STM32有三種啟動方式,可以在芯片上的SRAM中調試程序。但搞來搞去始終不能明白。

        今天我終于搞成了,我以GPIO跑馬燈的程序來測試的。首先把程序下載到FLASH,然后改變啟動方式。把原來的GPIO跑馬燈程序少做修改,在SRAM中調試。最后又把啟動方式改回到從FLASH啟動,看到板子上的現象和原來下載到FLASH的一樣。說明我在SRAM中調試成功了。

        本文引用地址:http://www.104case.com/article/201611/322722.htm

        下面來說說我是怎么配置的,當然這其中也參考了網上搜集的很多內容,在這感謝互聯網。

        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,即8K

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



        評論


        技術專區

        關閉
        主站蜘蛛池模板: 云林县| 阿坝县| 白朗县| 依兰县| 闸北区| 乡宁县| 龙门县| 屏东县| 沭阳县| 沈丘县| 阳山县| 金川县| 滦南县| 巨鹿县| 马边| 荆门市| 柳江县| 莱阳市| 洛阳市| 宣恩县| 金坛市| 澄迈县| 高青县| 阿拉善左旗| 建瓯市| 霍林郭勒市| 历史| 富平县| 慈利县| 霸州市| 黄陵县| 祁阳县| 东港市| 南丹县| 彭水| 宁德市| 云南省| 隆化县| 随州市| 岑巩县| 广安市|