<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 開發(fā)高可靠性嵌入式系統(tǒng)的7個技巧

          開發(fā)高可靠性嵌入式系統(tǒng)的7個技巧

          作者: 時間:2016-09-12 來源:網(wǎng)絡(luò) 收藏

          對應(yīng)用任務(wù)如何整合到看門狗系統(tǒng)中,開發(fā)人員需要仔細(xì)考慮和設(shè)計。例如,有種技術(shù)可能可以讓每個在一定時期內(nèi)運行的任務(wù)標(biāo)示它們可以成功地完成其任 務(wù)。在此事件中,看門狗不被清零,強制被復(fù)位。還有一些比較先進(jìn)的技術(shù),像是使用外部看門狗處理器,它可用來監(jiān)視主處理器如何表現(xiàn),反之亦然。

          本文引用地址:http://www.ex-cimer.com/article/201609/303674.htm

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

          #7 - 避免易失存儲器分配

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

          在資源受限的系統(tǒng),這可 能是一場災(zāi)難!使用易失存儲器分配的其中一個問題是,錯誤或不當(dāng)?shù)募夹g(shù)可能會導(dǎo)致內(nèi)存泄漏或內(nèi)存碎片。如果出現(xiàn)這些問題時,大多數(shù)的系統(tǒng)并沒有 資源或知識來監(jiān)視堆或妥善地處理它。而當(dāng)它們發(fā)生時,如果應(yīng)用程序提出對空間的要求,但卻沒有所請求的空間可以使用,會發(fā)生什么事呢?

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

          結(jié)論

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


          上一頁 1 2 下一頁

          關(guān)鍵詞: 高可靠性 嵌入式 技巧

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();