一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

探究STM32H7芯片IAP跳轉(zhuǎn)失敗案例

茶話MCU ? 來源:cc ? 2019-02-26 15:32 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

STM32用戶反饋,他在使用STM32H750VB編寫用戶引導(dǎo)程序【BOOT CODE】和應(yīng)用程序【APP CODE】。根據(jù)數(shù)據(jù)手冊描述,STM32H750有128K Bytes的片內(nèi)flash,地址是從0x0800 0000~~0x0801 FFFF。他將用戶bootloader放在0x0800 0000~0x0800 2FFF,應(yīng)用程序放在0x08003000~0x0801 FFFF。但當(dāng)他按照這樣的存儲(chǔ)分配設(shè)計(jì)時(shí),發(fā)現(xiàn)總是沒法實(shí)現(xiàn)從BOOT區(qū)到APP區(qū)的跳轉(zhuǎn)。

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

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

難道是這個(gè)差別導(dǎo)致跳轉(zhuǎn)的不同結(jié)果?當(dāng)然,這兩個(gè)SRAM區(qū)在使用上還是有差異的。

我嘗試著將測試工程的默認(rèn)SRAM區(qū)從TCM RAM也改成AXI SRAM進(jìn)行測試。果真沒法實(shí)現(xiàn)從BOOT區(qū)到APP區(qū)的跳轉(zhuǎn)!看來跳轉(zhuǎn)失敗跟選擇這個(gè)默認(rèn)SRAM區(qū)有關(guān)系。也就是說當(dāng)我默認(rèn)使用DTCM RAM時(shí)跳轉(zhuǎn)正常,如果默認(rèn)使用AXI SRAM時(shí)會(huì)跳轉(zhuǎn)失敗。

我們知道,STM32H7系列芯片支持D-CACHE/I-CACHE。具體到這里,如果使用AXI SRAM往往會(huì)用到D-CACHE。我們的工程代碼里也的確開啟了D-CACHE,如果是因?yàn)檫@個(gè)原因,如果在做跳轉(zhuǎn)操作之前關(guān)閉D-CACHE應(yīng)該就能實(shí)現(xiàn)正常跳轉(zhuǎn)。 于是對代碼稍加調(diào)整,實(shí)際上也就是加了句關(guān)閉D-CACHE的代碼?!炯t色方框處】

再次進(jìn)行測試,此時(shí)即使使用AXI RAM做為默認(rèn)內(nèi)存空間,從用戶BOOT區(qū)也能可靠跳轉(zhuǎn)到APP區(qū),完美實(shí)現(xiàn)。

這里涉及到STM32H7系列芯片內(nèi)部不同存儲(chǔ)區(qū)的訪問特性和D-Cache相關(guān)知識,細(xì)節(jié)還是挺多的。有興趣的話,可以自行查看相關(guān)技術(shù)手冊做進(jìn)一步的了解和探究。有時(shí)間,后續(xù)將在這里做進(jìn)一步交流。此時(shí)分享該應(yīng)用案例,一做應(yīng)用提醒,二做拋磚引玉。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 芯片
    +關(guān)注

    關(guān)注

    460

    文章

    52519

    瀏覽量

    440880
  • STM32
    +關(guān)注

    關(guān)注

    2293

    文章

    11032

    瀏覽量

    364926

原文標(biāo)題:一個(gè)STM32H7芯片IAP跳轉(zhuǎn)失敗的案例

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

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    AT32 IAP using the USART

    分代碼進(jìn)行更新 如果不需要更新則轉(zhuǎn)到4) 執(zhí)行更新操作 跳轉(zhuǎn)到第二部分代碼執(zhí)行 圖 1. IAP 代碼執(zhí)行流程 在上圖所示流程中,MCU 復(fù)位后,還是從 0x08000004 地址取出復(fù)位中斷向量的地址
    發(fā)表于 07-11 10:51

    有沒有哪位大神提供一個(gè)STM32H523或者STM32H563的串口升級的IAP程序?

    有沒有哪位大神提供一個(gè)STM32H523或者STM32H563的串口升級的IAP程序
    發(fā)表于 06-12 06:56

    STM32H7CubeMX配置硬件I2C,讀寫失敗是什么問題呀?

    STM32H7CubeMX配置硬件I2C,讀寫失敗什么問題呀,同樣的操作F4和F1都能正常使用,應(yīng)該不存在i2c地址錯(cuò)誤,操作都是一樣的,但H7就是用不了。I2C_WaitOnFlagUntilTimeout返回HAL_ERRO
    發(fā)表于 06-12 06:21

    STM32H743VIT6 ST單片機(jī) 參數(shù)及應(yīng)用場景

    STM32H743VIT6 是意法半導(dǎo)體(STMicroelectronics)推出的一款高性能 Cortex-M7 微控制器,屬于 STM32H7 系列。它憑借強(qiáng)大的處理能力、豐富的外設(shè)和低功耗
    的頭像 發(fā)表于 05-12 11:19 ?694次閱讀
    <b class='flag-5'>STM32H</b>743VIT6 ST單片機(jī) 參數(shù)及應(yīng)用場景

    使用STM32H7的FDCAN通訊,為什么CAN1會(huì)收到CAN2的幀ID,CAN2也會(huì)收到CAN1的?

    使用STM32H7的FDCAN通訊,請問為什么CAN1會(huì)收到CAN2的幀ID,CAN2也會(huì)收到CAN1的?
    發(fā)表于 03-14 10:33

    當(dāng)內(nèi)存不夠時(shí),stm32h7 ITCM可以當(dāng)普通ram用嗎?

    當(dāng)內(nèi)存不夠時(shí),stm32h7 ITCM可以當(dāng)普通ram用嗎
    發(fā)表于 03-14 06:13

    STM32H723 IAP跳轉(zhuǎn)進(jìn)入硬件故障怎么解決?

    1、棧頂指針校驗(yàn)不通過; 2、屏蔽棧頂指針校驗(yàn),跳轉(zhuǎn)進(jìn)入硬件故障;
    發(fā)表于 03-13 08:10

    求助,關(guān)于STM32H7系列芯片下的ECC功能的疑問求解

    我這里采用的是STM32H755的芯片,參考了文檔
    發(fā)表于 03-11 07:43

    STM32H7 ADC_IRQHandler和ADC3_IRQHandler這兩個(gè)中斷入口函數(shù)在使用上有什么區(qū)別?

    STM32H7,ADC_IRQHandler和ADC3_IRQHandler這兩個(gè)中斷入口函數(shù)在使用上有何區(qū)別?
    發(fā)表于 03-11 07:28

    請問STM32H5遞增HDPL后如何跳轉(zhuǎn)下一級程序?

    STM32H5的HDP保護(hù),比如某一級ROT提升HDP等級并跳轉(zhuǎn)下一級代碼運(yùn)行。那設(shè)置HDP等級提升后,立刻生效嗎?如果生效,芯片不能再執(zhí)行當(dāng)前ROT中的程序,接下來怎么跳轉(zhuǎn)到下一級程
    發(fā)表于 03-11 06:00

    STM32H7 0x00000000地址的內(nèi)容引發(fā)hardfault怎么解決?

    STM32H7,串口初始化時(shí)執(zhí)行HAL_UART_MspDeInit函數(shù),調(diào)用HAL_NVIC_DisableIRQ(huart-&gt;hdmarx-&gt
    發(fā)表于 03-07 08:15

    【正點(diǎn)原子STM32H7R3開發(fā)套件試用體驗(yàn)】+01-開箱體驗(yàn)

    作為一個(gè)正點(diǎn)原子的忠實(shí)粉絲,很高興能有機(jī)會(huì)試用正點(diǎn)原子的開發(fā)板,自己以前也是通過正點(diǎn)原子的開發(fā)板進(jìn)入嵌入式行業(yè)的,這次給大家?guī)淼氖?b class='flag-5'>STM32的高端芯片,STM32H7R3開發(fā)板 主芯片
    發(fā)表于 12-05 20:10

    stm32H7 HAL庫中存在的bug

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

    使用CUBE IDE無法通過IAP跳轉(zhuǎn)APP進(jìn)行軟件升級怎么解決?

    本人使用的是cubeide 1.7.0版本,單片機(jī)是STM32F407VET6.在這個(gè)IDE工具下,成功實(shí)現(xiàn)STM32F103RCT6單片機(jī)的升級,卻無法實(shí)現(xiàn)F407這款芯片的升級,我不確定
    發(fā)表于 07-31 07:48

    CW32L083 IAP跳轉(zhuǎn)后中斷無響應(yīng)是怎么回事?

    最近做一個(gè)項(xiàng)目,需要IAP。按照官方的教程一切順利,軟件APP跳轉(zhuǎn)一切正常,但是跳轉(zhuǎn)后中斷沒有響應(yīng)。搜索了一堆資料,APP在mian中找開了中斷,在不同地方設(shè)置VROT,都沒能解決,查了數(shù)據(jù)手冊,也
    發(fā)表于 07-26 07:17