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

探究STM32H7芯片IAP跳轉失敗案例

發布者:RadiantGaze最新更新時間:2024-08-30 來源: elecfans關鍵字:IAP 手機看文章 掃描二維碼
隨時隨地手機看文章

有STM32用戶反饋,他在使用STM32H750VB編寫用戶引導程序BOOT CODE】和應用程序【APP CODE】。根據數據手冊描述,STM32H750有128K Bytes的片內flash,地址是從0x0800 0000~~0x0801 FFFF。他將用戶bootloader放在0x0800 0000~0x0800 2FFF,應用程序放在0x08003000~0x0801 FFFF。但當他按照這樣的存儲分配設計時,發現總是沒法實現從BOOT區到APP區的跳轉。


基于該用戶的反饋信息,給他做了些提醒,比如中斷矢量表定位問題,客戶都說已經注意到了,代碼應該沒有問題。我這邊就客戶反饋的問題找了塊STM32H743的板做了驗證測試。發現從BOOT區到APP區的跳轉并沒有異常,那么客戶怎么又有問題呢?


再次查看了客戶郵件的反饋信息。他用的默認內部SRAM區為AXI SRAM,地址區間在0x24000000 --0x2407FFFF,即下面表格中的A區,而我使用的默認內部SRAM區是DTCM SRAM,地址區間在0x20000000 -0x2001FFFF,即下面表格中的B區。

難道是這個差別導致跳轉的不同結果?當然,這兩個SRAM區在使用上還是有差異的。

我嘗試著將測試工程的默認SRAM區從TCM RAM也改成AXI SRAM進行測試。果真沒法實現從BOOT區到APP區的跳轉!看來跳轉失敗跟選擇這個默認SRAM區有關系。也就是說當我默認使用DTCM RAM時跳轉正常,如果默認使用AXI SRAM時會跳轉失敗。

我們知道,STM32H7系列芯片支持D-CACHE/I-CACHE。具體到這里,如果使用AXI SRAM往往會用到D-CACHE。我們的工程代碼里也的確開啟了D-CACHE,如果是因為這個原因,如果在做跳轉操作之前關閉D-CACHE應該就能實現正常跳轉。 于是對代碼稍加調整,實際上也就是加了句關閉D-CACHE的代碼。【紅色方框處】

再次進行測試,此時即使使用AXI RAM做為默認內存空間,從用戶BOOT區也能可靠跳轉到APP區,完美實現。


這里涉及到STM32H7系列芯片內部不同存儲區的訪問特性和D-Cache相關知識,細節還是挺多的。有興趣的話,可以自行查看相關技術手冊做進一步的了解和探究。有時間,后續將在這里做進一步交流。此時分享該應用案例,一做應用提醒,二做拋磚引玉。


關鍵字:IAP 引用地址:探究STM32H7芯片IAP跳轉失敗案例

上一篇:STM32單片機程序編譯及下載配置
下一篇:STM32 wavplayer播放單聲道音頻的處理方法

推薦閱讀最新更新時間:2025-04-23 18:06

STM32F103 IAP升級時在app文件中放置標志字節處的地址計算
為了防止升級時選錯文件,在APP程序中某個位置放置4個標志字節55 AA 55 AA,在生成的二進制文件目標中對應的位置要按照以下公式計算: 二進制目標文件中標志字節的位置 = FLASH中的位置-FLASH的起始位置-APP程序的偏移量。 切記!
[單片機]
Stm32 IAP程序編寫及用戶程序編寫
Stm32f10x系列MCU Bootloader 流程 芯片:stm32f103ze 所需軟件:SecureCRT (用于使用Ymode協議發送Application文件),其實應該我們自己寫個上位機,這里借助SecureCRT來充當我們自己寫的應用程序(用于驗證Bootloader是否成功)。 keil版本:μVision V5.11.0.0 用途:使用通信接口用于軟件的更新(免去拆機繁瑣的流程)。 BootLoader其實看上去挺復雜的樣子,但也還好~仔細查找網上的資料都有很多介紹,以下為自己做bootloader的過程以及應注意的事項,幫助大家少走彎路~ 請先下載我上傳的資源: http://download.c
[單片機]
Stm32 <font color='red'>IAP</font>程序編寫及用戶程序編寫
單片機ISP、IAP和ICP幾種燒錄方式的區別
單片機ISP、IAP和ICP幾種燒錄方式的區別 玩單片機的都應該聽說過這幾個詞。一直搞不太清楚他們之間的區別。今天查了資料后總結整理如下。 ISP:In System Programing,在系統編程 IAP:In applicating Programing,在應用編程 ICP:In Circuit Programing,在電路編程 ISP是指可以在板級上進行編程,也就是不用拆芯片下來,寫的是整個程序,一般是通過ISP接口線來寫。 IAP雖然同樣也是在板級上進行編程,但是是自已對自已進行編程,在應用中進行編程,也即可以只是更改某一部分而不影響系統的其它部分,另外接口程序是自已寫的,這樣可以進行遠程升級而不影響應用。
[單片機]
小廣播
設計資源 培訓 開發板 精華推薦

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

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

 
EEWorld訂閱號

 
EEWorld服務號

 
汽車開發圈

 
機器人開發圈

電子工程世界版權所有 京ICP證060456號 京ICP備10001474號-1 電信業務審批[2006]字第258號函 京公網安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 呼伦贝尔市| 洛宁县| 喀喇沁旗| 明水县| 绥江县| 仁怀市| 玉环县| 黄浦区| 澜沧| 靖边县| 兴文县| 汉川市| 塘沽区| 珠海市| 广宗县| 兴山县| 固原市| 宁海县| 息烽县| 漾濞| 司法| 灵璧县| 石台县| 文成县| 讷河市| 汉寿县| 独山县| 武清区| 哈巴河县| 丹阳市| 林州市| 从江县| 云龙县| 清水河县| 喀喇| 五常市| 宝应县| 山西省| 长治市| 苏尼特左旗| 凤阳县|