日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

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

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

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

如何在IAR Embedded Workbench中填充提高系統(tǒng)的健壯性

IAR愛亞系統(tǒng) ? 來源:IAR愛亞系統(tǒng) ? 作者:IAR愛亞系統(tǒng) ? 2022-11-03 17:16 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

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

填充沒有使用的ROM

在Linker中填充沒有使用的ROM

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

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

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

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

下載到目標(biāo)板進(jìn)行調(diào)試。

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

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

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

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

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

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

運(yùn)行程序。程序會(huì)跑到HardFault_Handler,因?yàn)閳?zhí)行未定義的指令會(huì)觸發(fā)錯(cuò)誤(Fault)。

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

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

可以查看對(duì)應(yīng)的寄存器確認(rèn)相關(guān)的Fault: Undefined instruction usage fault

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

總結(jié)

本文主要分析了沒有使用的ROM的潛在風(fēng)險(xiǎn)并介紹了如何在IAR Embedded Workbench中填充沒有使用的ROM來提高系統(tǒ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)投訴
  • 嵌入式
    +關(guān)注

    關(guān)注

    5210

    文章

    20680

    瀏覽量

    337362
  • 編譯器
    +關(guān)注

    關(guān)注

    1

    文章

    1673

    瀏覽量

    51960

原文標(biāo)題:填充沒有使用的ROM來提高系統(tǒng)的健壯性

文章出處:【微信號(hào):IAR愛亞系統(tǒng),微信公眾號(hào):IAR愛亞系統(tǒng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    何在 S32DS 3.6 安裝 IAR Eclipse 插件并創(chuàng)建 IAR 項(xiàng)目?

    何在 S32DS 3.6 安裝 IAR Eclipse 插件并創(chuàng)建 IAR 項(xiàng)目? There is an article here that explains how to op
    發(fā)表于 04-23 07:44

    IAR Embedded Workbench for Renesas RH850實(shí)現(xiàn)ROPI

    隨著汽車智能化程度的提高,集成的ECU(Electronic Control Unit)數(shù)量不斷增加,OTA(Over-the-Air)技術(shù)變得越來越普遍,它允許車輛通過無線網(wǎng)絡(luò)接收軟件更新,從而實(shí)現(xiàn)功能升級(jí)和性能改進(jìn),提高了便利
    的頭像 發(fā)表于 01-10 15:25 ?9056次閱讀
    在<b class='flag-5'>IAR</b> <b class='flag-5'>Embedded</b> <b class='flag-5'>Workbench</b> for Renesas RH850<b class='flag-5'>中</b>實(shí)現(xiàn)ROPI

    SiFive車規(guī)級(jí)RISC-V IP獲IAR最新版嵌入式開發(fā)工具全面支持,加速汽車電子創(chuàng)新

    隨著最新版Embedded Workbench for RISC-V v3.40.2的發(fā)布,IAR在延續(xù)對(duì)E6-A系列支持的基礎(chǔ)上,進(jìn)一步新增了對(duì)SiFive Essential? E7-A
    的頭像 發(fā)表于 12-16 15:15 ?503次閱讀

    瑞薩RL78F2x系列MCU在三種開發(fā)環(huán)境下的選項(xiàng)字節(jié)與安全I(xiàn)D設(shè)置方法

    不同的開發(fā)環(huán)境,設(shè)置方法也各不相同。本文將手把手教你如何在主流的CS+for CC、e2studio和IAR Embedded Workbench
    的頭像 發(fā)表于 12-11 16:33 ?4940次閱讀
    瑞薩RL78F2x系列MCU在三種開發(fā)環(huán)境下的選項(xiàng)字節(jié)與安全I(xiàn)D設(shè)置方法

    漢思新材料:芯片底部填充膠可靠有哪些檢測(cè)要求

    芯片底部填充膠可靠有哪些檢測(cè)要求?芯片底部填充膠(Underfill)在先進(jìn)封裝(如FlipChip、CSP、2.5D/3DIC等)起著至關(guān)重要的作用,主要用于緩解焊點(diǎn)因熱膨脹系數(shù)
    的頭像 發(fā)表于 11-21 11:26 ?737次閱讀
    漢思新材料:芯片底部<b class='flag-5'>填充</b>膠可靠<b class='flag-5'>性</b>有哪些檢測(cè)要求

    CW32 MCU用什么IDE開發(fā)?

    推薦使用IAR Embedded Workbench for ARM、Keil μVision for ARM等IDE開發(fā)CW32 MCU應(yīng)用,其中新版本IAR EWARM直接支持CW
    發(fā)表于 11-12 07:52

    何在IAR Embedded Workbench for Arm開發(fā)和調(diào)試Infineon MOTIX MCU

    Infineon MOTIX MCU集成了感應(yīng)、控制和驅(qū)動(dòng)電機(jī)的所有基本功能,支持繼電器、半橋和全橋直流和 BLDC 電機(jī)應(yīng)用,為先進(jìn)的電機(jī)控制應(yīng)用提供全面的解決方案[1]。
    的頭像 發(fā)表于 11-08 14:24 ?8538次閱讀
    如<b class='flag-5'>何在</b><b class='flag-5'>IAR</b> <b class='flag-5'>Embedded</b> <b class='flag-5'>Workbench</b> for Arm<b class='flag-5'>中</b>開發(fā)和調(diào)試Infineon MOTIX MCU

    使用J-Link Attach NXP S32K3導(dǎo)致對(duì)應(yīng)RAM區(qū)域被初始化成0xDEADBEEF

    IAR Embedded Workbench for Arm中使用J-Link Attach NXP S32K3的時(shí)候,會(huì)提示對(duì)應(yīng)RAM區(qū)域被初始化成0xDEADBEEF,導(dǎo)致對(duì)應(yīng)RAM區(qū)域的數(shù)據(jù)被“篡改”。
    的頭像 發(fā)表于 11-03 15:26 ?5609次閱讀
    使用J-Link Attach NXP S32K3導(dǎo)致對(duì)應(yīng)RAM區(qū)域被初始化成0xDEADBEEF

    漢思底部填充膠:提升芯片封裝可靠的理想選擇

    一、底部填充膠的作用與市場(chǎng)價(jià)值在電子封裝領(lǐng)域,底部填充膠(Underfill)已成為提升芯片可靠不可或缺的關(guān)鍵材料。隨著芯片封裝技術(shù)向高密度、微型化和多功能化演進(jìn),漢思新材料憑借其創(chuàng)新的底部
    的頭像 發(fā)表于 09-05 10:48 ?2941次閱讀
    漢思底部<b class='flag-5'>填充</b>膠:提升芯片封裝可靠<b class='flag-5'>性</b>的理想選擇

    何在 IAR Embedded Workbench for ARM 開發(fā)環(huán)境啟用可配置數(shù)據(jù)閃存并設(shè)置大???

    何在 IAR Embedded Workbench for ARM 開發(fā)環(huán)境啟用可配置數(shù)據(jù)閃存并設(shè)置大小?
    發(fā)表于 08-26 07:49

    請(qǐng)問如何在 Keil μVision 或 IAR EWARM 中使用觀察點(diǎn)進(jìn)行調(diào)試?

    何在 Keil μVision 或 IAR EWARM 中使用觀察點(diǎn)進(jìn)行調(diào)試?
    發(fā)表于 08-20 06:29

    請(qǐng)問如何在 IAR Embedded Workbench for ARM 開發(fā)環(huán)境啟用可配置數(shù)據(jù)閃存并設(shè)置大???

    何在 IAR Embedded Workbench for ARM 開發(fā)環(huán)境啟用可配置數(shù)據(jù)閃存并設(shè)置大???
    發(fā)表于 08-20 06:23

    「芯生態(tài)」杰發(fā)科技AC7870攜手IAR開發(fā)工具鏈,助推汽車電子全棧全域智能化落地

    IAR Embedded Workbench for Arm已全面支持杰發(fā)科技AutoChips車規(guī)級(jí)MCU AC7870,為其提供涵蓋開發(fā)、調(diào)試、優(yōu)化等一站式服務(wù)
    的頭像 發(fā)表于 07-22 12:06 ?825次閱讀
    「芯生態(tài)」杰發(fā)科技AC7870攜手<b class='flag-5'>IAR</b>開發(fā)工具鏈,助推汽車電子全棧全域智能化落地

    IAR引領(lǐng)嵌入式DevSecOps新時(shí)代

    章 《The Biggest Takeaways from Embedded World 2025》 ,他的第一條重要觀點(diǎn)(Takeaway #1)就強(qiáng)調(diào),商業(yè)嵌入式工具鏈正在加速融入現(xiàn)代開發(fā)工作流,尤其是IAR在DevSec
    的頭像 發(fā)表于 05-28 10:19 ?1105次閱讀

    溝槽填充技術(shù)介紹

    圖2.2是現(xiàn)代CMOS 器件剖面的示意圖。一般來說,水平方向的尺寸微縮幅度比垂直方向的幅度更大,這將導(dǎo)致溝槽(包含接觸孔)的深寬比(aspect ratio)也隨之提高,為避免溝槽填充過程中產(chǎn)生空穴
    的頭像 發(fā)表于 05-21 17:50 ?1918次閱讀
    溝槽<b class='flag-5'>填充</b>技術(shù)介紹
    临武县| 临海市| 逊克县| 辽宁省| 衡东县| 邹平县| 泰安市| 阿拉善左旗| 图片| 靖西县| 长岭县| 盐源县| 凤城市| 姚安县| 土默特左旗| 南川市| 辰溪县| 鄯善县| 乌兰察布市| 都昌县| 长子县| 临漳县| 崇礼县| 浪卡子县| 邹平县| 新绛县| 开阳县| 张家港市| 安吉县| 黎平县| 灵宝市| 陇南市| 库车县| 墨竹工卡县| 崇礼县| 贵州省| 萍乡市| 黄龙县| 新建县| 靖宇县| 塔河县|