成人免费无码不卡毛片,亚洲AⅤ无码精品一区二区三区,国产尤物精品视频,久久精品日本亚洲,欧美成人一区三区无码乱码A片,中文字日产幕码一区二区色哟哟,亞洲日韓中文字幕網AV

  • 資料介紹
    • 概述
    • 問題描述與分析
    • 問題解決
    • 總結(jié)
  • 資料預(yù)覽
  • 相關(guān)推薦
申請入駐 產(chǎn)業(yè)圖譜

LAT1185 一個地址未對齊引起的 HardFault 異常

03/26 09:34
491
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

LAT1185 一個地址未對齊引起的 HardFault 異常

673.92 KB

概述

客戶在使用 STM32G070 的時候,KEIL MDK 為編譯工具,當(dāng)編譯優(yōu)化選項設(shè)置為Level0 的時候,程序會出現(xiàn) Hard Fault 異常,而當(dāng)編譯優(yōu)化選項設(shè)置為 Level1 的時候,則程序運行正常。表面上看,這似乎是 KEIL MDK 的問題,通過分析,導(dǎo)致這個問題的本質(zhì)原因是內(nèi)存地址沒有對齊引起的,下面章節(jié)將詳細(xì)分析該問題的來龍去脈以及解決方法。

問題描述與分析

根據(jù)客戶的反饋,引起問題的代碼很簡單,客戶定義了幾個全局?jǐn)?shù)組,在主程序中訪問這幾個數(shù)組就會出現(xiàn) Hard Fault 異常。

問題解決

通過上一節(jié)的分析,明確了導(dǎo)致該問題的本質(zhì)原因是內(nèi)存地址沒有對齊,這個內(nèi)存地址實際上是代碼中定義的全局變量 g_curPlaySound_app 指向的地址,也就是全局?jǐn)?shù)組變量 SoundFile 的地址,在編譯器不同的優(yōu)化選項下,分配給 SoundFile 變量的地址是不一樣的,在本案例中,編譯優(yōu)化選項 Level0 條件下,SoundFile 分配的地址沒有按照WORD 對齊,而在優(yōu)化選項 Level1 條件下,SoundFile 分配的地址是 WORD 對齊,所以在兩種優(yōu)化選項下,出現(xiàn)了不一樣的運行結(jié)果。

總結(jié)

地址未對齊是嵌入式系統(tǒng)中容易忽視的一個細(xì)節(jié),忽視這點往往會導(dǎo)致一些奇怪的問題,所以在開發(fā)過程中,注意這些細(xì)節(jié)還是很有必要的。

資料預(yù)覽

相關(guān)推薦

肥东县| 资溪县| 荣昌县| 盐边县| 大荔县| 上饶市| 富阳市| 清镇市| 共和县| 台中市| 张家川| 本溪市| 大化| 潮安县| 葵青区| 凉山| 客服| 伊宁县| 聂拉木县| 山东省| 南雄市| 松江区| 沙河市| 铜鼓县| 靖安县| 利津县| 宁强县| 即墨市| 陵水| 林西县| 锦州市| 康平县| 乌拉特中旗| 二连浩特市| 鄂州市| 洪江市| 囊谦县| 桂平市| 孟州市| 乡宁县| 徐水县|