欧美性猛交xxxx免费看_牛牛在线视频国产免费_天堂草原电视剧在线观看免费_国产粉嫩高清在线观看_国产欧美日本亚洲精品一5区

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

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

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

實(shí)戰(zhàn)經(jīng)驗(yàn) | TrustZone 架構(gòu)下 LPBAM 使用導(dǎo)致的 HardFault

STM32單片機(jī) ? 來源:未知 ? 2023-10-20 15:05 ? 次閱讀
wKgaomUyJ8mAUJSZAAHUHXdxAL4994.gif

關(guān)鍵詞:TrustZone,HardFault

目錄預(yù)覽

1、簡介

2、問題分析

3、總結(jié)

01

簡介


客戶使用 STM32U5 進(jìn)行開發(fā),并使能了 TrustZone 架構(gòu),程序需要從 bootloader 跳轉(zhuǎn)到app。在之前版本都是正常跳轉(zhuǎn)的,某一天 IAR 從 9.20 升級(jí)到 9.30 后,程序跳轉(zhuǎn)失敗,并且會(huì)導(dǎo)致 hardfault,想知道為什么會(huì)失敗。

wKgaomUyJ8qAXhuzAAWv_yD84y0479.png

圖1.IAR9.20 和 IAR9.30 生成的匯編代碼對(duì)比

02

問題分析


通過斷點(diǎn)和單步調(diào)試,我們發(fā)現(xiàn)出現(xiàn)問題的指令如下所示:

wKgaomUyJ8qAQSBjAAVSMORkRzs862.png

圖2.程序下一步將 Hardfault

而沒有發(fā)生 hardfault 的版本匯編代碼,如下圖:

wKgaomUyJ8qAIr2yAAlBO4Ea5y0597.png

圖3.程序不會(huì)發(fā)生 Hardfault

通過單步調(diào)試,我們知道了 VLSTM SP 這條指令導(dǎo)致了 hardfault。接著我們?cè)俅_認(rèn)下 SP 指針,錯(cuò)誤版本的 SP 的內(nèi)容為:0x300020b4,正確版本的 SP 內(nèi)容為:0x30000258。首先,我們對(duì)比了生成的 map 文件中 stack 的地址信息,發(fā)現(xiàn)其中 Stack 的地址和這里 SP 指令是相符的。

然后繼續(xù)查找了 VLSTM 這條指令相關(guān)的描述,關(guān)于 VLSTM 在 PM0264 中有以下描述:

wKgaomUyJ8qAJ8EWAAIos6_SmHs908.png

圖4.關(guān)于 VLSTM 指令

從上圖可以看到,VLSTM SP 這條指令會(huì)把安全的浮點(diǎn)運(yùn)算寄存器的值保存到 SP 地址中,并清除安全浮點(diǎn)寄存器的內(nèi)容,如果 CPU 的狀態(tài)是非安全的,那么這條指令相當(dāng)于空指令,也不會(huì)導(dǎo)致 hard fault,所有從這里也還是分析不出為什么會(huì)導(dǎo)致 hard fault。

重新回到這條指令,現(xiàn)在問題可能比較大的就是 SP 的地址了。有問題的版本的 SP 內(nèi)容為:0x300020b4,會(huì)不會(huì)是對(duì)齊導(dǎo)致的呢?

基于這個(gè)猜測(cè),我們直接在 IAR 界面強(qiáng)制修改了 SP 的地址為 0x300020b8,并繼續(xù)單步執(zhí)行,然后程序可以正常執(zhí)行了。所以目前所知的結(jié)論就是 VLSTM SP 這條指令,要求 SP 必須 8 字節(jié)對(duì)齊,可能 IAR 在編譯的時(shí)候并沒有注意到這一點(diǎn)。

然后,把這些信息反饋到 IAR 以后,IAR 的工程師回復(fù)如下:

根據(jù)目前的信息,問題應(yīng)該是在 VLSTM 要求 8 字節(jié)對(duì)齊上。在 9.30.1 中,由于 PUSH.W {R4, R5, R7-R11}指令執(zhí)行后,相當(dāng)于占用了 28 個(gè)字節(jié)的??臻g,導(dǎo)致了 SP 和 9.20.1 相比,不是 8 字節(jié)對(duì)齊。

03

總結(jié)

在調(diào)試 TrustZone 工程的時(shí)候,由于使用了新的架構(gòu)及新的匯編指令,需要對(duì)這些指令有一定基本的了解。在調(diào)查問題的時(shí)候,可以進(jìn)行單步調(diào)試來定位發(fā)生問題的指令,然后再繼續(xù)深入了解下為什么會(huì)導(dǎo)致 hardfault。

wKgaomUyJ8qAFOqEAAHiBpzEGaQ933.png

完整內(nèi)容請(qǐng)點(diǎn)擊“閱讀原文”下載原文檔。


原文標(biāo)題:實(shí)戰(zhàn)經(jīng)驗(yàn) | TrustZone 架構(gòu)下 LPBAM 使用導(dǎo)致的 HardFault

文章出處:【微信公眾號(hào):STM32單片機(jī)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

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

    關(guān)注

    6044

    文章

    44627

    瀏覽量

    638971
  • STM32
    +關(guān)注

    關(guān)注

    2273

    文章

    10926

    瀏覽量

    357774

原文標(biāo)題:實(shí)戰(zhàn)經(jīng)驗(yàn) | TrustZone 架構(gòu)下 LPBAM 使用導(dǎo)致的 HardFault

文章出處:【微信號(hào):STM32_STM8_MCU,微信公眾號(hào):STM32單片機(jī)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    提升開關(guān)電源效率的理論分析與實(shí)戰(zhàn)經(jīng)驗(yàn)

    在這里有電源技術(shù)干貨、電源行業(yè)發(fā)展趨勢(shì)分析、最新電源產(chǎn)品介紹、眾多電源達(dá)人與您分享電源技術(shù)經(jīng)驗(yàn),關(guān)注我們,與中國電源行業(yè)共成長! 提升開關(guān)電源效率的理論分析與實(shí)戰(zhàn)經(jīng)驗(yàn) 引言 開關(guān)電源設(shè)計(jì)中,為獲得
    的頭像 發(fā)表于 01-09 10:04 ?379次閱讀
    提升開關(guān)電源效率的理論分析與<b class='flag-5'>實(shí)戰(zhàn)經(jīng)驗(yàn)</b>

    使用MCUXpresso for VS Code插件開發(fā)Zephyr的hello world

    本期來到Zephyr實(shí)戰(zhàn)經(jīng)驗(yàn)演練,小編帶著大家一起使用MCUXpresso for VS Code插件來開發(fā)一個(gè)屬于Zephyr的hello world。
    的頭像 發(fā)表于 01-03 09:21 ?666次閱讀
    使用MCUXpresso for VS Code插件開發(fā)Zephyr的hello world

    珠海航展無人機(jī)搭載相機(jī)選擇的深度解析

    軒展科技,作為無人機(jī)視頻產(chǎn)品解決方案提供商,具有15年的一體化攝像機(jī)模組二次開發(fā)實(shí)戰(zhàn)經(jīng)驗(yàn),能為無人機(jī)通過各種分辨率、不同輸出接口及性能的一站式視頻產(chǎn)品解決方案,滿足各種應(yīng)用場(chǎng)景的需求。
    的頭像 發(fā)表于 11-16 10:26 ?339次閱讀

    【全新課程資料】正點(diǎn)原子《基于GD32 ARM32單片機(jī)項(xiàng)目實(shí)戰(zhàn)入門》培訓(xùn)課程資料上線!

    ,提高編程能力和實(shí)戰(zhàn)經(jīng)驗(yàn) 四、適合人群 (1)單片機(jī)編程初學(xué)者 (2)電子工程師 (3)對(duì)ARM32單片機(jī)有興趣的技術(shù)愛好者 五、課程詳細(xì)介紹 1、培訓(xùn)課程包含: (1)全套培訓(xùn)課程視頻(已全部錄制
    發(fā)表于 09-24 18:06

    遇見一個(gè)編譯優(yōu)化導(dǎo)致的bug

    最近在調(diào)試 can 通信,因?yàn)?c8t6 flash 很小,而魚鷹培訓(xùn)工程完成的驅(qū)動(dòng)越來越多,導(dǎo)致 flash 不足,因此把 bsp 的優(yōu)化級(jí)別設(shè)置成 -O2,誰知道在串口輸入數(shù)據(jù)時(shí)直接 hardfault 了。
    的頭像 發(fā)表于 08-12 17:26 ?392次閱讀
    遇見一個(gè)編譯優(yōu)化<b class='flag-5'>導(dǎo)致</b>的bug

    STM32H5和STM32U5在trustzone上有哪些不同?

    我要做空調(diào)的空中升級(jí)FOTA的方案,需要加密,對(duì)于trustzone功能,采用那款芯片比較合適?STM32H5和STM32U5在trustzone上有哪些不同?
    發(fā)表于 07-05 07:03

    請(qǐng)問STM32L5和STM32H5對(duì)trustzone有哪些不同?

    STM32L5和STM32H5對(duì)trustzone有哪些不同?
    發(fā)表于 07-04 08:08

    21年的實(shí)戰(zhàn)經(jīng)驗(yàn),得出最安全、快速、有效的變壓器漏油治理方法!

    變壓器的滲漏是變壓器故障的常見問題,特別是一些運(yùn)行年限已久的變壓器更為普遍,輕者污染設(shè)備外表影響美觀,重者威脅設(shè)備安全運(yùn)行甚至人員生命,變壓器造成滲漏的原因主要有兩個(gè)方面:一方面是在變壓器設(shè)計(jì)及制造工藝過程中潛伏下來的;另一方面是由于變壓器的安裝和維護(hù)不當(dāng)引起的。根據(jù)運(yùn)行維修資料,變壓器最容易滲漏油的是散熱器、瓦斯繼電器、油閥門和油箱等處,嚴(yán)重的滲漏油也多半
    的頭像 發(fā)表于 06-17 13:39 ?544次閱讀
    21年的<b class='flag-5'>實(shí)戰(zhàn)經(jīng)驗(yàn)</b>,得出最安全、快速、有效的變壓器漏油治理方法!

    運(yùn)行ble_hello_sensor時(shí)出現(xiàn)了HardFault_Handler,為什么?

    當(dāng)我運(yùn)行 ble_hello_sensor 時(shí),出現(xiàn)了 HardFault_Handler。 我認(rèn)為 cy_rtos_create_thread(cybt_platform_task.c) 用于
    發(fā)表于 05-21 07:35

    STM32H7在設(shè)置MPU時(shí)為什么會(huì)進(jìn)入hardfault?

    MPU配置截圖 這樣配置會(huì)進(jìn)入hardfault,這么配置的原因是這段里某些地址我用做了ETH和LWIP的緩存 標(biāo)識(shí)符啥的 不知道這么配置為什么就會(huì)進(jìn)入Hardfault,但是如果我把MPU Cacheable Permission打開后,就是正常的 不知道各位大佬有沒
    發(fā)表于 05-17 15:02

    STM32程序運(yùn)行時(shí)會(huì)莫名的進(jìn)入HardFault硬件中斷中,為什么?

    中斷,串口中斷,在進(jìn)入HardFault后這些中斷還在正常運(yùn)行,可以排除是這些中斷導(dǎo)致進(jìn)入HardFault; 一周嘗試下來,確定的現(xiàn)象就是將代碼改動(dòng)一問題就會(huì)消失或者重新出現(xiàn),但是
    發(fā)表于 04-10 06:29

    空指針區(qū)域?qū)懭霐?shù)據(jù)會(huì)hardfault,為什么測(cè)試時(shí)讀取卻不會(huì)hardfault?

    空指針區(qū)域?qū)懭霐?shù)據(jù)會(huì)hardfault,這個(gè)大家都知道, 但是測(cè)試時(shí)發(fā)現(xiàn)讀取時(shí)卻不會(huì),這是為什么?有人知道嗎?
    發(fā)表于 03-14 08:20

    STM32H5 DA證書鏈實(shí)戰(zhàn)經(jīng)驗(yàn)

    之前我們已經(jīng)講過了如何通過 DA 認(rèn)證來回退芯片產(chǎn)品狀態(tài),或者重新打開調(diào)試口,這樣開發(fā)人員在芯片為 Closed 狀態(tài)時(shí)仍可以調(diào)試芯片。
    的頭像 發(fā)表于 03-12 14:08 ?1201次閱讀
    STM32H5 DA證書鏈<b class='flag-5'>實(shí)戰(zhàn)經(jīng)驗(yàn)</b>

    基于STM32U5片內(nèi)溫度傳感器正確測(cè)算溫度實(shí)戰(zhàn)經(jīng)驗(yàn)分享

    STM32 在內(nèi)部都集成了一個(gè)溫度傳感器,STM32U5 也不例外。這個(gè)位于晶圓上的溫度傳感器雖然不太適合用來測(cè)量外部環(huán)境的溫度,但是用于監(jiān)控晶圓上的溫度還是挺好的,以防止芯片過溫運(yùn)行。
    的頭像 發(fā)表于 02-22 17:27 ?4423次閱讀
    基于STM32U5片內(nèi)溫度傳感器正確測(cè)算溫度<b class='flag-5'>實(shí)戰(zhàn)經(jīng)驗(yàn)</b>分享

    STM32H5 DA 之初體驗(yàn)(帶 TrustZone)

    電子發(fā)燒友網(wǎng)站提供《STM32H5 DA 之初體驗(yàn)(帶 TrustZone).pdf》資料免費(fèi)下載
    發(fā)表于 02-19 14:19 ?0次下載
    STM32H5 DA 之初體驗(yàn)(帶 <b class='flag-5'>TrustZone</b>)