1. gzyueqian
      13352868059

      粵嵌教育開(kāi)講啦!嵌入式開(kāi)發(fā)學(xué)習(xí)路線集錦(上)

      更新時(shí)間: 2017-04-26 15:00:11來(lái)源: 粵嵌教育瀏覽量:4402

        以前,我們連嵌入式是什么都不知道,如今,嵌入式培訓(xùn)的火熱也推動(dòng)著嵌入式行業(yè)的發(fā)展。可以看到的是,嵌入式的出現(xiàn)對(duì)科技發(fā)展有著重大的意義。嵌入式從規(guī)范完善的開(kāi)發(fā)周期到嚴(yán)格執(zhí)行和系統(tǒng)檢查,開(kāi)發(fā)高可靠性嵌入式系統(tǒng)的技術(shù)有許多種,嵌入式的學(xué)習(xí)路線大同小異。這里小編推薦幾個(gè)方法確保系統(tǒng)更加可靠地運(yùn)行并捕獲異常行為。

         1、用已知值填充ROM

        軟件開(kāi)發(fā)人員往往都是非常樂(lè)觀的一群人,只要讓他們的代碼忠實(shí)地長(zhǎng)時(shí)間地運(yùn)行就可以了,僅此而已。微控制器跳出應(yīng)用程序空間并在非預(yù)想的代碼空間中執(zhí)行這種情況似乎是相當(dāng)少有的。然而,這種情況發(fā)生的機(jī)會(huì)并不比緩存溢出或錯(cuò)誤指針失去引用少。技巧就是使用FILL命令對(duì)未用ROM填充已知的位模式。要填充未使用的內(nèi)存,有很多不同的可能組合可以使用,但如果是想建立更加可靠的系統(tǒng),明顯的選擇是在這些位置放置ISRfaulthandler。如果系統(tǒng)出了某些差錯(cuò),處理器開(kāi)始執(zhí)行程序空間以外的代碼,就會(huì)觸發(fā)ISR,并在決定校正行動(dòng)之前提供儲(chǔ)存處理器、寄存器和系統(tǒng)狀態(tài)的機(jī)會(huì)。

        2、檢查應(yīng)用程序的CRC

        對(duì)嵌入式工程師來(lái)說(shuō)一個(gè)很大的好處是,IDE和工具鏈可以自動(dòng)產(chǎn)生應(yīng)用程序或內(nèi)存空間校驗(yàn)和Checksum,從而根據(jù)這個(gè)校驗(yàn)和驗(yàn)證應(yīng)用程序是否完好。然而,如果CRC或校驗(yàn)和保持在內(nèi)存中,那么驗(yàn)證應(yīng)用程序在啟動(dòng)時(shí)(或甚至對(duì)長(zhǎng)時(shí)間運(yùn)行的系統(tǒng)定期驗(yàn)證)是否仍然完好是確保意外之事不會(huì)發(fā)生的極好途徑。現(xiàn)在一個(gè)編程過(guò)的應(yīng)用程序發(fā)生改變的概率是很小的,但考慮每年交付的數(shù)十億個(gè)微控制器以及可能惡劣的工作環(huán)境,應(yīng)用程序崩潰的機(jī)會(huì)并不是零。更有可能的是,系統(tǒng)中的一個(gè)缺陷可能導(dǎo)致某一扇區(qū)發(fā)生閃存寫(xiě)入或閃存擦除,從而破壞應(yīng)用程序的完整性。

        3、在啟動(dòng)時(shí)執(zhí)行RAM檢查

        為了建立一個(gè)更加可靠和扎實(shí)的系統(tǒng),確保系統(tǒng)硬件正常工作非常重要。畢竟硬件會(huì)發(fā)生故障。在啟動(dòng)時(shí)驗(yàn)證RAM的內(nèi)部或外部沒(méi)有問(wèn)題,是確保硬件可以如預(yù)期般運(yùn)作的一個(gè)好方法。有許多不同的方法可用于執(zhí)行RAM檢查,常用的方法是寫(xiě)入一個(gè)已知的模式,然后等上一小段時(shí)間再回讀。

        4、使用堆棧監(jiān)視器

        對(duì)許多的嵌入式開(kāi)發(fā)者而言,堆棧似乎是一股相當(dāng)神秘的力量。隨著代碼的執(zhí)行,應(yīng)用程序需要的變量、返回的地址和其它信息被不斷存儲(chǔ)在堆棧中。這種機(jī)制導(dǎo)致堆棧在其分配的內(nèi)存中不斷增長(zhǎng)。然而,這種增長(zhǎng)有時(shí)會(huì)超出編譯時(shí)確定的容量極限,導(dǎo)致堆棧破壞相鄰內(nèi)存區(qū)域的數(shù)據(jù)。確保堆棧正常工作的一種方法是實(shí)現(xiàn)堆棧監(jiān)視器,將它作為系統(tǒng)“保健”代碼的一部分。堆棧監(jiān)視器會(huì)在堆棧和“其它”內(nèi)存區(qū)域之間創(chuàng)建一個(gè)緩沖區(qū)域,并填充已知的位模式。然后監(jiān)視器會(huì)不斷的監(jiān)視圖案是否有任何變化。如果該位模式發(fā)生了改變,那就意味著堆棧增長(zhǎng)得太大了,即將要把系統(tǒng)推向黑暗地獄!此時(shí)監(jiān)視器可以記錄事件的發(fā)生、系統(tǒng)狀態(tài)以及任何其它有用的數(shù)據(jù),供日后用于問(wèn)題的診斷。

        嵌入式學(xué)習(xí)過(guò)程中找到技巧會(huì)使得整個(gè)學(xué)習(xí)都變的有趣,繼續(xù)關(guān)注粵嵌官網(wǎng),在下期,我們還將分享嵌入式開(kāi)發(fā)學(xué)習(xí)路線集錦(下)哦!如果你有興趣了解嵌入式培訓(xùn),請(qǐng)點(diǎn)擊在線咨詢(xún),總會(huì)有你意想不到的驚喜!




      免費(fèi)預(yù)約試聽(tīng)課

      亚洲另类欧美综合久久图片区_亚洲中文字幕日产无码2020_欧美日本一区二区三区桃色视频_亚洲AⅤ天堂一区二区三区

      
      

      1. 亚洲欧洲国产愉拍 | 夜夜夜久久久综合视频 | 一级a做视频免费观看日本 亚洲精品国偷自产在线99人热 | 亚洲精品国产高清一线久久 | 婷婷国产精品一区二区免费 | 性欧美俄罗斯在线视频 |