娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

歷史上的今天

今天是:2025年05月28日(星期三)

2021年05月28日 | 關于MDK軟件不能模擬仿真STM32的問題解決方法

發布者:萬童潔 來源: eefocus關鍵字:MDK軟件  模擬仿真  STM32 手機看文章 掃描二維碼
隨時隨地手機看文章

MDK軟件在模擬仿真時,不能很好地支持各種STM32系列芯片,目前對STM32F103系列芯片支持模擬仿真,但對于其他系列芯片不支持或只是部分支持。主要存在的問題是:PC和SP不能自動裝載,存儲器不能訪問,中斷服務程序不能執行或觸發,外設寄存器不能修改或觀察。要解決上述問題,必須通過相應的設置和相關的操作,才能完成模擬仿真。


1 模擬仿真的實現及PC和SP的自動裝載

在MDK軟件中,只有部分STM32芯片支持模擬仿真(如STM32F103),大部分芯片都不支持模擬仿真。主要的問題是,當進入調試界面后,R15 (PC)的值為0x00000000,不能進行調試操作(如單步、全速等)。要能對STM32進行模擬仿真,必須使PC的值不能為0。通過分析STM32芯片的存儲器結構可知,在存儲器地址0x00000000處保存的是堆棧指針SP的值,程序加載時自動把該值送給SP,在存儲器地址0x00000004處保存的是程序指針PC的值,程序加載時自動把該值送給PC,程序從該PC值取指令執行程序,而不是從地址0x00000000處執行程序。而STM32芯片的Flash程序存儲器地址是從0x08000000處開始的,當進入模擬仿真時,MDK軟件不能把Flash的地址送給PC和SP。可通過以下操作步驟完成PC和SP的自動裝載。


①打開MDK自帶的工程文件,如C:\Keil\ARM\Boards\ST\STM3240GEVAL\Blinky\Blinky.uvproj。

②單擊“編譯”工具欄上面的下拉菜單,選擇“STM32F407 Flash”。

③單擊,打開“Options”對話框,切換到“Output”選項卡,勾選“Debug Information”和“Browse Information”,用以產生調試信息。再切換到“Debug”選項卡,單擊“Use Simulator”,選擇模擬仿真,確保勾選“Load Application at Startup”,其他為默認設置。

④單擊,編譯程序,并保證編譯成功。

⑤單擊,開始調試,進入調試界面后,觀察“Registers”寄存器選項卡中的R15 (PC)的值,如果值為0,則說明不能進行模擬仿真,“單步”調試等無效,須進行步驟⑥的操作,否則可不進行步驟⑥的操作。

⑥停止調試,再次單擊,打開“Options”對話框,切換到“Target”選項卡,將IROM1的值[0x08000000,0x100000]修改為[0x0,0x100000],以使Flash的起始地址從0x0開始。單擊重新編譯程序,再次單擊,開始調試,PC的值將不再為0,即可進入模擬仿真,“單步”調試等有效。


2 存儲器的訪問

當進入模擬仿真界面后,按“全速”F5或“單步”F10調試鍵后,在“command”窗口中將會出現類似如下的錯誤提示:“***error 65: access violation at 0x40023800 : no ′read′ permission”,意思是在地址0x40023800處訪問違例,沒有“讀”的權限。地址0x40023800是外設寄存器地址。要使外設寄存器地址具有相應的“讀”、“寫”、“執行”權限,可在命令窗口中輸入MAP命令(不區分大小寫)。命令格式為:

MAP 起始地址,結束地址 READ WRITE EXEC其中,READ表示“讀”權限,WRITE表示“寫”權限,EXEC表示“執行”權限,結束地址與起始地址的空間尺寸不超過128 MB,即不超過0x08000000字節。外設寄存器的存儲空間分布較廣,不可能在每次調試時都通過命令窗口輸入MAP指令,可通過如下的操作步驟進行。


①新建一個文本文件,打開該文件,執行文件菜單命令“另存為”,在打開的“另存為”對話框中,文件名輸入為initmap.ini,保存類型選擇為“所有文件”,并保存。在文件中輸入如下內容并保存:

map 0x40000000,0x47ffffff readwrite

map 0x50000000,0x57ffffff readwrite

map 0xa0000000,0xa7ffffff readwrite

map 0xf0000000,0xf7f00000 readwrite

根據需要,可在該文件中輸入包含所有外設寄存器的MAP命令,使所有外設寄存器都具有“讀”、“寫”權限。但注意映射空間不要超過0x08000000,否則調試時會提示錯誤:“***error 129: MapMemmap size truncated to 128MB”。


②單擊,打開“Options”對話框,切換到“Debug”,在“Initialization File”的右邊單擊,打開“選擇仿真初始化文件”對話框,選擇上一步保存的initmap.ini文件。單擊“Edit”按扭,可打開文件再次修改。


3 中斷服務程序的執行與觸發

當解決以上的兩個問題后,可以進行模擬仿真調試。但這時中斷服務程序不能執行,如系統定時中斷程序;或者不能觸發中斷,如不能自動觸發SPI中斷程序等。由于已經把Flash存儲器的起始地址調到了0x00000000處,所以也需要把中斷向量偏移量地址設為0x00000000,即把SCB-﹥VTOR設為0。可通過如下方法解決。


①對于通過訪問SCB-﹥VTOR寄存器來修改中斷向量的,可通過“Edit”菜單命令中的“Find in Files”命令查找SCB-﹥VTOR,查找并修改宏定義FLASH_BASE的值為0X00000000。

②如果不能通過以上的方法修改SCB-﹥VTOR,可以在進入仿真界面后,執行中斷程序前,選擇“Peripherals”→“Core Peripherals”→“Nested Vectored Interrupt Controller”命令,打開中斷向量對話框,修改VTO的值為0x00000000。當然也可以通過如下的方法完成對外設寄存器SCB-﹥VTOR的修改,使它的值為0x00000000:當進入仿真后,在主函數main()前設置一個斷點,全速運行程序,程序在斷點處暫停執行,通過下節介紹的方法把外設寄存器SCB-﹥VTOR添加到觀察窗口1,修改SCB-﹥VTOR外設寄存器的值,使它的值為0x00000000即可。

③對于SysTick定時器,可以自動觸發中斷,并執行中斷程序,但對于其他的中斷則不能自動觸發中斷。可按如下方法操作:在中斷程序中設一個斷點,并“全速”運行程序,通過選擇“Peripherals”→“Core Peripherals”→“Nested Vectored Interrupt Controller”命令,打開中斷向量對話框,單擊選擇相應的中斷,然后勾選Pending復選框,此時會自動執行相應的中斷服務程序,并在斷點處暫停執行程序。


4 外設寄存器的修改

在模擬仿真時,一般要對外設寄存器進行修改,有些外設寄存器可直接修改,有些外設寄存器不能直接修改,如只讀位不能直接修改。要實現對外設寄存器的修改,可通過如下的方法進行操作。


①對于要修改的寄存器,可通過鼠標選擇外設寄存器,如選擇RCC-﹥CR,然后再鼠標右鍵,彈出右鍵菜單,執行“Add‘RCC-﹥CR ’to…”→“Watch 1”菜單命令,把RCC-﹥CR外設寄存器添加到觀察窗口1中,如下所示。

此時可在編輯框中修改該外設寄存器的值。當然也可在觀察窗口中,直接輸入外設寄存器的名稱“RCC-﹥CR”,但此種方法對某些芯片會失效。

②用以上方法也不能完成外設寄存器的修改時,可通過如下方法完成修改。停止仿真,單擊,打開“Options”對話框,切換到“Target”選項卡,確保特殊功能寄存器(sfr)文件已被添加。然后單擊的下拉箭頭,選擇并添加所要觀察的外設,如RCC等,可添加觀察多個外設。單擊添加的外設寄存器,可在下方顯示該外設寄存器的存儲器地址,如RCC-﹥CR外設寄存器的地址為0x40023800。最后再選擇“ View”→“Memory Windows”→“Memory 1”打開存儲器觀察窗口,在地址欄中輸入地址“0x40023800”,按回車鍵確認輸入,在數據區雙擊數據可直接修改。STM32的存儲器采用小端模式,即低地址存放數據的低位,高地址存放數據的高位。在存儲器窗口中,可通過右鍵修改顯示方式。


結語

目前最新的MDK版本也未能解決在模擬仿真時出現的上述問題,通過本文介紹的方法則可以解決,這對于學習STM32,以及使用MDK軟件都有一定的幫助。以上介紹的方法是一個全面的描述,不是所有的芯片都需要通過以上步驟來完成,有的只需要部分操作即可完成。

關鍵字:MDK軟件  模擬仿真  STM32 引用地址:關于MDK軟件不能模擬仿真STM32的問題解決方法

上一篇:關于STM32的D M A問題集錦
下一篇:STM32單片機的通用定時器

推薦閱讀

與其他傳統手機廠商不通,小米最大優勢圍墻就是過去幾年建立起了強大的投資生態鏈企業。這企業在小米的引領下,做出了統一化的設計和用戶體驗。此前,小米就通過入股黑鯊的方式,用自己的影響力幫助黑鯊推出首款游戲手機,這款手機全面接入小米系統與應用,有人說其實就是小米游戲手機的馬甲。日前,小米核心生態鏈企業紫米科技又涉足到功能手機市場。此前...
2011年,富士康提出了“百萬機器人計劃”。而今8年過去,現狀如何?根據其發布的2018年年報顯示:目前,富士康及其下屬企業共擁有超過8萬臺機器人,超過1600條SMT生產線,超過17萬臺的模具加工設備,超過5000種測試設備,第三方開發者3000多位,1000個以上的APP。而這其中,自然少不了物流搬運AGV的身影。熄燈工廠的逐步推進富士康對于無人化熄燈工廠的推...
5月28日,DxOMark官微發布預告,宣布今天將推出DXOMARK最佳榜單!  從預告視頻來看,DXOMARK最佳榜單將包含后置攝像頭、前置攝像頭和音頻最佳榜單,考慮到618即將來臨,該榜單應該有“帶貨清單”的性質,看重手機拍照和音頻的讀者可以靜待發布用作參考。  目前尚不清楚這個最佳榜單和DxOMark官網排行榜有什么區別,不過推薦機型應該都差不多...
簡介:1,學會在定時器和看門狗模式下操作 WDT,了解 WDT 寄存器的配置2,編程實現WDT 定時功能,WDT 時鐘源來自 ACLK,且 ACLK 無失效來自 XT1晶體3,實現功能:250ms 定時,每 250ms LED1 亮滅交替閃爍1,看門狗介紹看門狗定時器是一個32位的定時器它可以作為看門狗或定時器使用所有F5XX系列的器件中都有增強型看門狗定時器—WDT_A。什么是...

史海拾趣

問答坊 | AI 解惑

四運營商皆獲3G號段 網通電信首涉移動業務

4月27日,本報獨家獲悉,中國電信和中國網通已經分別獲得188號段和189號段,用于目前正在進行的TD-SCDMA規模測試。而據記者了解,中國移動、中國電信和網通已經發放了近1萬部TD-SCDMA終端,TD規模試驗網進入實際應用測試階段。    & ...…

查看全部問答∨

硬盤MP3播放器

做這個MP3有以下幾個原因:一是喜歡音樂,二是有很多現成的MP3歌曲,第三就是想在自己的房間中聽到自己做的MP3放出來的聲音. 開始這個MP3工程時就定下了一個原則,那就是必須用單面板,這樣才能自己做PCB,經過兩個月的努力,這個工程就完成得差不多了. ...…

查看全部問答∨

Multisim8 使用手冊

Multisim8 使用手冊…

查看全部問答∨

曬工資了:電工薪水大調查

曬工資了,不記名投票。把你所有的收入都算上,獎金,工資,加班費,兼職,分紅雙薪,凡是到手的,統統都算上就投一個吧,總有一款適合你,讓大家都了解下目前電子行業的行情。注意:是年薪哦,把月工資乘12,再加項目獎等等。…

查看全部問答∨

上位機,怎么換行?

我用的板子是周立功lpc2138 實現了RS232串口驅動 向串口發送數據時 往上位機上顯示 例如程序如下 char *ch; ch = "hollow"; UART0_SendStr(ch); 現在能成功的發送到上位機上顯示,我想換行顯示,不知道怎么弄呢?請高手指教。。。。謝 ...…

查看全部問答∨

侃侃我的成果

本人長期從事單片機開發應用,積累了一定的經驗。本人將畢生研究心得集成了文字,放在我的博客里,希望大家光臨指導,并給點意見。我的博客地址;http://blog.mcuol.com/user/Article/500.html…

查看全部問答∨

參加一次正規拓展訓練

這次拓展是公司組織的,我們這批有60多人參加,一共分成4隊,(之前已經去過4批人了,我們是最后一批!)感謝公司,很感謝公司,非常感謝公司! 奧特曼隊、海盜隊、挑戰者隊、敢死隊(字體顏色就是各隊旗幟顏色) !!!所有的隊伍不全是爺們!! ...…

查看全部問答∨

求助一個KEIL技巧

記得看見過一個貼圖,有點像邏輯分析儀, 再KEIL里咋看IO口的輸出邏輯時序?  家里沒示波器,呵呵。擺脫了。…

查看全部問答∨

FPGA的時鐘腳分配以及時鐘網絡的疑惑

在調Cyclone V的ddr3硬核的時候,里面給ddr3的本地時鐘管腳分配時必須要和別的硬核功能管腳在同一個bank,否則編譯不通過。 但是我采用的FPGA時鐘信號在另一個bank。后來發現在管腳分配(pin planner)里面,和硬核功能管腳在同一個bank里面是有一些 ...…

查看全部問答∨

MC34063 DC/DC轉換控制電路測試方法

        DC/DC轉換器廣泛應用于遠程及數據通信、計算機、辦公自動化設備、工業儀器儀表、軍事、航天等領域,涉及到國民經濟的各行各業。文章以其中有一定代表性的MC34063電路為例,扼要介紹其電特性和用其構成的升壓 ...…

查看全部問答∨
小廣播
設計資源 培訓 開發板 精華推薦

最新單片機文章
何立民專欄 單片機及嵌入式寶典

北京航空航天大學教授,20余年來致力于單片機與嵌入式系統推廣工作。

 
EEWorld訂閱號

 
EEWorld服務號

 
汽車開發圈

 
機器人開發圈

電子工程世界版權所有 京ICP證060456號 京ICP備10001474號-1 電信業務審批[2006]字第258號函 京公網安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 新化县| 吉首市| 彭水| 大荔县| 郯城县| 苏尼特右旗| 伊吾县| 勃利县| 永新县| 伊金霍洛旗| 闻喜县| 车致| 龙门县| 巧家县| 东山县| 广宗县| 灯塔市| 利辛县| 安徽省| 会泽县| 尼玛县| 天峻县| 孝义市| 进贤县| 长葛市| 红安县| 承德县| 南丰县| 绩溪县| 辽阳市| 乐清市| 云安县| 绩溪县| 宝兴县| 永胜县| 安远县| 凤冈县| 武宁县| 纳雍县| 砀山县| 绥德县|