色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

3天內不再提示

如何在IAR Embedded Workbench中填充提高系統的健壯性

IAR愛亞系統 ? 來源:IAR愛亞系統 ? 作者:IAR愛亞系統 ? 2022-11-03 17:16 ? 次閱讀

嵌入式軟件開發中一般會預留一些MCU資源(ROMRAMCPU Load等)以方便項目升級,即使是很成熟的產品,ROM資源也不會100%被使用。在嵌入式軟件構建(Build)過程中,編譯器(Compiler)和鏈接器(Linker)會放置對應的代碼和常量數據到ROM中。沒有被使用的ROM,編譯器和鏈接器會填充0或者不做任何處理(保留ROM擦除之后的值):比如為了半字/字(16-bit Halfword/32-bit Word)對齊,編譯器和鏈接器會填充0到相應的ROM字節 (8-bit Byte);而連續沒有使用的ROM,編譯器和鏈接器不做任何處理(保留ROM擦除之后的值0xFF)。正常情況下,MCU的程序指針(PC)會按照既定程序來運行。但是在有些極端情況下,程序指針有可能發生不可知的變化,從而指向了沒有使用的ROM地址,如果相應地址包含的指令執行一些非期望的操作,產生的影響是未知的(注意:嵌入式系統中未知的影響有可能是非常嚴重的,特別是一些高安全性的嵌入式系統)。為了提高系統的健壯性,通常需要往沒有使用的ROM填充相應的值,這個值可以讓系統快速恢復到可靠的狀態。

本文主要介紹如何在IAR Embedded Workbench中填充沒有使用的ROM來提高系統的健壯性。

填充沒有使用的ROM

在Linker中填充沒有使用的ROM

在IAR Embedded Workbench工程選項(Options)里面Linker選項里面Checksum:勾選“Fill unused code memory”, Fill pattern里面填充相應的值(注意,該值與使用的MCU/CPU相關,具體需要參考對應的CPU指令手冊。原則是該值能夠讓MCU/CPU快速恢復到指定的狀態)。這里以ARM Cortex-M為例,0xFF對應的是未定義的指令(Undefined Instruction),運行改指令會觸發對應的錯誤(Fault)。Start address和End address分別輸入ROM的起始地址和結束地址。

efbdf6b0-5b56-11ed-a3b6-dac502259ad0.png

構建(Build)成功之后,查看生成的map文件未使用的范圍部分(Unused ranges):

eff18a0c-5b56-11ed-a3b6-dac502259ad0.png

下載到目標板進行調試。

首先打開Memory窗口查看未使用的ROM范圍部分是不是之前指定填充的值:這里看到都是0xFF。

f021ded2-5b56-11ed-a3b6-dac502259ad0.png

運行程序一段時間并暫停。打開Register窗口,查看PC值。正常情況下,PC值不會跑到未使用的范圍部分:這里PC值是0x0800_89CA,不在未使用的范圍部分(0x0800_221C ~ 0x0800_2FFF,0x0800_9274 ~ 0x080F_FFFF)。

f050695a-5b56-11ed-a3b6-dac502259ad0.png

強制將PC值改變到未使用的范圍部分(0x0800_221C ~ 0x0800_2FFF,0x0800_9274 ~ 0x080F_FFFF),比如0x080F_FFFC:

f080c5dc-5b56-11ed-a3b6-dac502259ad0.png

運行程序。程序會跑到HardFault_Handler,因為執行未定義的指令會觸發錯誤(Fault)。

(注意:HardFault_Handler里面具體的操作需要根據系統的需求來定,但是最終一定要復位讓系統恢復到可靠的狀態。)

f09f5b3c-5b56-11ed-a3b6-dac502259ad0.png

可以查看對應的寄存器確認相關的Fault: Undefined instruction usage fault

f0db9520-5b56-11ed-a3b6-dac502259ad0.png

總結

本文主要分析了沒有使用的ROM的潛在風險并介紹了如何在IAR Embedded Workbench中填充沒有使用的ROM來提高系統的健壯性。

審核編輯:郭婷

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

    關注

    5105

    文章

    19288

    瀏覽量

    310197
  • 編譯器
    +關注

    關注

    1

    文章

    1645

    瀏覽量

    49472

原文標題:填充沒有使用的ROM來提高系統的健壯性

文章出處:【微信號:IAR愛亞系統,微信公眾號:IAR愛亞系統】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    如何將項目從IAR遷移到Embedded Studio

    本文描述如何將IAR EWARM項目遷移到SEGGER Embedded Studio(簡稱SES)
    的頭像 發表于 02-25 17:11 ?179次閱讀
    如何將項目從<b class='flag-5'>IAR</b>遷移到<b class='flag-5'>Embedded</b> Studio

    IAR與紫光同芯合作,全面支持THA6系列汽車芯片

    近日,全球領先的嵌入式系統開發軟件解決方案提供商IAR與業內知名的芯片及解決方案提供商紫光同芯攜手宣布,最新版本的IAR Embedded Work
    的頭像 發表于 12-27 11:46 ?969次閱讀

    IAR Systems最新版開發環境全面賦能芯海科技32位MCU芯片

    隨著IAR Embedded Workbench for Arm 9.32版本對芯海科技MCU系列的全面支持,雙方將攜手為開發者提供更加高效、便捷的開發體驗,共同推動物聯網、工業控制、消費電子等領域的創新發展。
    的頭像 發表于 11-14 14:47 ?609次閱讀
    <b class='flag-5'>IAR</b> Systems最新版開發環境全面賦能芯海科技32位MCU芯片

    IAR支持旗芯微車規級MCU,助力汽車行業智能化發展

    在全球汽車電子產業迅猛發展的背景下,IAR與蘇州旗芯微半導體有限公司(簡稱“旗芯微”)攜手宣布了一項重大合作成果:IAR Embedded Workbench for Arm 9.60
    的頭像 發表于 10-23 11:09 ?797次閱讀

    ?IAR全面支持芯科集成CX3288系列車規RISC-V MCU

    全球領先的嵌入式系統開發軟件解決方案供應商IAR與芯科集成電路(以下簡稱“芯科集成”)聯合宣布,最新版本IAR Embedded Workbench
    的頭像 發表于 07-16 17:32 ?872次閱讀
    ?<b class='flag-5'>IAR</b>全面支持芯科集成CX3288系列車規RISC-V MCU

    IAR全面支持芯馳科技E3系列車規MCU產品E3119/E3118

    IAR與全場景智能車芯引領者芯馳科技宣布進一步擴大合作,最新版IAR Embedded Workbench for Arm已全面支持芯馳科技的E3119/E3118車規級MCU產品
    的頭像 發表于 07-15 10:16 ?84次閱讀
    <b class='flag-5'>IAR</b>全面支持芯馳科技E3系列車規MCU產品E3119/E3118

    IAR與芯馳科技深化合作,共推汽車嵌入式開發新高度

    2024年7月11日,全球嵌入式系統開發軟件領域的佼佼者IAR系統與全場景智能車芯領域的引領者芯馳科技聯合宣布,雙方將合作關系進一步擴展至更深層次。此次合作
    的頭像 發表于 07-12 14:23 ?1274次閱讀

    IAR全面支持矽力杰SA32系列車規MCU

    在全球嵌入式系統開發軟件領域,IAR以其卓越的解決方案而享有盛譽。近日,IAR與矽力杰半導體達成戰略合作,共同宣布即將推出的IAR Embedded
    的頭像 發表于 06-27 17:27 ?1061次閱讀

    IAR通過多架構認證的靜態分析工具加速代碼質量自動化

    公司推出經TüV SüD認證的C-STAT靜態分析工具,適用于最新發布的IAR Embedded Workbench for RISC-V V3.30.2功能安全版。
    的頭像 發表于 06-19 15:49 ?480次閱讀

    芯海通用 MCU應用筆記 :在 IAR 及 MDK 開發環境下使用 printf 函數重定向移植差異指南

    最新發布的集成開發環境 IAR Embedded Workbench for Arm 9.32 版本已全面支持芯海科技 32 位 MCU 芯片,其 IAR Systems 為芯海科技
    發表于 05-16 11:56

    芯海應用筆記:通用 MCU 基于 IAR 芯片包 IAR9 開發指南

    芯海科技與 IAR Systems 達成合作,IAR Embedded Workbench for Arm 已全面支持芯海科技CS32F103X、CS32F03X、 CS32L010X
    發表于 05-16 11:52

    IAR版本為Embedded Workbench 6.5 Kickstart 1.4 編繹報錯怎么解決?

    請教 IAR 這個錯誤是什么問題 在IAR版本為Embedded Workbench 6.0 Kickstart 1.30 編繹正常沒出錯 在I
    發表于 05-09 06:36

    “新一代”漏洞掃描管理系統:脆弱管理平臺提高自身健壯性

    黑客發起攻擊并非盲目,首先要做充分準備,比如找到可利用的系統脆弱,也就是大家經常提起的0 DAY漏洞,或者是已公開但沒有采取彌補措施的已知漏洞,然后再利用一些針對的工具,就可以發起破壞
    的頭像 發表于 04-16 11:16 ?389次閱讀

    IAR FOR ARM和IAR FOR STM8無法共存怎么解決?

    IAR Embedded Workbench,CD 找了原程序,發現IAR FOR ARM和FOR STM8安裝完后,都叫IarIdePm.exe。 安裝完后,FOR ARM在
    發表于 04-07 07:39

    何在IAR IDE調試基于Cortex-R52的RZ/T&amp;N MPU的變量實時監控?

    變量實時監視功能是指IAR Embedded Workbench集成開發環境中提供的實時變量監控功能。
    的頭像 發表于 03-27 13:35 ?2810次閱讀
    如<b class='flag-5'>何在</b><b class='flag-5'>IAR</b> IDE<b class='flag-5'>中</b>調試基于Cortex-R52的RZ/T&amp;N MPU的變量實時監控?
    主站蜘蛛池模板: 99re8在线视频精品 | 色综合五月激情综合色一区 | 麻花传媒MD0044视频 | 国产99九九久久无码熟妇 | 区一区二视频免费观看 | 18av 在线| PORN白嫩内射合集 | 久久性综合亚洲精品电影网 | 奶大B紧17p| 少妇被躁爽到高潮无码久久 | 国产欧美日韩视频怡春院 | www免费看.男人的天堂 | 欧美性xxx18一20 | 欧美日韩国产高清综合二区 | 久久久久久天天夜夜天天 | 男人吃奶摸下挵进去啪啪 | 精品无码国产自产在线观看水浒传 | 亚洲欧美国产综合在线 | 26uuu老色哥 259luxu高跟黑色丝袜系列 | 受喷汁红肿抽搐磨NP双性 | 国产老头与老太hd | 暖暖 免费 高清 日本视频5 | 人妻超级精品碰碰在线97视频 | 99国产精品久久人妻 | 欧美日韩精品一区二区三区四区 | 侮辱丰满美丽的人妻 | 好想被狂躁A片免费久99 | CHINA篮球体育飞机2022网站 | 亚洲AV久久无码精品九号软件 | 国产成人教育视频在线观看 | 国产毛A片啊久久久久久A | 巨胸美乳中文在线观看 | 亚洲日韩国产成网站在线 | 琉璃美人煞在线观看 | 97伦理电影在线不卡 | 青草在线在线d青草在线 | 51无码人妻精品1国产 | 蜜芽无码亚洲资源网站 | 国产精品资源网站在线观看 | 粗好大用力好深快点漫画 | 浴室里强摁做开腿呻吟的漫画 |