資料介紹
就像很遙遠(yuǎn)年代的人們思想還很保守,固守著自己一方凈土獨(dú)享著一份安逸。總認(rèn)為天圓地方一直在平淡而充實(shí)的生活,又好似紅樓夢中的劉姥姥走進(jìn)大觀園看得眼花繚亂。對于75年以前人傳統(tǒng)觀念還比較濃重,對于那個(gè)年代的人來講所受到教育和現(xiàn)在應(yīng)該說是不一樣的。對于那個(gè)時(shí)代物資相對比較匱乏,科技相對有些落后沒有現(xiàn)在所謂的大數(shù)據(jù)、云計(jì)算、互聯(lián)網(wǎng)和移動(dòng)互聯(lián)網(wǎng)。
從規(guī)范完善的開發(fā)周期到嚴(yán)格執(zhí)行和系統(tǒng)檢查,開發(fā)高可靠性嵌入式系統(tǒng)的技術(shù)有許多種。本文介紹了7個(gè)易操作且可以長久使用的技巧,它們對于確保系統(tǒng)更加可靠地運(yùn)行并捕獲異常行為大有幫助。
技巧1——用已知值填充ROM
軟件開發(fā)人員往往都是非常樂觀的一群人,只要讓他們的代碼忠實(shí)地長時(shí)間地運(yùn)行就可以了,僅此而已。微控制器跳出應(yīng)用程序空間并在非預(yù)想的代碼空間中執(zhí)行這種情況似乎是相當(dāng)少有的。然而,這種情況發(fā)生的機(jī)會(huì)并不比緩存溢出或錯(cuò)誤指針失去引用少。它確實(shí)會(huì)發(fā)生!發(fā)生這種情況后的系統(tǒng)行為將是不確定的,因?yàn)槟J(rèn)情況下內(nèi)存空間都是0xFF,或者由于內(nèi)存區(qū)通常沒有寫過,其中的值可能只有上帝才知道。
不過有相當(dāng)完備的linker或IDE技巧可以用來幫助識(shí)別這樣的事件并從中恢復(fù)系統(tǒng)。技巧就是使用FILL命令對未用ROM填充已知的位模式。要填充未使用的內(nèi)存,有很多不同的可能組合可以使用,但如果是想建立更加可靠的系統(tǒng),最明顯的選擇是在這些位置放置ISR fault handler。如果系統(tǒng)出了某些差錯(cuò),處理器開始執(zhí)行程序空間以外的代碼,就會(huì)觸發(fā)ISR,并在決定校正行動(dòng)之前提供儲(chǔ)存處理器、寄存器和系統(tǒng)狀態(tài)的機(jī)會(huì)。
技巧2——檢查應(yīng)用程序的CRC
對嵌入式工程師來說一個(gè)很大的好處是,我們的IDE和工具鏈可以自動(dòng)產(chǎn)生應(yīng)用程序或內(nèi)存空間校驗(yàn)和(Checksum),從而根據(jù)這個(gè)校驗(yàn)和驗(yàn)證應(yīng)用程序是否完好。有趣的是,在許多這些案例中,只有在將程序代碼加載到設(shè)備時(shí),才會(huì)用到校驗(yàn)和。
然而,如果CRC或校驗(yàn)和保持在內(nèi)存中,那么驗(yàn)證應(yīng)用程序在啟動(dòng)時(shí)(或甚至對長時(shí)間運(yùn)行的系統(tǒng)定期驗(yàn)證)是否仍然完好是確保意外之事不會(huì)發(fā)生的極好途徑。現(xiàn)在一個(gè)編程過的應(yīng)用程序發(fā)生改變的概率是很小的,但考慮每年交付的數(shù)十億個(gè)微控制器以及可能惡劣的工作環(huán)境,應(yīng)用程序崩潰的機(jī)會(huì)并不是零。更有可能的是,系統(tǒng)中的一個(gè)缺陷可能導(dǎo)致某一扇區(qū)發(fā)生閃存寫入或閃存擦除,從而破壞應(yīng)用程序的完整性。
技巧3——在啟動(dòng)時(shí)執(zhí)行RAM檢查
為了建立一個(gè)更加可靠和扎實(shí)的系統(tǒng),確保系統(tǒng)硬件正常工作非常重要。畢竟硬件會(huì)發(fā)生故障。(幸運(yùn)的是軟件永遠(yuǎn)不會(huì)發(fā)生故障,軟件只會(huì)做代碼要它做的事,不管是正確的還是錯(cuò)誤的)。在啟動(dòng)時(shí)驗(yàn)證RAM的內(nèi)部或外部沒有問題,是確保硬件可以如預(yù)期般運(yùn)作的一個(gè)好方法。
有許多不同的方法可用于執(zhí)行RAM檢查,但常用的方法是寫入一個(gè)已知的模式,然后等上一小段時(shí)間再回讀。結(jié)果應(yīng)該是所讀就是所寫。真相是,在大多數(shù)情況下RAM檢查是通過的,這也是我們想要的結(jié)果。但也有極小的可能性檢查不通過,這時(shí)就為系統(tǒng)標(biāo)示出硬件問題提供了極好的機(jī)會(huì)。
技巧4——使用堆棧監(jiān)視器
對許多的嵌入式開發(fā)者而言,堆棧似乎是一股相當(dāng)神秘的力量。當(dāng)奇怪的事情開始發(fā)生,工程師終于被難倒了,他們開始思考,也許堆棧中發(fā)生了什么事。結(jié)果是盲目地調(diào)整堆棧的大小和位置等等。但該錯(cuò)誤往往是與堆棧無關(guān)的,但怎能如此確定?畢竟,有多少工程師真的實(shí)際執(zhí)行過最壞情況下的堆棧大小分析?
- 7個(gè)技巧:提高嵌入式系統(tǒng)的可靠性
- 嵌入式系統(tǒng)開發(fā)概述
- 嵌入式系統(tǒng)開發(fā)設(shè)計(jì)
- ARM嵌入式系統(tǒng)開發(fā)_Android應(yīng)用開發(fā)入門(基礎(chǔ)版) 0次下載
- 嵌入式系統(tǒng)開發(fā)大作業(yè)
- 7個(gè)技巧開發(fā)更高可靠性的嵌入式系統(tǒng)資料下載
- 嵌入式教程之高可靠嵌入式系統(tǒng)設(shè)計(jì)的詳細(xì)資料說明 11次下載
- 嵌入式系統(tǒng)硬件可靠性分析 1次下載
- OMAP的嵌入式系統(tǒng)開發(fā) 7次下載
- 開發(fā)高可靠性的嵌入式系統(tǒng)技巧 0次下載
- 嵌入式系統(tǒng)軟件可靠性設(shè)計(jì)
- 嵌入式系統(tǒng)的系統(tǒng)測試和可靠性評估
- 嵌入式軟件的安全可靠性控制
- 嵌入式系統(tǒng)的系統(tǒng)測試和可靠性評估
- 嵌入式系統(tǒng)開發(fā)
- 嵌入式軟件的可靠性設(shè)計(jì) 840次閱讀
- 關(guān)于嵌入式系統(tǒng)開發(fā)必備的基礎(chǔ)知識(shí) 2875次閱讀
- 怎樣開發(fā)高可靠性嵌入式系統(tǒng)? 555次閱讀
- 嵌入式系統(tǒng)的七個(gè)開發(fā)技巧資料合集 3098次閱讀
- 嵌入式系統(tǒng)開發(fā)七大技巧 3090次閱讀
- 基于嵌入式技術(shù)的LED顯示屏控制系統(tǒng)淺析 3189次閱讀
- 基于Matlab/RTW實(shí)現(xiàn)實(shí)時(shí)仿真與嵌入式系統(tǒng)開發(fā)設(shè)計(jì) 4642次閱讀
- 關(guān)于軍用嵌入式系統(tǒng)的可靠性,你知道多少呢? 2437次閱讀
- 一文知道嵌入式存儲(chǔ)交換技術(shù)的可靠性如何增加 2016次閱讀
- 嵌入式系統(tǒng)開發(fā)學(xué)習(xí)心得體會(huì)_經(jīng)驗(yàn)總結(jié) 3w次閱讀
- 嵌入式系統(tǒng)開發(fā)的7個(gè)易操作且可以長久使用的技巧 4977次閱讀
- 漲姿勢,嵌入式系統(tǒng)開發(fā)的7大技巧 ,你了解幾個(gè)? 830次閱讀
- 嵌入式系統(tǒng)開發(fā)的流程和提升可靠性的七大技巧 1041次閱讀
- 嵌入式系統(tǒng)開發(fā)實(shí)踐經(jīng)驗(yàn)分享 2465次閱讀
- 典型的嵌入式系統(tǒng)設(shè)計(jì) 2716次閱讀
下載排行
本周
- 1涂鴉各WiFi模塊原理圖加PCB封裝
- 11.75 MB | 76次下載 | 1 積分
- 2錦銳科技CA51F2 SDK開發(fā)包
- 24.06 MB | 29次下載 | 1 積分
- 3錦銳CA51F005 SDK開發(fā)包
- 19.47 MB | 3次下載 | 1 積分
- 4蘋果iphone 11電路原理圖
- 4.98 MB | 3次下載 | 2 積分
- 5基礎(chǔ)模擬電子電路
- 3.80 MB | 3次下載 | 1 積分
- 6RA-Eco-RA6M4-100PIN-V1.0開發(fā)板資料
- 34.89 MB | 1次下載 | 免費(fèi)
- 7STM32F3系列、STM32F4系列、STM32L4系列和STM32L4+系列Cortex-M4編程手冊
- 3.32 MB | 1次下載 | 免費(fèi)
- 8聯(lián)想A820t手機(jī)維修圖紙包括主板原理圖 尾板原理圖 點(diǎn)位圖
- 0.62 MB | 次下載 | 5 積分
本月
- 1AI智能眼鏡產(chǎn)業(yè)鏈分析
- 4.43 MB | 383次下載 | 免費(fèi)
- 2蘇泊爾電磁爐線路的電路原理圖資料合集
- 2.02 MB | 296次下載 | 5 積分
- 3貼片三極管上的印字與真實(shí)名稱的對照表詳細(xì)說明
- 0.50 MB | 94次下載 | 1 積分
- 4長虹液晶電視R-HS310B-5HF01的電源板電路原理圖
- 0.46 MB | 91次下載 | 5 積分
- 5涂鴉各WiFi模塊原理圖加PCB封裝
- 11.75 MB | 76次下載 | 1 積分
- 6錦銳科技CA51F2 SDK開發(fā)包
- 24.06 MB | 29次下載 | 1 積分
- 7AO4803A雙P通道增強(qiáng)型場效應(yīng)晶體管的數(shù)據(jù)手冊
- 0.11 MB | 28次下載 | 2 積分
- 8長虹液晶彩電LS29機(jī)芯的技術(shù)資料說明
- 3.42 MB | 16次下載 | 2 積分
總榜
- 1matlab軟件下載入口
- 未知 | 935127次下載 | 10 積分
- 2開源硬件-PMP21529.1-4 開關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計(jì)
- 1.48MB | 420064次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233089次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191388次下載 | 10 積分
- 5十天學(xué)會(huì)AVR單片機(jī)與C語言視頻教程 下載
- 158M | 183342次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81588次下載 | 10 積分
- 7Keil工具M(jìn)DK-Arm免費(fèi)下載
- 0.02 MB | 73815次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65988次下載 | 10 積分
評論