chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

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

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

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

掃碼添加小助手

加入工程師交流群

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

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

填充沒(méi)有使用的ROM

在Linker中填充沒(méi)有使用的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)試。

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

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

運(yùn)行程序一段時(shí)間并暫停。打開(kāi)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)的需求來(lái)定,但是最終一定要復(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é)

本文主要分析了沒(méi)有使用的ROM的潛在風(fēng)險(xiǎn)并介紹了如何在IAR Embedded Workbench中填充沒(méi)有使用的ROM來(lái)提高系統(tǒng)的健壯性。

審核編輯:郭婷

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

    關(guān)注

    5192

    文章

    20274

    瀏覽量

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

    關(guān)注

    1

    文章

    1672

    瀏覽量

    51234

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

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

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

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

    隨著汽車(chē)智能化程度的提高,集成的ECU(Electronic Control Unit)數(shù)量不斷增加,OTA(Over-the-Air)技術(shù)變得越來(lái)越普遍,它允許車(chē)輛通過(guò)無(wú)線(xiàn)網(wǎng)絡(luò)接收軟件更新,從而實(shí)現(xiàn)功能升級(jí)和性能改進(jìn),提高了便利
    的頭像 發(fā)表于 01-10 15:25 ?5501次閱讀
    在<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

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

    不同的開(kāi)發(fā)環(huán)境,設(shè)置方法也各不相同。本文將手把手教你如何在主流的CS+for CC、e2studio和IAR Embedded Workbench
    的頭像 發(fā)表于 12-11 16:33 ?4385次閱讀
    瑞薩RL78F2x系列MCU在三種開(kāi)發(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 ?351次閱讀
    漢思新材料:芯片底部<b class='flag-5'>填充</b>膠可靠<b class='flag-5'>性</b>有哪些檢測(cè)要求

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

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

    何在IAR Embedded Workbench for Arm開(kāi)發(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 ?8163次閱讀
    如<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>開(kāi)發(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 ?5138次閱讀
    使用J-Link Attach NXP S32K3導(dǎo)致對(duì)應(yīng)RAM區(qū)域被初始化成0xDEADBEEF

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

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

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

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

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

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

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

    圖2.2是現(xiàn)代CMOS 器件剖面的示意圖。一般來(lái)說(shuō),水平方向的尺寸微縮幅度比垂直方向的幅度更大,這將導(dǎo)致溝槽(包含接觸孔)的深寬比(aspect ratio)也隨之提高,為避免溝槽填充過(guò)程中產(chǎn)生空穴
    的頭像 發(fā)表于 05-21 17:50 ?1227次閱讀
    溝槽<b class='flag-5'>填充</b>技術(shù)介紹

    基于 IAR Embedded Workbench 的自研 MCU 芯片軟件函數(shù)與變量?jī)?nèi)存布局優(yōu)化精控方法

    在嵌入式軟件開(kāi)發(fā)領(lǐng)域,MCU芯片軟件的架構(gòu)設(shè)計(jì)與內(nèi)存布局的精細(xì)規(guī)劃對(duì)系統(tǒng)性能和穩(wěn)定性起著關(guān)鍵作用。本文檔聚焦于IAR Embedded Workbench環(huán)境下,為自研MCU芯片軟件提
    的頭像 發(fā)表于 04-30 16:38 ?673次閱讀
    基于 <b class='flag-5'>IAR</b> <b class='flag-5'>Embedded</b> <b class='flag-5'>Workbench</b> 的自研 MCU 芯片軟件函數(shù)與變量?jī)?nèi)存布局優(yōu)化精控方法

    IAR全面支持芯馳科技車(chē)規(guī)MCU芯片E3650

    2025年4月22日,全場(chǎng)景智能車(chē)芯引領(lǐng)者芯馳科技與全球嵌入式軟件開(kāi)發(fā)解決方案領(lǐng)導(dǎo)者IAR正式宣布,IAR Embedded Workbench for Arm已全面支持芯馳E3650
    的頭像 發(fā)表于 04-23 15:45 ?1298次閱讀

    極海半導(dǎo)體與IAR開(kāi)展全面合作

    隨著各領(lǐng)域應(yīng)用技術(shù)的不斷精進(jìn),嵌入式系統(tǒng)開(kāi)發(fā)生態(tài)支持變得尤為重要。極海致力于為廣大客戶(hù)提供功能強(qiáng)大、高安全的開(kāi)發(fā)工具,以便完成快速、簡(jiǎn)單、高質(zhì)量的開(kāi)發(fā)。IAR Embedded Workbe
    的頭像 發(fā)表于 04-12 14:13 ?869次閱讀

    芯片底部填充填充不飽滿(mǎn)或滲透困難原因分析及解決方案

    芯片底部填充膠(Underfill)在封裝工藝若出現(xiàn)填充不飽滿(mǎn)或滲透困難的問(wèn)題,可能導(dǎo)致芯片可靠下降(如熱應(yīng)力失效、焊點(diǎn)開(kāi)裂等)。以下是系統(tǒng)性
    的頭像 發(fā)表于 04-03 16:11 ?1413次閱讀
    芯片底部<b class='flag-5'>填充</b>膠<b class='flag-5'>填充</b>不飽滿(mǎn)或滲透困難原因分析及解決方案

    如何將項(xiàng)目從IAR遷移到Embedded Studio

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