新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > ulink-Jlink下在ram和flash中調(diào)試STM32的方法

        ulink-Jlink下在ram和flash中調(diào)試STM32的方法

        作者: 時間:2012-09-11 來源:網(wǎng)絡 收藏

        Keil MDK3.20 在ULINK下stm32

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

        1. 程序在RAM中運行

        要點:(1)程序的下載地址改到RAM空間中

        (2)程序的debug之前要設定SP,PC指針到Ram空間

        新建工程,選擇 的具體型號,我買的萬利的開發(fā)板,選擇stm32f103Vb。

        ?

        設定程序下載地址,如下圖所示,IROM1的地址指向了空間。

        ?

        空間大小如何分配取決于自己的需求。本款處理器內(nèi)部大小為20K,分配16K給只讀區(qū),4K給可讀可寫區(qū)。這樣IROM設定的大小為0x4000,IRAM1的起始就變?yōu)?X20004000,大小只剩下0X1000。

        Debug標簽選擇ULINK1 Cortex Debugger(軟件采用yjgyiysbcc兄crack)。不選Load Application at Start,在Initialization中加入啟動腳本RAM.ini。

        ?

        RAM.ini中具體內(nèi)容如下:

        FUNC void Setup (void) {

        SP = _RDWORD(0x20000000); // Setup Stack Pointer

        PC = _RDWORD(0x20000004); // Setup Prog Counter

        _WDWORD(0xE000ED08, 0x20000000); // Setup Vector Table Offset Register

        }

        LOAD XXX.axf INCREMENTAL // Download,紅色代表工程文件名.axf

        Setup(); // Setup for Running

        g, main

        Utilities下Update Target before Debugging不選

        這樣添加后就可以在RAM中了。

        >>>>>>我們需要在代碼中設置正確的中斷向量表位置。中斷向量表通常被放置在用戶程序的開始,所以中運行時,向量表位于0x08000000處,而當代碼被放置在SRAM中運行時,他的位置就成了0x20000000。在初始化NVIC時,我們可以放置如下代碼,定義向量表的位置

        NVIC_SetVectorTable(0x20000000 , 0x0);

        NVIC_SetVectorTable(0x08000000 , 0x0);

        ?

        >>>>>工程選項中Debug項,Download選項卡中,去掉所有鉤子,不下載代碼到,這樣就可以在RAM中程序了!

        2. Flash中調(diào)試

        新建工程后系統(tǒng)默認設定好IROM1為FLASH的地址和空間大小。只需要兩步:

        1) 設定調(diào)試工具為ULINK1 CORTEX DEBUGGER,如下圖所示,不需要設定起始腳本。

        ?

        2) 在Utility中設定選擇ULINK1 cortex debugger,并設定編程算法。如下圖所示。

        ?

        ?

        之后就可以FLASH調(diào)試了。

        硬件:萬利的 EK-F開發(fā)板,硬件去掉RS3,RS4 排阻,斷開開發(fā)板本身的仿真器。

        軟件:KEIL MDK3.20+ULINK驅(qū)動替換文件。

        仿真器:ULINK



        評論


        相關推薦

        技術專區(qū)

        關閉
        主站蜘蛛池模板: 古浪县| 佛学| 亳州市| 来宾市| 都安| 武威市| 绍兴县| 会理县| 乌拉特中旗| 华容县| 班戈县| 门头沟区| 松溪县| 钟山县| 曲水县| 军事| 高平市| 互助| 静宁县| 高陵县| 合川市| 都江堰市| 成都市| 桂平市| 凤台县| 娱乐| 平武县| 常德市| 房山区| 扶绥县| 阿拉善右旗| 怀宁县| 滦南县| 汝州市| 沙雅县| 金湖县| 安阳县| 桑日县| 灵武市| 慈溪市| 嵊泗县|