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

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資源(ROM,RAMCPU 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)注

    5082

    文章

    19104

    瀏覽量

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

    關(guān)注

    1

    文章

    1623

    瀏覽量

    49108

原文標(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)推薦

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

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

    IAR通過多架構(gòu)認(rèn)證的靜態(tài)分析工具加速代碼質(zhì)量自動(dòng)化

    公司推出經(jīng)TüV SüD認(rèn)證的C-STAT靜態(tài)分析工具,適用于最新發(fā)布的IAR Embedded Workbench for RISC-V V3.30.2功能安全版。
    的頭像 發(fā)表于 06-19 15:49 ?375次閱讀

    芯海應(yīng)用筆記:通用 MCU 基于 IAR 芯片包 IAR9 開發(fā)指南

    芯海科技與 IAR Systems 達(dá)成合作,IAR Embedded Workbench for Arm 已全面支持芯??萍糃S32F103X、CS32F03X、 CS32L010X
    發(fā)表于 05-16 11:52

    IAR版本為Embedded Workbench 6.5 Kickstart 1.4 編繹報(bào)錯(cuò)怎么解決?

    請(qǐng)教 IAR 這個(gè)錯(cuò)誤是什么問題 在IAR版本為Embedded Workbench 6.0 Kickstart 1.30 編繹正常沒出錯(cuò) 在I
    發(fā)表于 05-09 06:36

    “新一代”漏洞掃描管理系統(tǒng):脆弱管理平臺(tái)提高自身健壯性

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

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

    IAR Embedded Workbench,CD 找了原程序,發(fā)現(xiàn)IAR FOR ARM和FOR STM8安裝完后,都叫IarIdePm.exe。 安裝完后,F(xiàn)OR ARM在
    發(fā)表于 04-07 07:39

    何在IAR IDE調(diào)試基于Cortex-R52的RZ/T&amp;N MPU的變量實(shí)時(shí)監(jiān)控?

    變量實(shí)時(shí)監(jiān)視功能是指IAR Embedded Workbench集成開發(fā)環(huán)境中提供的實(shí)時(shí)變量監(jiān)控功能。
    的頭像 發(fā)表于 03-27 13:35 ?2517次閱讀
    如<b class='flag-5'>何在</b><b class='flag-5'>IAR</b> IDE<b class='flag-5'>中</b>調(diào)試基于Cortex-R52的RZ/T&amp;N MPU的變量實(shí)時(shí)監(jiān)控?

    IAR全面支持小華全系芯片,強(qiáng)化工控及汽車MCU生態(tài)圈

    來源:IAR IAR Embedded Workbench for Arm已全面支持小華半導(dǎo)體系列芯片,加速高端工控MCU和車用MCU應(yīng)用的安全開發(fā) 近日,嵌入式開發(fā)軟件和服務(wù)的全球領(lǐng)
    的頭像 發(fā)表于 03-13 23:02 ?526次閱讀
    <b class='flag-5'>IAR</b>全面支持小華全系芯片,強(qiáng)化工控及汽車MCU生態(tài)圈

    IAR已全面支持小華半導(dǎo)體系列芯片,強(qiáng)化工控汽車MCU生態(tài)圈

    IAR Embedded Workbench for Arm 已全面支持小華半導(dǎo)體系列芯片,加速高端工控MCU和車用MCU應(yīng)用的安全開發(fā)。
    的頭像 發(fā)表于 03-07 11:38 ?1697次閱讀
    <b class='flag-5'>IAR</b>已全面支持小華半導(dǎo)體系列芯片,強(qiáng)化工控汽車MCU生態(tài)圈

    IAR推出新版IAR Embedded Workbench for Arm功能安全版

    全球知名的嵌入式系統(tǒng)開發(fā)軟件解決方案供應(yīng)商IAR Systems近日宣布,其旗艦產(chǎn)品IAR Embedded Workbench for A
    的頭像 發(fā)表于 02-22 17:29 ?1391次閱讀

    IAR推出新版IAR Embedded Workbench for Arm功能安全版

    瑞典烏普薩拉,2024年2月20日 – 全球領(lǐng)先的嵌入式系統(tǒng)開發(fā)軟件解決方案供應(yīng)商IAR宣布:推出其旗艦產(chǎn)品IAREmbedded Workbench for Arm功能安全版的最新版本9.50.3。
    的頭像 發(fā)表于 02-21 13:47 ?822次閱讀

    思瑞浦與IAR建立合作伙伴關(guān)系

    思瑞浦與IAR Systems聯(lián)合宣布,IAR的旗艦產(chǎn)品IAR Embedded Workbench for Arm現(xiàn)已全面支持思瑞浦的TP
    的頭像 發(fā)表于 01-24 17:33 ?913次閱讀

    思瑞浦與IAR攜手共筑嵌入式開發(fā)生態(tài)

    IAR Embedded Workbench for Arm全面支持3PEAK TPS32混合信號(hào)微控制器主流系列產(chǎn)品
    的頭像 發(fā)表于 01-18 11:35 ?546次閱讀
    思瑞浦與<b class='flag-5'>IAR</b>攜手共筑嵌入式開發(fā)生態(tài)

    思瑞浦與IAR攜手共筑嵌入式開發(fā)新生態(tài)

    2024年1月18日思瑞浦與IAR聯(lián)合宣布,IAR旗艦產(chǎn)品IAR Embedded Workbench for Arm已全面支持思瑞浦TPS
    的頭像 發(fā)表于 01-18 11:06 ?792次閱讀

    IAR Embedded Workbench中計(jì)算多個(gè)地址區(qū)間的Checksum

    在前面的文章“使用IAR Embedded Workbench和MCU的CRC模塊來檢查代碼的完整”中介紹了如何在
    的頭像 發(fā)表于 01-05 12:33 ?1522次閱讀
    在<b class='flag-5'>IAR</b> <b class='flag-5'>Embedded</b> <b class='flag-5'>Workbench</b>中計(jì)算多個(gè)地址區(qū)間的Checksum
    主站蜘蛛池模板: 偷拍 自怕 亚洲 在线| SAO货腿张开JI巴CAO死我 | 欧美精品华人在线| 一起洗澡的老师免费播放| 国产亚洲精品成人AV久久| 外女思春台湾三级| 第一福利视频网站在线| 人曽交Z00Z0OA片| beeg xxx日本老师| 男同志在线观看| 97资源总站(中文字幕)| 美女被j进去动态| 在线视频av大全色久久| 久久精品亚洲AV中文2区金莲 | 精品无人区麻豆乱码无限制| 午夜伦理yy44008影院| 嘟嘟嘟影院免费观看视频| 日本乱子伦一区二区三区| 99久久无码一区人妻A片竹菊| 久久偷拍人| 欧美高清vivoesosexo10| 4388成人| 青青草国产自偷拍| 国产AV精品国语对白国产| 午夜亚洲WWW湿好大| 花蝴蝶免费观看影视| 在线观看中文字幕国产| 女人高潮时一吸一夹 | 久久在精品线影院| 99久久国产露脸精品竹菊传煤 | 国产电影一区二区三区| 国内外成人免费在线视频| 夜夜狂射影院欧美极品| 老师那里好大又粗h男男| a视频在线看| 十七岁日本免费完整版BD | 国产99久久久国产精品免费看 | 99在线观看视频| 手机精品在线| 国内精品久久人妻无码HD浪潮| 中文在线观看永久免费|