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

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何成為更好的防御性程序員 5個小技巧

PCB線路板打樣 ? 來源:LONG ? 2019-08-09 10:18 ? 次閱讀

在實驗室中有效的方法并不總是在現(xiàn)場工作,通常是由于意外的交互和未發(fā)現(xiàn)的錯誤。防御性編程可以幫助提高設(shè)計的彈性,但開發(fā)能夠處理不可預見情況的嵌入式軟件并非易事;它需要紀律和深謀遠慮。以下是幫助開發(fā)人員成為更好的防御性程序員的五個技巧。

技巧1 -校驗和或CRC數(shù)據(jù)

使用校驗和和循環(huán)冗余校驗( CRC)算法是開發(fā)人員驗證通過串行鏈路發(fā)送的數(shù)據(jù)確實正確的好方法。經(jīng)過審查的嵌入式系統(tǒng)在測試臺的受控環(huán)境中始終表現(xiàn)如預期。然而,一旦系統(tǒng)被釋放到野外,系統(tǒng)運行的環(huán)境就變得非常未知。嘈雜的環(huán)境可能會產(chǎn)生通信噪聲,導致位翻轉(zhuǎn)和誤讀數(shù)據(jù)。檢測此損壞數(shù)據(jù)的最佳希望是通過使用校驗和或CRC對數(shù)據(jù)進行健全性檢查。

提示2 -按合同設(shè)計

按合同設(shè)計是一種開發(fā)軟件的方法,可以生成高度定義的軟件界面,每個函數(shù)都與之相關(guān)聯(lián)具有明確的前提條件和后置條件。我們的想法是,如果應用程序要調(diào)用特定函數(shù),則調(diào)用應用程序必須滿足函數(shù)的前置條件才能獲得有效的響應或操作。按合同設(shè)計對開發(fā)人員來說可能是一個強大的工具,因為它明確指定了函數(shù)期望接收的內(nèi)容以及有效前置條件下的保證輸出。由于期望不是“在線之間讀取”,因此調(diào)用該函數(shù)的開發(fā)人員確切地知道了使用該函數(shù)的期望是什么。

技巧3 -使用斷言

斷言宏是開發(fā)人員驗證其應用假設(shè)的好方法在應用程序中的給定點。斷言的使用對于在bug發(fā)生時捕獲程序中的錯誤和意外行為非常有用。斷言甚至可以在契約式設(shè)計環(huán)境中使用,以驗證合同的前提條件和后置條件是否已得到滿足。有關(guān)在嵌入式軟件中使用斷言的介紹,請考慮閱讀8個使用C中的斷言和何時斷言或不斷言來壓縮錯誤的提示。

提示4 -檢查指針和緩沖區(qū)

指針和緩沖區(qū)是開發(fā)人員似乎總是遇到麻煩的兩個地方。在C中開發(fā)嵌入式系統(tǒng)時,很容易意外地取消引用NULL指針或溢出緩沖區(qū)。防御程序員應該在取消引用之前檢查指針的有效性。指針是否為NULL?不要去除它!存儲在指針中的值是否為有效值?如果是,則取消引用。

指針算法和數(shù)組的使用也很危險。開發(fā)人員應該在緩沖區(qū)和指針算術(shù)運算中添加邊界檢查,以確保結(jié)果保留在它們應該的內(nèi)存空間內(nèi)。意外地僅通過一個字節(jié)覆蓋內(nèi)存可能會對嵌入式系統(tǒng)產(chǎn)生災難性后果,更重要的是會對其用戶造成災難性后果。

提示5 -使用堆棧監(jiān)視器

執(zhí)行最壞情況的堆棧分析并正確調(diào)整堆棧大小是一項艱巨的任務。通常,堆棧的大小要么保留在編譯器的默認設(shè)置中,要么開發(fā)人員在一張紙上寫下幾個可能的值并使用“eeny meeny miny moe”技術(shù)。這兩種技術(shù)都不夠,堆棧溢出的最壞情況成為現(xiàn)實。

開發(fā)人員可以通過監(jiān)視此類事件來幫助防止堆棧溢出。大多數(shù)實時操作系統(tǒng)都內(nèi)置了堆棧監(jiān)視器。啟用堆棧監(jiān)視器只不過是使用RTOS的配置調(diào)整宏。在裸機系統(tǒng)中,開發(fā)人員需要更加積極主動,并且要么自己編寫堆棧監(jiān)視器,要么使用可以在Internet上找到的許多可用堆棧監(jiān)視器之一。要了解有關(guān)堆棧監(jiān)視器的更多信息,請考慮通過七個簡單步驟閱讀創(chuàng)建堆棧監(jiān)視器并使用堆棧防護改進代碼完整性

最后的想法

這五個技巧只是開發(fā)人員如何通過防御性編程改進嵌入式軟件的幾個例子。還有許多其他技術(shù),例如編寫安全代碼和加密數(shù)據(jù),這些技術(shù)可以幫助提高嵌入式系統(tǒng)即使在不可預見的情況下也能繼續(xù)運行的機會。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 程序員
    +關(guān)注

    關(guān)注

    4

    文章

    952

    瀏覽量

    29815
  • PCB打樣
    +關(guān)注

    關(guān)注

    17

    文章

    2968

    瀏覽量

    21726
  • 華強PCB
    +關(guān)注

    關(guān)注

    8

    文章

    1831

    瀏覽量

    27789
  • 華強pcb線路板打樣
    +關(guān)注

    關(guān)注

    5

    文章

    14629

    瀏覽量

    43077
收藏 人收藏

    評論

    相關(guān)推薦

    成為優(yōu)秀程序員的條件(下)

    (接“成為優(yōu)秀程序員的條件(上))7 需求理解能力。程序員需要理解一模塊的需求,評估該模塊在系統(tǒng)運營中所處的環(huán)境8 復用,模塊化思維能力
    發(fā)表于 08-22 11:52

    嵌入式開發(fā)中防御性編程的要求

    的檢查十分弱小,需要程序員謹慎的考慮代碼,在必要的時候增加判斷;防御性編程的另一核心思想是假設(shè)代碼運行在并不可靠的硬件上,外接干擾有可能會打亂程序執(zhí)行順序、更改RAM存儲數(shù)據(jù)等等。1
    發(fā)表于 12-15 07:20

    程序員需要學什么,微軟資深程序員學習手冊面試寶典資料

    程序員是現(xiàn)在比較吃香的工作。程序員工資高還不需要和復雜的社會打交道。那么怎么成為一名程序員?當程序員需要學什么?
    發(fā)表于 03-22 11:54 ?30次下載

    成為優(yōu)秀程序員的7方法

    程序員總是有很多的決定,不是嗎?如果你的新年待辦事項還是空白的話,那么可以考慮使用下面這些程序員的想法。即使是最聰明的人,也還有成長空間。以下內(nèi)容摘錄自 Kevlin Henney 的《程序員應該知道的97件事》。
    的頭像 發(fā)表于 11-21 11:18 ?1356次閱讀

    10倍效率程序員是否真的存在

    在編程神話中,一 10 倍效率的程序員可以完成一普通程序員 10 倍的工作量。「普通程序員」就是指,善于完成工作但沒有 10 倍效率
    的頭像 發(fā)表于 10-30 11:50 ?2041次閱讀

    程序員如何定義

    當了幾年的程序員了,一直都在想一問題,什么是程序員程序員應該做好那些事情,什么樣的程序員是有素質(zhì)的
    的頭像 發(fā)表于 12-18 14:15 ?2642次閱讀

    Java程序員學習的6小技巧

    知識改變命運,對于Java程序員來說,技術(shù)不斷更新,只有及時充電,才能不被市場淘汰。今天為大家分享Java程序員學習的6小技巧。
    的頭像 發(fā)表于 02-11 16:11 ?2500次閱讀

    怎樣成為合格的程序員

    偶爾的,我會被人問道:如何成為一名優(yōu)秀的程序員,更或者,如何成為一名程序員。每次人們問起,我都力圖給出不同的答案。因此,我的答案是各種各樣的。下面就是我認為的
    的頭像 發(fā)表于 04-15 16:32 ?1536次閱讀

    菜鳥程序員和大神程序員的差距

    剛剛走出就業(yè)的程序員,技術(shù)是剛剛起步的基點。那下面我們就聊一聊有關(guān)技術(shù)的東西。首先請您先想想這幾個問題。現(xiàn)在社會上有很多程序員,CSDN就是我們程序員的家,那您是否可想過程序員為什么會
    的頭像 發(fā)表于 06-03 15:56 ?2542次閱讀

    什么是程序員

    當了幾年的程序員了,一直都在想一問題,什么是程序員程序員應該做好那些事情,什么樣的程序員是有素質(zhì)的
    的頭像 發(fā)表于 06-04 16:21 ?9017次閱讀

    為什么要成為高級程序員

    程序員到高級程序員的職業(yè)生涯要經(jīng)歷以下幾個階段:初級程序員、中級程序員、最后是高級程序員
    的頭像 發(fā)表于 07-11 16:51 ?2443次閱讀

    怎樣成為優(yōu)秀的程序員

    每次我曾經(jīng)的同學打電話向我詢問程序員這個行業(yè)怎么樣,我都會很耐心的講上一半小時,談人生談理想,并判斷他是否適合程序員這個行業(yè)。
    的頭像 發(fā)表于 10-23 16:26 ?2119次閱讀

    怎樣成為頂尖的程序員

    在IT行業(yè)飛速發(fā)展的時代,有過的程序員,有些成為程序員心中的大神,那么那些成為大神的程序員們是因為什么
    的頭像 發(fā)表于 11-06 16:12 ?3005次閱讀

    成為優(yōu)秀程序員必須知道的7好習慣

    作為一從業(yè)快10年的程序員,我想給新入行的程序員們一些建議。這些建議是我希望自己可以在畢業(yè)時就讀到的,也希望它們可以幫助你成為
    的頭像 發(fā)表于 01-06 16:09 ?2980次閱讀

    代碼防御性編程不得不知的技巧

    1 什么是防御性編程?顧名思義,防御性編程是一種細致、謹慎的編程方法。為了開發(fā)可靠的軟件,我們要設(shè)計系統(tǒng)中的每個組件,以使其盡可能的”保護”自己。我們通過明確地在代碼中對設(shè)想進行檢查,這是一種努力
    的頭像 發(fā)表于 11-22 09:49 ?1410次閱讀
    主站蜘蛛池模板: 中文字幕在线视频网站| 老师给美女同学开嫩苞| 亚洲人成色777777老人头| 久久伊人电影| 国产精品高清在线观看地址| 中文天堂www资源| 香艳69xxxxx有声小说| 起碰免费公开97在线视频| 久久久久青草大香线综合精品| 国产精品麻豆AV| 成人国产一区| 91chinesevideo| 亚洲色图在线观看视频| 天天影视网网色色欲| 琪琪SEE色原网色原网站18| 久久欧洲视频| 极品网红液液酱粉嫩福利照子凌酱| 贵妃高h荡肉呻吟np杨玉环| AV天堂午夜精品蜜臀AV| 自拍区偷拍亚洲视频| 亚洲午夜久久久精品电影院| 西施打开双腿下面好紧| 日韩欧美精品有码在线播放| 欧美ⅹxxxx18性欧美| 麻美ゆま夫の目の前で犯| 久久成人a毛片免费观看网站| 国产亚洲精品久久久久久久软件| 俄罗斯XX性幻女18| a圾片目录大全| 7756短视频| 伊人影院中文字幕| 亚洲男人97色综合久久久| 小黄飞二人转| 小草高清视频免费直播| 午夜aaaa| 亚洲AV精品无码成人| 亚洲 欧美 国产 综合 在线| 午夜国产理论| 学校女性奴sm训练调教| 小学生偷拍妈妈视频遭性教育| 我年轻漂亮的继坶2中字在线播放 我们中文在线观看免费完整版 |