吴忠躺衫网络科技有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

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

茶話MCU ? 來源:cc ? 2019-02-26 15:32 ? 次閱讀

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相關知識,細節還是挺多的。有興趣的話,可以自行查看相關技術手冊做進一步的了解和探究。有時間,后續將在這里做進一步交流。此時分享該應用案例,一做應用提醒,二做拋磚引玉。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 芯片
    +關注

    關注

    456

    文章

    51192

    瀏覽量

    427334
  • STM32
    +關注

    關注

    2272

    文章

    10924

    瀏覽量

    357605

原文標題:一個STM32H7芯片IAP跳轉失敗的案例

文章出處:【微信號:stmcu832,微信公眾號:茶話MCU】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    stm32H7 HAL庫中存在的bug

    stm32H7 hal 庫里面的以太網代碼,坑了魚鷹很多次(不知道最新版是否已經修復了這些bug),這里分享一篇網上的文章,因為魚鷹也遇到過,靠它解決了其中一個編譯優化問題,在此感謝作者。不過hal
    的頭像 發表于 08-12 17:37 ?1385次閱讀

    請問stm32h7系列怎么跑linux呢?

    stm32h7系列怎么跑linux?
    發表于 07-03 08:04

    STM32H7系列芯片發不出去的hello問題

    有人使用STM32H7系列芯片,用到UART做字符串輸出時遇到點小問題。這里一起聊聊該問題,并分析問題原因。
    的頭像 發表于 07-01 09:56 ?1582次閱讀
    <b class='flag-5'>STM32H7</b>系列<b class='flag-5'>芯片</b>發不出去的hello問題

    如何用STM32H7 SPI驅動DAC芯片(非板上內置DAC)生成正弦波?

    我想用STM32H7用SPI 驅動DAC 芯片(非板上內置DAC)生成正弦波,有合適的例程或者思路給我借鑒嗎
    發表于 05-31 06:35

    STM32H7的HRTIM可以生成12路的PWM嗎?

    STM32H7的HRTIM可以生成12路的PWM嗎,想做數字電源,控制三相NPC逆變器
    發表于 05-23 07:19

    STM32F1 IAP操作讀保護選項字節設置,APP使用系統復位跳轉后無法運行IAP的原因?

    最近調試一個程序,是基于STM32F1做的IAP,升級前后需要修改選項字節,FLASH_EraseOptionBytes函數內OB->RDP=RDP_Key語句實現讀保護的解除,如果我
    發表于 05-13 08:09

    請問STM32H7是否支持Trace功能?

    報 “Trace HW not present”這個錯誤。stm32H7的dataSheet是明確表示該內核是有Trace功能的,是不是哪里設置有問題?
    發表于 04-25 07:38

    IAP跳轉APP開始可以,如果從APP跳回IAP后再跳到APP失敗的原因?

    IAP 跳轉APP 開始可以,但如果從APP跳回IAP后,再跳到APP失敗。 我是按照 下面ST官方文檔來的: AN4657 Application note
    發表于 04-23 07:24

    STM32H7系列目前有沒有支持h264編解碼?fps大概為多少?

    STM32H7系列目前有沒有支持h264編解碼,fps大概為多少?
    發表于 04-07 06:06

    使用LL庫生成STM32H7代碼時存在報錯是什么原因導致的?

    使用LL庫生成STM32H7代碼時存在的BUG
    發表于 04-03 07:33

    STM32H7讀外部SRAM首次成功,之后保持不變是為什么?

    STM32H743讀外部SRAM 芯片,首次讀成功后,無法再次讀取新的數據,使用示波器對STM32H7引腳進行測量,發現無波形輸出。調試過程中,在程序中打個斷點,就每次可以正常讀取。
    發表于 03-27 06:13

    Stm32H7 spi會帶來更大的adc噪聲,導致小信號異常值的原因?

    [Stm32H7]spi會帶來更大的adc噪聲,導致小信號異常值
    發表于 03-25 06:10

    如何用STM32H7的EXTI0同步觸發SPI DMA雙緩沖?

    請教:有沒有朋友用STM32H7 的EXTI0同步觸發SPI DMA雙緩沖的,指教一下
    發表于 03-14 08:22

    STM32H7 MCO可以設置輸出頻率為4.096Mhz的時鐘嗎?

    想有STM32H7 MCO 可以設置輸出頻率為4.096Mhz給外部ADC提供時鐘,請問下MCO 可以設置輸出為4.096Mhz?如何配置?
    發表于 03-14 06:19

    STM32H7的工程出現找不到rtconfig.h的錯誤如何解決?

    舊工程是能正常編譯和運行的。在拉取最新代碼后,編譯出錯,提示有些宏定義缺失。進入menuconfig配置后,AT32的工程是能正常編譯的,STM32H7的工程出現找不到rtconfig.h的錯誤
    發表于 03-05 07:12
    百家乐官网澳门有网站吗| 百家乐官网玩法和技巧| 微信百家乐官网群规则大全| E乐博百家乐| 百家乐押注最高是多少| 百家乐官网正规站| 阳新县| 百家乐打连技巧| 新2百家乐现金网百家乐现金网| 百家乐官网技巧论坛| 波胆| 太阳城金旭园| 缅甸百家乐网站是多少| 喜来登百家乐官网的玩法技巧和规则| 赌百家乐官网咋赢对方| 鸿胜博娱乐| fl水果机教程| 百家乐又称什么| 揭秘百家乐百分之50| 百家乐官网视频游戏平台| 岫岩| 娱乐城豪享博主推| 百家乐官网画面方法| 百家乐官网是骗人吗| 宝马会娱乐城返水| 大发888娱乐城充值| 嘉年华百家乐的玩法技巧和规则| 缅甸百家乐网上投注| 罗盘24山珠宝火坑| V博百家乐官网的玩法技巧和规则| 在百家乐官网二庄两闲揽的概率| 澳门百家乐官网皇冠网| 射阳县| 百家乐官网破解打法| 枞阳县| 百家乐官网教父方法| 百家乐官网娱乐开户| 百家乐官网怎样投注好| 盐城市| 网上百家乐官网娱乐场| 百家乐官网网址皇冠现金网|