日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

STM32 进阶教程 10 - RAM中调试程序

發布時間:2025/4/5 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 STM32 进阶教程 10 - RAM中调试程序 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言

在stm32開發過程中,程序調試是一個比較耗時且又重要的問題,特別是在固件代碼達到一定的復雜度后,程序下載過程就一個比較耗時過程,同時STM32芯片有FLASH燒寫次數有限,像103系列手冊中標的是10000次,但在030系列MCU中才1000次,如果調試時可以將程序直接下載到RAM中并在RAM中運行(前題是有足夠大的RAM可用)那么程序下載時間將有明顯減少,同時Flash的使用壽命也得以保證,本節將給大家介紹如何在STM32中將程序下在RAM調試。

?

示例詳解

基于硬件平臺: STM32F10C8T6最小系統板, MCU 的型號是?STM32F103c8t6, 使用stm32cubemx 工具自動產生的配置工程,使用KEIL5編譯代碼。

?

?

本示例所用的最小系統板原理圖:

?

  • 關于CUBEMX工具及KEIL工具的操作將不再細講,如果還有不熟悉的可以查看之前的教程文檔。下面直接介紹工程配置:
  • 系統時鐘樹
  • 定時器配置
  • 引腳配置
  • 中斷配置(保持默認)
  • ?

    ?

  • 工程代碼
  • ?

  • 下圖是STM32數據手冊中關于BOOT 配置的描述:
  • 本例并不需要更改BOOT設置為Embedded SRAM(保證main flash memory亦可),但需先對工程中進行一些設置,具體實現步驟如下:

    在工程的Options for Target ->Target中將IROM1,和IRAM1都修成在RAM區間,注意按芯片RAM大小來設置,并根據程序大小及變量多少來劃分,本例MCU為stm32f103c8t6,芯片有20k RAM,將前16k設成IROM1用來放代碼,將后4k用來當IRAM1存程序變量,堆和棧。

    在工程的Options for Target ->C/C++選項卡中加入VECT_TAB_SRAM宏定義:

    ?

    在工程的Options for Target ->Linker選項卡中先不勾選USE MEMORY LAYOUT FROM TARGET Dialog,并設置R/O Base 和R/W Base 如下 :

    設置完成后再勾選USE MEMORY LAYOUT FROM TARGET Dialog:

    新建SRAM.ini文件,內容如下:

    ?

    在工程的Options for Target ->Debug選項卡中先加入剛新建的SRam.ini文件作為仿真初值化文件:

    在工程的Options for Target ->Debug->Settings選項卡中按下圖配置燒錄規則/算法:

    ?

    完成上述配置程序編譯完對應的地址空間就在SRAM區間,對工程進行仿真調試就可以直接看到效果:

  • 在main.c中加入如下圖所示代碼
  • ?

  • 編譯工程無錯誤后,仿真調試工程,工程成功運行到MAIN,全速運行工程可以看到工程序正常運行,功能也正常(LED循環亮500ms 滅500ms),最后注意一點是要想看到程序運行效果一定要仿真調試才行,直接燒錄后程序是看不到效果的:
  • OK,本期實驗完成!下期見!同時如果大家有什么疑問或是有想了解的其它內容,也歡迎大家留言!!最后喜歡這個公眾號的同學們記得加關注了,會有不定期技術干貨推出!!

    文中源碼資料下載,在公眾號里給十三發消息:

    下載|STM32進階教程 10

    ?

    關注十三公眾號

    ?

    總結

    以上是生活随笔為你收集整理的STM32 进阶教程 10 - RAM中调试程序的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。