娇小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-05-04 10:56

STM32L151C8T6 的IAP實現方案
STM32L151C8T6的Bootloader設計 思想: FLASH分三個區: Bootloader區: 校驗備份程序,若滿足條件將用備份程序替換用戶程序,否者運行用戶程序. 運行區:運行用戶程序,程序中要求能接受用戶程序到備份區,接收完后,在備份區的程序頭內打上標記,然后啟動Bootloader,由Bootloader完成程序替換 備份區:用戶程序在此接受 4.1 空間分區 STM32L151C8T6有64KB的FLASH空間,每4KB是一個區,每個區有16個頁,程序編程是按頁來編程的. 程序的Vector是按512的整數倍偏移的, 空間劃分如下圖, 后續所示的設置都是基于這個空間劃分來配置的. 程序
[單片機]
STM32L151C8T6 的<font color='red'>IAP</font>實現方案
一個STM32F0 的IAP應用問題
Stm32f0系列MCU中斷矢量表的定位跟STM32其它系列相比有點差異,即M0系列沒有像其它M3/M4/M0+系列所具備的中斷矢量表重定位寄存器,其中斷矢量表不能借助矢量重定位寄存器簡單修改實現。所以Stm32f0 IAP的過程會跟其它系列的STM32芯片的IAP動作有所不同。 我們知道,做IAP往往需要兩部分代碼,一部分是用來升級的IAP程序,一部分用來運行用戶實際應用功能的應用程序APP代碼。 IAP程序及自身的中斷向量表放在內部FLASH的低端地址區。對于STM32 MCU而言,就是從0X0800 0000處開始放IAP代碼。APP程序代碼及自身中斷矢量表存放在離0X0800 0000某個地址偏移量【offset】的地方,
[單片機]
一個STM32F0 的<font color='red'>IAP</font>應用問題
片外FIash存儲器IAP的n種方案
引 言   以ARM芯片為處理器核的嵌入式應用系統,以其小體積、低功耗、低成本、高性能、豐富的片內資源以及對操作系統的廣泛支持,得到了人們越來越多的青睞。包括工業控制領域、無線通信領域、網絡應用、消費電子、成像和安全產品等,如今,ARM微處理器及嵌入式技術的應用幾乎已經滲透到了各個領域。其中ARM7作為ARM微處理器系列中的一員,是低功耗的32位RISC處理器。Samsung公司的S3C4510B、Philips公司的LPC20XX、LPC21XX、LPC22XX系列等都是ARM7處理器。這些為數繁多的ARM7處理器,因其片內外設不同而各擅所長,但都應用同樣的ARM7TDMI核(或ARM7TDMI—S核,這是ARM7TDMI的綜
[緩沖存儲]
小廣播
設計資源 培訓 開發板 精華推薦

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

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

 
EEWorld訂閱號

 
EEWorld服務號

 
汽車開發圈

 
機器人開發圈

電子工程世界版權所有 京ICP證060456號 京ICP備10001474號-1 電信業務審批[2006]字第258號函 京公網安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 沂源县| 武胜县| 安阳市| 秦皇岛市| 平阳县| 九龙城区| 怀集县| 新蔡县| 手游| 抚宁县| 五莲县| 剑河县| 丰镇市| 灵璧县| 湖口县| 旺苍县| 邛崃市| 弥渡县| 新源县| 新疆| 海原县| 灵丘县| 客服| 富蕴县| 贞丰县| 北流市| 永仁县| 崇阳县| 定陶县| 亳州市| 勃利县| 阿拉善盟| 伊宁县| 平果县| 台州市| 永安市| 扬州市| 公主岭市| 陈巴尔虎旗| 玉环县| 玉树县|