《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 業界動態 > 這些技巧讓高可靠性嵌入式系統的開發更簡單

這些技巧讓高可靠性嵌入式系統的開發更簡單

2017-06-08
關鍵詞: 嵌入式 互聯網 malloc ROM

       就像很遙遠年代的人們思想還很保守,固守著自己一方凈土獨享著一份安逸??傉J為天圓地方一直在平淡而充實的生活,又好似紅樓夢中的劉姥姥走進大觀園看得眼花繚亂。對于75年以前人傳統觀念還比較濃重,對于那個年代的人來講所受到教育和現在應該說是不一樣的。對于那個時代物資相對比較匱乏,科技相對有些落后沒有現在所謂的大數據、云計算、互聯網和移動互聯網。

timg.jpg

  從規范完善的開發周期到嚴格執行和系統檢查,開發高可靠性嵌入式系統的技術有許多種。本文介紹了7個易操作且可以長久使用的技巧,它們對于確保系統更加可靠地運行并捕獲異常行為大有幫助。

  技巧1——用已知值填充ROM

  軟件開發人員往往都是非常樂觀的一群人,只要讓他們的代碼忠實地長時間地運行就可以了,僅此而已。微控制器跳出應用程序空間并在非預想的代碼空間中執行這種情況似乎是相當少有的。然而,這種情況發生的機會并不比緩存溢出或錯誤指針失去引用少。它確實會發生!發生這種情況后的系統行為將是不確定的,因為默認情況下內存空間都是0xFF,或者由于內存區通常沒有寫過,其中的值可能只有上帝才知道。

  不過有相當完備的linker或IDE技巧可以用來幫助識別這樣的事件并從中恢復系統。技巧就是使用FILL命令對未用ROM填充已知的位模式。要填充未使用的內存,有很多不同的可能組合可以使用,但如果是想建立更加可靠的系統,最明顯的選擇是在這些位置放置ISR fault handler。如果系統出了某些差錯,處理器開始執行程序空間以外的代碼,就會觸發ISR,并在決定校正行動之前提供儲存處理器、寄存器和系統狀態的機會。

  技巧2——檢查應用程序的CRC

  對嵌入式工程師來說一個很大的好處是,我們的IDE和工具鏈可以自動產生應用程序或內存空間校驗和(Checksum),從而根據這個校驗和驗證應用程序是否完好。有趣的是,在許多這些案例中,只有在將程序代碼加載到設備時,才會用到校驗和。

  然而,如果CRC或校驗和保持在內存中,那么驗證應用程序在啟動時(或甚至對長時間運行的系統定期驗證)是否仍然完好是確保意外之事不會發生的極好途徑?,F在一個編程過的應用程序發生改變的概率是很小的,但考慮每年交付的數十億個微控制器以及可能惡劣的工作環境,應用程序崩潰的機會并不是零。更有可能的是,系統中的一個缺陷可能導致某一扇區發生閃存寫入或閃存擦除,從而破壞應用程序的完整性。

  技巧3——在啟動時執行RAM檢查

  為了建立一個更加可靠和扎實的系統,確保系統硬件正常工作非常重要。畢竟硬件會發生故障。(幸運的是軟件永遠不會發生故障,軟件只會做代碼要它做的事,不管是正確的還是錯誤的)。在啟動時驗證RAM的內部或外部沒有問題,是確保硬件可以如預期般運作的一個好方法。

  有許多不同的方法可用于執行RAM檢查,但常用的方法是寫入一個已知的模式,然后等上一小段時間再回讀。結果應該是所讀就是所寫。真相是,在大多數情況下RAM檢查是通過的,這也是我們想要的結果。但也有極小的可能性檢查不通過,這時就為系統標示出硬件問題提供了極好的機會。

  技巧4——使用堆棧監視器

  對許多的嵌入式開發者而言,堆棧似乎是一股相當神秘的力量。當奇怪的事情開始發生,工程師終于被難倒了,他們開始思考,也許堆棧中發生了什么事。結果是盲目地調整堆棧的大小和位置等等。但該錯誤往往是與堆棧無關的,但怎能如此確定?畢竟,有多少工程師真的實際執行過最壞情況下的堆棧大小分析?

  堆棧大小是在編譯時就靜態分配好的,但堆棧是以動態的方式使用的。隨著代碼的執行,應用程序需要的變量、返回的地址和其它信息被不斷存儲在堆棧中。這種機制導致堆棧在其分配的內存中不斷增長。然而,這種增長有時會超出編譯時確定的容量極限,導致堆棧破壞相鄰內存區域的數據。

  絕對確保堆棧正常工作的一種方法是實現堆棧監視器,將它作為系統“保健”代碼的一部分(有多少工程師會這樣做?)。堆棧監視器會在堆棧和“其它”內存區域之間創建一個緩沖區域,并填充已知的位模式。然后監視器會不斷的監視圖案是否有任何變化。如果該位模式發生了改變,那就意味著堆棧增長得太大了,即將要把系統推向黑暗地獄!此時監視器可以記錄事件的發生、系統狀態以及任何其它有用的數據,供日后用于問題的診斷。

  大多數實時操作系統(RTOS)或實現了內存保護單元(MPU)的微控制器系統中都提供有堆棧監視器??膳碌氖?,這些功能默認都是關閉狀態,或者經常被開發人員有意關閉。在網絡上快速搜尋一下可以發現,很多人建議關閉實時操作系統中的堆棧監視器以節省56字節的閃存空間。等等,這可是得不償失的做法!

  技巧5 - 使用MPU

  在過去,是很難在一個小而廉價的微控制器中找到內存保護單元(MPU)的,但這種情況已經開始改變。現在從高端到低端的微控制器都已經有MPU,而這些MPU為嵌入式軟件開發人員提供了一個可以大幅提高其固件(firmware)魯棒性(robustness)的機會。

  MPU 已逐漸與操作系統耦合,以便建立內存空間,其中的處理都分開,或任務可執行其代碼,而不用擔心被stomped on。倘若真有事情發生,不受控制的處理會被取消,也會執行其他的保護措施。請留意帶有這種組件的微控制器,如果有,請多加利用它的這種特性。

  技巧6 - 建立一個強大的看門狗系統

  你經常會發現的一種總是最受喜愛的看門狗(watchdog)實現是,在看門狗被啟用之處(這是一個很好的開始),但也是可以用周期性定時器將該看門狗清零之處;定時器的啟用是完全與程序中出現的任何情況隔離的。使用看門狗的目的是協助確保如果出現錯誤,看門狗不會被清零,即當工作暫停,系統會被迫去執行硬件重設定(hardware reset),以便恢復。使用與系統活動獨立的定時器可以讓看門狗保持清零,即使系統已失效。

  對應用任務如何整合到看門狗系統中,嵌入式開發人員需要仔細考慮和設計。例如,有種技術可能可以讓每個在一定時期內運行的任務標示它們可以成功地完成其任 務。在此事件中,看門狗不被清零,強制被復位。還有一些比較先進的技術,像是使用外部看門狗處理器,它可用來監視主處理器如何表現,反之亦然。

  對一個可靠的系統而言,建立一個強大的看門狗系統是很重要的。由于有太多的技術,難以在這幾個段落中完全涵蓋,但針對此一議題,筆者未來還會發表相關的文章。

  技巧7 - 避免易失存儲器分配

  不習慣在資源有限環境下工作的工程師,可能會試圖使用其編程語言的特性,這種語言讓他們可以使用易失存儲器分配。畢竟,這是一種常在計算器系統中使用的技術,在計算器系統中,只有在有必要時,內存才會被分配。例如,以C開發時,工程師可能傾向于使用malloc來分配在堆(heap)上的空間。有一個操 作會執行,一旦完成,可以使用free將被分配的內存返回,以便堆的使用。

  在資源受限的系統,這可 能是一場災難!使用易失存儲器分配的其中一個問題是,錯誤或不當的技術可能會導致內存泄漏或內存碎片。如果出現這些問題時,大多數的嵌入式系統并沒有 資源或知識來監視堆或妥善地處理它。而當它們發生時,如果應用程序提出對空間的要求,但卻沒有所請求的空間可以使用,會發生什么事呢?

  使用易失存儲器分配所產生的問題是很復雜的,要妥善處理這些問題,可以說是一個噩夢!一種替代的方法是,直接以靜態的方式,簡化內存的分配。例如,只要在 程序中簡單地建立一個大小為256字節長的緩沖區,而不是經由malloc請求這樣大小的內存緩沖區。此一分配的內存可在整個應用程序的生命周期期 間保持,且不會有堆或內存碎片問題方面的顧慮。

  結論

  這些都只是一些可以讓開發人員開始建立更可靠嵌入式系統的方法。另外還有很多其他技術,例如利用良好的編碼標準、位翻轉的監測、執行數組和指針邊界檢查,及使用斷言等。所有這些技術都是讓設計者可以開發出可靠性更高嵌入式系統的秘訣。

本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。
热re99久久精品国产66热_欧美小视频在线观看_日韩成人激情影院_庆余年2免费日韩剧观看大牛_91久久久久久国产精品_国产原创欧美精品_美女999久久久精品视频_欧美大成色www永久网站婷_国产色婷婷国产综合在线理论片a_国产精品电影在线观看_日韩精品视频在线观看网址_97在线观看免费_性欧美亚洲xxxx乳在线观看_久久精品美女视频网站_777国产偷窥盗摄精品视频_在线日韩第一页
  • <strike id="ygamy"></strike>
  • 
    
      • <del id="ygamy"></del>
        <tfoot id="ygamy"></tfoot>
          <strike id="ygamy"></strike>
          欧美特黄一级大片| 亚洲成色999久久网站| 久久久久综合| 麻豆成人小视频| 9久草视频在线视频精品| 欧美午夜www高清视频| 一色屋精品视频在线看| 欧美国产精品一区| 日韩亚洲在线| 99精品国产热久久91蜜凸| 国产网站欧美日韩免费精品在线观看| 久久午夜精品一区二区| 牛人盗摄一区二区三区视频| 亚洲精品欧洲| 欧美日韩精品欧美日韩精品| 亚洲观看高清完整版在线观看| 国产精品美女在线观看| 亚洲精品中文字幕女同| 亚洲国产小视频在线观看| 国产亚洲精品久久久| 影视先锋久久| 亚洲第一毛片| 在线 亚洲欧美在线综合一区| 欧美一区二区高清在线观看| 欧美二区在线看| 国产日产高清欧美一区二区三区| 在线一区二区三区做爰视频网站| 国产精品福利影院| 欧美精品一区二区视频| 国产精品亚洲综合色区韩国| 激情久久综艺| 国产精品电影网站| 亚洲国产精品ⅴa在线观看| 亚洲美女免费视频| 欧美色欧美亚洲另类七区| 欧美在线播放一区二区| 国产一区二区日韩| 午夜久久久久| 午夜精品亚洲一区二区三区嫩草| 亚洲欧美大片| 亚洲综合色在线| 国产精品www.| 国产精品免费在线| 欧美日韩国产影院| 中日韩午夜理伦电影免费| 欧美成人一区在线| 欧美三级特黄| 亚欧成人精品| 久久er精品视频| 国产性猛交xxxx免费看久久| 国产亚洲一二三区| 亚洲精品三级| 欧美激情亚洲视频| 久久婷婷综合激情| 国产午夜久久久久| 国产女主播一区二区三区| 欧美网站在线观看| 国产精品二区在线观看| 亚洲女人小视频在线观看| 国产欧美午夜| 亚洲高清不卡| 久久精品亚洲乱码伦伦中文| 在线亚洲精品| 99精品视频免费在线观看| 日韩视频永久免费| 猛男gaygay欧美视频| 悠悠资源网亚洲青| 欧美在线亚洲在线| 欧美日韩国产色综合一二三四| 美女诱惑黄网站一区| 欧美高清在线观看| 亚洲欧洲在线观看| 国产精品久久久久影院亚瑟| 久久在线免费观看视频| 国产精品午夜久久| 欧美大胆成人| 亚洲电影免费在线| 国产精品视频yy9099| 国产手机视频精品| 国产精品成人久久久久| 一区在线视频| 久久久久久999| 欧美一级视频一区二区| 国产精品一卡二| 欧美凹凸一区二区三区视频| 一区二区三区四区国产| 日韩午夜三级在线| 亚洲女女女同性video| 精品999在线观看| 欧美在线免费视屏| 欧美三级在线视频| 亚洲欧美在线视频观看| 一区二区三区四区国产| 国产中文一区二区三区| 欧美麻豆久久久久久中文| 亚洲乱码国产乱码精品精98午夜| 欧美一区二区免费| 久久九九热免费视频| 亚洲校园激情| 性色av一区二区怡红| 好吊成人免视频| 午夜日韩av| 国产精品久久波多野结衣| 国产精品香蕉在线观看| 伊人久久av导航| 一区二区三区精品视频在线观看| 欧美三级乱人伦电影| 国产精品夜夜嗨| 欧美日本在线视频| 欧美日韩爆操| 亚洲精品乱码久久久久久久久| 亚洲精品国产精品国产自| 欧美肉体xxxx裸体137大胆| 欧美在线高清| 国产一区二区高清视频| 亚洲网在线观看| 国产中文一区二区三区| 一区二区三区在线免费观看| 一本色道久久99精品综合| 在线观看欧美日韩国产| 亚洲国产精品久久久久秋霞影院| 欧美网站大全在线观看| 国产精品乱人伦中文| 日韩午夜三级在线| 欧美一区二区三区婷婷月色| 久久综合色8888| 久久久久久国产精品mv| 久久亚洲私人国产精品va媚药| 国产精品一区免费观看| 久久永久免费| 欧美成人一区二区三区片免费| 亚洲大片精品永久免费| 亚洲免费综合| 在线观看福利一区| 在线观看一区二区视频| 国产精品国产a级| 欧美韩日高清| 国产一区二区三区久久久久久久久| 亚洲欧洲一区二区天堂久久| 欧美黄免费看| 亚洲欧美清纯在线制服| 亚洲色图制服丝袜| 欧美不卡视频| 亚洲综合久久久久| 免费日韩成人| 久久精品首页| 国产精品夫妻自拍| 国产亚洲日本欧美韩国| 亚洲欧洲另类国产综合| 欧美伦理91| 欧美一级久久久| 在线观看欧美一区| 国模精品娜娜一二三区| 欧美日本一道本| 国产欧美亚洲精品| 亚洲区中文字幕| 欧美成在线视频| 激情久久综合| 久久久999精品视频| 久久伊人亚洲| 久久精品视频在线观看| 国产三级欧美三级| 午夜亚洲性色视频| 亚洲人成久久| 国产欧美日韩一区二区三区在线| 激情五月婷婷综合| 亚洲天堂av电影| 亚洲欧美一区二区三区极速播放| 99国产精品99久久久久久| 欧美色视频一区| 欧美欧美全黄| 欧美日韩一区二区三区四区五区| 美玉足脚交一区二区三区图片| 国产欧美在线看| 国产精品成人aaaaa网站| 老司机精品视频网站| 久久久久久成人| 亚洲大片免费看| 亚洲人成精品久久久久| 久久久福利视频| 国产精品国产成人国产三级| 羞羞色国产精品| 国内激情久久| 国产女主播在线一区二区| 亚洲国产精品悠悠久久琪琪| 国产欧美日韩不卡免费| 欧美精品在线视频| 亚洲国产国产亚洲一二三| 亚洲欧美日韩在线观看a三区| 国内成+人亚洲+欧美+综合在线| 欧美午夜在线视频| 欧美精品一卡二卡| 亚洲在线成人| 在线观看亚洲视频啊啊啊啊| 激情久久久久| 国产一区清纯| 久久夜色精品一区| 欧美美女bb生活片| 国产一区二区久久| 性视频1819p久久| 国产一区视频网站| 在线看日韩av| 一区二区三区 在线观看视频| 亚洲欧洲在线视频| 久久国产88| 亚洲国产精品久久久久秋霞影院| 欧美在线视频在线播放完整版免费观看| 亚洲精品日韩激情在线电影| 欧美gay视频激情| 午夜影视日本亚洲欧洲精品| 国产欧美日韩精品专区| 亚洲欧美日韩精品久久亚洲区| 国产老女人精品毛片久久| 国产一区二区三区四区老人| 欧美午夜一区二区三区免费大片| 久久国产精品色婷婷| 99在线精品视频| 午夜亚洲精品| 亚洲第一在线综合在线| 激情综合色综合久久综合| 国产老女人精品毛片久久| 韩国精品久久久999| 亚洲国产成人精品女人久久久| 欧美日韩三级一区二区| 亚洲欧洲另类国产综合| 亚洲精品视频在线观看免费| 日韩一级大片在线| 国产日韩精品视频一区二区三区| 亚洲综合色噜噜狠狠| 久久精品国产亚洲高清剧情介绍| 欧美三级免费| 亚洲成色999久久网站| 国产欧美日韩综合一区在线观看| 欧美日韩国产在线播放| 欧美精品 日韩| 国产美女在线精品免费观看| 国产九色精品成人porny| 久久精品五月| 香蕉久久精品日日躁夜夜躁| 亚洲欧洲精品一区二区三区不卡| 一区二区三区 在线观看视频| 欧美日韩国产综合新一区| 欧美专区18| 日韩网站在线观看| 国产欧美精品日韩区二区麻豆天美| 亚洲国产裸拍裸体视频在线观看乱了中文| 99re6热在线精品视频播放速度| 久久婷婷国产综合国色天香| 亚洲欧洲午夜| 亚欧美中日韩视频| 精品av久久707| 久久久成人精品| 亚洲乱码精品一二三四区日韩在线| 欧美视频日韩视频在线观看| 亚洲人成毛片在线播放女女| 黑人巨大精品欧美一区二区小视频| 亚洲欧美国产高清va在线播| 中文久久精品| 欧美伊人精品成人久久综合97| 久久人体大胆视频| 欧美久久一级| 亚洲精品老司机| 老司机精品视频网站| 亚洲福利国产精品| 噜噜噜躁狠狠躁狠狠精品视频| 久久精品视频va| 久久精品视频在线| 国产精品久久久久久久久借妻| 销魂美女一区二区三区视频在线| 国产精品高潮粉嫩av| 一区二区欧美日韩视频| 一本到12不卡视频在线dvd| 日韩午夜在线播放| 国产精品女主播一区二区三区| 在线播放国产一区中文字幕剧情欧美| 午夜一区二区三区在线观看| 国产精品日日做人人爱| 在线视频欧美精品| 亚洲无限av看| 亚洲娇小video精品| 欧美精品一区视频| 亚洲欧美日韩在线一区| 亚洲国产欧美国产综合一区| 国产专区综合网| 欧美华人在线视频| 午夜一区二区三区不卡视频| 亚洲欧美日韩一区在线| 久久精品视频在线| 久久综合九色综合欧美就去吻| 亚洲精品欧美激情| 夜夜精品视频一区二区| 国产精品久久一区二区三区| 国内精品久久久久久久影视麻豆| 欧美激情中文字幕乱码免费| 国产精品日本一区二区| 欧美福利视频在线观看| 99v久久综合狠狠综合久久| 亚洲女ⅴideoshd黑人| 亚洲激情在线| 国产手机视频精品| 亚洲欧美在线播放| 欧美不卡激情三级在线观看| 久久天天躁夜夜躁狠狠躁2022| 黄色日韩网站视频| 亚洲一区二区三区在线看| 久久综合综合久久综合| 国产日韩欧美视频| 国产在线国偷精品产拍免费yy| 狠狠爱成人网| 国产精品成人一区二区网站软件| 亚洲校园激情| 中文精品一区二区三区| 亚洲激情精品| 亚洲香蕉成视频在线观看| 六十路精品视频| 欧美日韩国产一区二区| 欧美成ee人免费视频| 狠狠色狠狠色综合日日小说| 一本色道久久综合一区| 国产精品99免费看| 国产精品久久久久久av福利软件| 日韩网站在线观看| av成人福利| 在线欧美日韩国产| 欧美午夜国产| 久久亚洲影音av资源网| 欧美人体xx| 欧美在线日韩在线|