国产粉嫩小泬在线观看泬-亚洲中文字幕无码乱线-色呦呦官网-国产色爽-偷窥村妇洗澡毛毛多-亚洲狠狠做深爱婷婷影院-国产精品1-国产精彩视频在线-无码精品人妻一区二区三区免费看-国产av老师丝袜美腿丝袜-久久99婷婷-成人性生生活性生交3-性xxxx狂欢老少配o-九九九久久久久-黄色免费网站在线看-亚洲综合色区另类小说-欧美a∨-av在线免费观看网址-岛国av在线免费观看-国产精品v片在线观看不卡

你的位置:首頁 > 互連技術 > 正文

嵌入式軟件設計處處是坑,確保可靠性有這些絕招

發布時間:2017-03-28 責任編輯:susan

【導讀】硬件叱咤江湖,軟件通過控制硬件來統治江湖。如今,有電子的地方就有嵌入式軟件,有電子故障的地方,也就有嵌入式軟件設計缺陷的影子。我們今天就把軟件所容易犯的錯誤和規避的方法一一羅列,并給出應對之法。

嵌入式軟件的最大特點是以控制為主,軟硬結合的較多,功能性的操作較多,模塊相互間調用的較多,外部工作環境復雜容易受到干擾或干擾別的設備,且執行錯誤的后果不僅僅是數據錯誤而是有可能導致不可估量的災難,所以總結起來,嵌入式軟件可靠性設計需注意的問題有四個方面:
 
1、軟件接口
 
先說軟件接口中容易出問題的地方和編程人員容易犯的錯誤。
 
軟件接口調用一般會有數據的賦值,賦值變量的數據類型可能會存在強制的數據轉換;需加以檢查。如果為了防范出問題的話,可以添加對數據范圍和數據類型的檢查。
 
賦值數據的數量不對路,多了少了的都不好,會出現意外的賦值結果,不過還好,這項錯誤比較好檢查。
 
軟件編程中,會有對某一功能操作代碼的復用,比如對某個端口的數據檢查和控制,在整個程序中只會發生兩次,為了圖省事,可能就直接把該段代碼直接插入實際程序模塊中去了,這樣,在源程序代碼中,就出現了兩段完全相同,完成相同功能,只是服務于不同模塊的代碼,按道理來說,這樣設計其實也沒啥問題,是的,你沒錯,但你的行為會使別人無意中犯錯。有人會說了,我這樣寫代碼怎么就算引誘呢?原因是程序可能會升級,你這幾行代碼在實際應用過程中也不能保證是盡善盡美的,發現不完善的地方后,勢必會修改,如果你還能想得起來,可能不會遺漏,如果修改此代碼的是別的人,改了一個地方,別的地方沒改,是不是還留著隱患?那如何做呢?方法不難,把這段功能單獨做成一個模塊即可,對此端口的讀取和控制賦值均由此獨立模塊完成,如果數據的正確性影響大的話,還需要對端口數據的正確性進行檢查和判斷。嵌入式軟件可靠性編程方法的四個目的是防錯、判錯、糾錯、容錯。對端口數據的判斷屬于判錯的內容。
 
2、軟硬件接
 
硬件,對外的執行都靠它來實現,一旦出現問題,執行后的后果就不可控了,但如何注意呢?
 
對讀進來的硬件接口的數據要判斷其真偽;
 
對輸出的數據的執行效果要檢測;
 
對輸出的數據的可能后果要進行預防性設計,數據輸出的過程,我們從設計上要做一個分析,分析的思路是一般容易局限在穩態過程,忽視了過渡過程。舉例說明,比如我們控制一個支路的供電,從軟件控制來說,直接給繼電器一個啟動信號,讓開狀態的觸點閉合就可以了,非“關”即“開”,是受控繼電器的兩個穩態狀態,但事實上,在從開到閉合的過程中,支路供電的電壓并不是一個簡單0V—24V(24V為示例而已)的跳變狀態,而是一個抖動,有沖擊信號的過程,這種情況在硬件上的防護是必不可少的,但在軟件上也不是可以事不關己、高高掛起的。
 
另外在邏輯上,宜將容易被干擾和容易產生的干擾控制動作從時序上控制好,予以分開隔離。比如,控制繼電器的過程是容易產生抖動尖峰脈沖而干擾數據總線和控制信號總線的,這時候從控制上,不宜同時實施數據的發送和接收工作,不宜作出其他的控制動作,惹不起咱躲得起,躲過這一陣干擾的時候總可以了吧?
 
3、軟件代碼
 
軟件的可靠性是隨著時間的推移,可靠性逐漸增加的,這一點區別于電子可靠性、機械可靠性。電子可靠性服從指數分布,在整個生命周期內,其失效率為一個常數;機械可靠性因為磨損、腐蝕、運動等因素的存在,隨時間推移可靠度會下降。因此也就有了軟件可靠性設計的一個特定規律和注意事項。
 
既然需要通過時間推移,通過不斷改進,軟件可靠性得到提升。那么軟件的可維護性就是一個大問題了。這也是為什么軟件工程管理方面特別關注軟件文檔、注釋的原因了。但做這些要求的人只是人云亦云,并不理解如此做法的真正動機。至于注釋如何去做、變量如何命名、軟件配置管理如何操作,這里面既有很常規的方法,也有一些我們司空見慣然而是錯誤的做法。信手舉上幾個值得注意的細節供參考。
 
變量定義時宜將變量類型的變量名程中體現于其中;如AD_result_int、Cal_result_float等。這樣為的好檢查,防止數據類型的強制轉換或強制賦值時出現數據類型的錯誤;
 
注釋要充分;
 
代碼的布局風格宜統一,便于閱讀查找;
 
不可出現非受控的default流程,所有數值和變量,不論是調用函數時賦予的、讀取接口讀進來的、還是中間變量計算出來的,在應用前都宜作數據有效性的判斷,并對判定的所有可能結果均做受控的對應處理。
 
關于軟件可維護性編程方法方面的文章資料在網上是鋪天蓋地,不予贅述,綜合采用之即可。很多文章把軟件可維護性編程規范推薦做成企業的嵌入式軟件可靠性設計規范,實在是有點以偏概全,有失偏頗的。
 
軟件代碼在執行中容易出現的下一個問題是跑飛,程序指針受到干擾,跳轉到了一個非受控位置,執行了不該執行的代碼。如果執行了不該執行的代碼,如果在程序中加入了足夠的變量判斷、讀值判斷、狀態檢測判斷等,那倒還好了,后果也不會太嚴重,甚至最終還是可能自己跑回來的。但有一種跑飛是比較可怕的,一般我們在ROM中存放的程序目標代碼是1-3字節的指令,就是最多3條字段的目標碼組成了執行動作,如果程序指針跑飛到了某個3字節指令的第2個字節上的時候,執行的后果是什么,可就真的沒人知道了,即使在程序上作了足夠的數據判錯、邏輯跳轉的防范措施,結果也不會好。而且ROM一般是不可能全部都被程序代碼填滿的,總有富余空間,富余空間中的默認內容是啥,這些默認字節是否也會導致一些操作呢?單片機中的默認空間是0FFH,DSP的我沒查過,大家有興趣查一下,跳到這些字段里,也是容易出麻煩的。
 
好了,不再羅嗦,直接給出解決方法吧,就是每隔一段程序代碼或控制區域,就人為放置上幾個NOP指令,在NOP指令后放置一個長跳轉的ERR處理程序。注意NOP最少放置3個,這樣任何的跑飛最多只能占用2個NOP,第三個NOP一樣還是能把程序代碼揪回來,揪回來后就執行ERR處理程序。
 
如果碰到安全性、可靠性等級要求比較高的程序,推薦的處理方法可以采用熱備份的處理方法,即用兩段代碼同時執行同一個功能,執行的結果進行對比,如果一致則放行通過,如果結果不一致,怎么處理就看個人。
 
安全性和可靠性的編程細節注意事項還有很多,窺一斑難見全豹。
 
4、數據、變量
 
變量的定義是為的避免各種混淆,同一程序內數據和數據的混淆、不同人讀程序時對變量理解上出現的二義性、視覺效果上容易出現的錯誤(字母的“o”和數字的“0”,字母的“l”和數字的“1”)。這里要遵循一個“要么相同,要么迥異”的基本規則,這條規則在很多的領域都有應用。在結構的防呆性設計上,接插件的選型也是如此,如果一個乳白色和一個淺灰色的同類接插件,最好的選擇是有很直觀的視覺差異或結構的差異,或者干脆就是相同的,相同須基于一個前提,互換性要好。
 
用顯意的符號來命名變量和語句標號。標識符的命名有明確含義,且是完整單詞或易理解的縮寫。短單詞通過去掉“元音”形成縮寫;長單詞取頭幾個字母形成縮寫;一些單詞有公認的縮寫。如:
         
Temp     — tmp;
Flag      — flg;
Statistic   — stat;
Increment —   inc;
Message  —  msg。
 
特殊約定或縮寫,要有注釋說明。在源文件開始處,對使用的縮寫或約定注釋說明。自己特有的命名風格,要自始至終保持一致。對于變量命名,禁止取單個字符(如i、j、k...);含義+變量類型、數據類型等,i、j、k作局部循環變量是允許的,但容易混淆的字母慎用。如int Liv_Width,L代表局部變量(Local)(g全局變量Global)、i代表數據類型(Interger)、 v代表 變量(Variable)(c常量Const)、Width代表變量的含義,這種命名方式可防止局部變量與全局變量重名。
   
禁用易混淆的標識符(R1和Rl,DO和D0等)來表示不同的變量、文件名和語句標號。
   
除了編譯開關/頭文件等特殊應用,避免使用_EXAMPLE_TEST_之類以下劃線開始和結尾的定義。
 
全局變量是戰略性資源,它決定了模塊和模塊間的耦合度,需在項目上提升到一個足夠高的高度,慎用全局變量,不得不用的時候,要單獨為每一個全局變量編寫獨立的操作模塊或函數,在修改全局變量的時候,要檢查是否有別的函數在調用它并且需要此數值保持穩定。
 
對變量代表某個特定含義的時候,盡量不要僅僅用位來代表什么,比如用某變量的第零位代表某個狀態(0000 0001,其中僅用1代表某個內容,這樣01H、03H、05H… 會有很多個組合都能代表這個狀態);位容易受干擾被修改,信息出現錯誤的幾率大很多。
 
也不要用00H、FFH等數據代表,就像我們面試一群人一樣,第一個被面試人和最后一個被面試人容易被記住,00H和FFH亦然,系統默認狀態是00和FF的時候較多,他們容易被復位或置位成這類數值。推薦以四位的二進制碼的某個中間值為狀態變量,如1001。
 
變量數據在應用之前宜作數據類型和數值范圍的判斷;
 
數據在存儲過程中也容易出現問題,EEPROM、RAM等都有過類似的案例。數據出錯時避免不了的,解決的辦法是學花旗銀行等美國金融企業,之所以在9.11后他們能很快恢復業務,基本沒有數據方面的損失,原因何在?因為他們有異地容災數據備份系統,知里面有兩個關鍵詞,異地、備份。我們的信息也同樣,首先選擇存在不同的介質中、或相同的介質但迥異的存放環境和位置下,雙重備份的結局是兩邊不一致的時候,數據被懷疑并拒絕反映執行,但嵌入式軟件很多時候是要靠數據來推動執行機構的,即使發現數據有問題也不允許行政不作為,這種情況下,作為我們也很難辦,2個不同的數據,有明顯問題的還好排除,都在有限范圍內可如何判定哈?這種時候沒辦法只好三備份,少數服從多數是唯一的選擇了。石頭剪刀布的方式不好用,葛優的分歧終端機也不適用,就只好選擇這種最原始最有效的辦法了,唯一需要注意的是數據宜存放于三種不同的備份環境下。
 
以上僅就嵌入式軟件可靠性的關注方面分了幾大類,進行了基本的描述,實際應用中,需要關注的點還有很多很多,如果是準備自行制定設計規范的話,以上的思路應該也可以給與一些啟迪了。
要采購繼電器么,點這里了解一下價格!
特別推薦
技術文章更多>>
技術白皮書下載更多>>
熱門搜索

關閉

?

關閉

主站蜘蛛池模板: 自偷自拍亚洲综合精品第一页 | 久久精品色 | 成人免费黄色大片v266 | 亚洲福利在线观看 | 国产色欲婬乱免费视频软件 | 97超碰人人模人人人爽人人爱 | a级黄毛片 | 东京无码熟妇人妻av在线网址 | 国产精品日韩一区二区 | 五月天婷婷视频 | 国产乱子伦视频在线观看 | 亚洲αv无码一区二区三区四区 | 国产成人精品亚洲 | 欧美黄色录像视频 | 亚洲学生妹高清av | 99草草国产熟女视频在线 | 久久久774这里只有精品17 | 插吧插吧综合网 | 东京热人妻一区二区三区 | 国产成年无码v片在线 | 国产对白叫床清晰在线播放 | 亚洲精品国偷拍自产在线 | 国产第一精品 | 亚洲一区美女 | 换脸国产av一区二区三区 | 亚洲免费观看高清完整 | 人妻有码中文字幕在线 | 国产偷抇久久精品a片69麻豆 | 神马午夜91| 激情成人综合网 | 欧洲精品不卡1卡2卡三卡 | 夜夜爽8888天天躁夜夜躁狠狠 | 农村黄色片 | 韩国激情呻吟揉捏胸视频 | 国产高清一区二区三区 | 免费在线观看毛片 | 国产亚洲精品岁国产微拍精品 | 婷婷久久香蕉五月综合加勒比 | 啪啪无码人妻丰满熟妇 | 不卡av网站 | 亚洲女人毛茸茸 | 国产第一精品视频 | 国产精品成人观看视频国产奇米 | 边喂奶边中出的人妻 | 中文字幕一区二区三区在线观看 | 极品美女在线观看免费直播 | 亚洲成人av一区二区三区 | 谁有毛片网址 | 亚洲精品国产成人av蜜臀 | 第九色区av天堂 | 国产亚洲精品成人av久久影院 | 大帝av在线一区二区三区 | 区二区三区玖玖玖 | 午夜精品一区二区三区在线观看 | 久久棈精品久久久久久噜噜 | 亚洲午夜网 | 国产无遮挡呻吟娇喘视频 | 国产精品300页 | 超碰在线影院 | 日韩经典午夜福利发布 | 成人国产精品秘片多多 | 影音先锋新男人av资源站 | 在线天堂中文在线资源网 | 久久日产一线二线三线suv | 色先锋av资源中文字幕 | 成人一区二区三区 | 国产乱码一卡二卡三卡免费 | 玩爽少妇人妻系列 | 亚洲精品国产av天美传媒 | 亚洲欧洲精品在线 | 免费永久在线观看黄网站 | 国产精品午夜福利视频234区 | 精品久久久久久久久久久国产字幕 | 兔费看少妇性l交大片免费 一级片黄色 | 亚洲熟妇自拍无码区 | 91在线看片 | 韩日成人 | 亚洲精品乱码久久久久久久 | 国产女人18毛片水真多1 | 黄色片国产在线观看 | 国产精口品美女乱子伦高潮 | 国内精品一区二区三区不卡 | 色先锋av资源中文字幕 | 2021国产精品国产精华 | 亚洲成人免费在线观看 | 亚洲午夜剧场 | 欧美人与动牲交zooz3d | 奇米网狠狠干 | 国内精品伊人久久久久7777 | 无码中文人妻在线一区二区三区 | 国产人与zoxxxx另类 | 亚洲五月网 | www.成人| 亚洲精品久久久久久久久 | 天堂√最新版中文在线地址 | 激情宗合网 | 一级特黄aaa大片在线观看 | 国产三级韩国三级日本带黄 | 男人的天堂va | 主站蜘蛛池模板: 国产精品夜色7777狼人 | 国语自产精品视频在线30 | 无遮18禁在线永久免费观看挡 | 香蕉久久夜色精品 | 乱码精品一区二区三区 | 午夜精品一区二区三区三上悠亚 | 国产三级国产经典国产av | 最新视频–x99av | 国产欲女高潮正在播放 | 狠狠色噜噜狠狠狠狠97首创麻豆 | √最新版天堂资源网在线下载 | 女人扒开屁股爽桶30分钟 | 狠狠久久亚洲欧美专区 | 伊人热久久 | www.欧美在线观看 | 欧美xxxx中国 | 亚洲在线黄色 | 一区二区黄色片 | 麻豆国产97在线 | 中国 | 色翁荡熄又大又硬又粗又 | 99精品一区二区 | 波多av在线 | 性色a码一区二区三区天美传媒 | 亚洲欧美国产va在线播放 | 丁香花在线影院观看在线播放 | 丰满人妻在公车被猛烈进入电影 | 日韩a片无码毛片免费看 | 换脸国产av一区二区三区 | 国产成人92精品午夜福利 | 亚洲欧美日本国产mag | 精精国产xxxx视频在线观看 | 人人添人人妻人人爽夜欢视av | 亚洲日韩中文字幕在线不卡最新 | 国产精品一区二区视频 | 婷婷五月综合国产激情 | 日韩一区免费 | 国产情侣2020免费视频 | 六月丁香婷婷色狠狠久久 | 国产女人水真多18毛片18精品 | 啪视频在线观看 | 无码男男做受g片在线观看视频 | 少妇高潮太爽了在线视频 | 亚欧乱色国产精品免费视频 | 胸大美女又黄的网站 | 熟女丰满老熟女熟妇 | 日韩精品一区二区三区国语自制 | 综合免费视频 | 国产视频一区二区三区四区五区 | 国内精品久久久久久中文字幕 | 久久精品视频在线看4 | 人妻少妇无码中文幕久久 | 免费人成在线观看视频播放 | 色婷婷我要去我去也 | 成人小视频在线播放 | 性无码免费一区二区三区屯线 | 99热久久最新地址 | 久久只精品99品免费久23 | 夜夜摸夜夜操 | 久操视频在线观看 | 大肉大捧一进一出好爽视色大师 | 天天摸夜夜| 亚洲精品一区二区三区的 | 久久综合精品国产一区二区三区无 | 人人爽天天碰狠狠添 | 免费国产午夜视频在线 | 熟女人妻av粗壮巨龙 | 免费国产白丝喷水娇喘视频 | 初音未来爆乳下裸羞羞无码 | 激情五月婷婷网 | 欧美视频在线播放 | 亚洲中文字幕无码乱线久久视 | 午夜日韩在线 | 国产福利视频一区二区在线 | 中文字幕日韩精品亚洲一区小树林 | 国产伦孑沙发午休精品 | 强行18分钟处破痛哭av | 色欲色香天天天综合无码www | 久久国产精久久精产国 | 99情趣网| 99精品小视频 | 久久久久久久无码高潮 | 黑巨人与欧美精品一区 | 视频一区中文字幕 | 最新亚洲中文av在线不卡 | 九九久视频| 国产成人精品综合在线观看 | 日韩av片无码一区二区不卡电影 | 91麻豆精品在线 | 天天色婷婷 | 中文字幕 在线 欧美 日韩 制服 | 亚洲精品成人网站在线播放 | avwww| 国产日韩精品视频无码 | 天堂中文在线最新版www | 久久人人爽人人爽人人片ⅴ | 成人国产片女人爽到高潮 | 国产精品乱子乱xxxx | 国产成人av在线免播放观看更新 | 亚洲狼人精品一区二区三区 | 主站蜘蛛池模板: 欧美丰满熟妇xxxx性大屁股 | 亚洲一区二区三区在线看 | 国产xxxx岁13xxxxhd | 免费纯肉3d动漫无码网站 | 尤物av午夜精品一区二区入口 | 国产日韩av无码免费一区二区 | 国产成人精品优优av | 亚洲另类自拍丝袜第五页 | 亚洲自拍网址 | 曰本毛片 | 日本激情网 | 婷婷丁香六月天 | 亚洲日韩国产二区无码 | 9191在线视频 | 伊人激情av一区二区三区 | 香蕉茄子视频 | 在线免费观看一级片 | 精品欧洲av无码一区二区三区 | 国产偷人妻精品一区二区在线 | 99久久无码一区人妻a片蜜 | 午夜嘿嘿嘿在线观看 | 亚洲欧美精品综合在线观看 | 国产亚洲精品品视频在线 | 在线亚洲精品国产二区图片欧美 | 精品免费久久久久久久 | 国产激情久久久久久熟女老人av | 风韵少妇性饥渴推油按摩视频 | 插插无码视频大全不卡网站 | 久久精品蜜桃 | 亚洲h视频在线 | 无遮挡无码h纯肉动漫在线观看 | 污18禁污色黄网站免费观看 | 国产精品成人免费一区久久羞羞 | 成 人 在 线 免费观看 | 东京热无码中文字幕av专区 | 激性欧美激情在线 | 暖暖视频在线观看免费观看高清中文 | 亚洲精品国产一区二区精华液 | 97视频免费在线观看 | 精品av国产一区二区三区 | 日韩精品在线免费看 | 色吧av | 好吊视频一区二区三区 | 少妇又紧又色又爽又刺激 | 妺妺窝人体色www婷婷 | 高清视频一区二区三区 | 日本妇人成熟免费视频 | 中文字幕三级人妻无码视频 | 欧美乱强伦xxxxx高潮 | 最近av在线 | 亚洲国产成人av片在线播放 | 国产又爽又黄又舒服又刺激视频 | 久久精品一区二区三区中文字幕 | 亚洲中文字幕国产综合 | 99re6在线视频 | 中文字幕3区 | 精品国产午夜肉伦伦影院 | 国产男女猛烈无遮挡免费观看网站 | 欧美白胖bbbbxxxx | www.亚洲欧美| 亚洲精品国产aⅴ成拍色拍 午夜手机福利 | 国产视频一区在线 | 毛片视频网站 | 国产亚洲精品97在线视频一 | 92精品成人国产在线观看 | 免费一级黄色大片 | 国产精品爽爽久久久久久蜜臀 | 黑人大长吊大战中国人妻 | 欧美在线不卡 | 精品人伦一区二区三电影 | 亚洲综合久| 国模小黎自慰gogo人体 | 无码一区二区三区在线观看 | 狠狠躁夜夜躁人人爽天天69 | 国产极品女主播国产区 | 亚洲精品一区二区三 | 一区二区三区福利 | 鲜嫩高中生无套进入 | 色综合区| 77777熟女视频在线观看 | 国产内谢 | 亚洲精品久久久久久久蜜桃 | 五月天在线 | 中文字幕乱视频 | 久久电影网午夜鲁丝片免费 | 亚洲精品乱码久久久久久麻豆不卡 | 亚洲va久久久噜噜噜久久 | 亚洲中文字幕精品久久 | 欧美日韩久久 | 91网站在线免费观看 | 天堂亚洲免费视频 | 国产黄色精品网站 | 后进式无遮挡啪啪摇乳动态图 | 老熟妇乱子伦系列视频 | 国产在线精品99一卡2卡 | 亚洲精品人成无码中文毛片 | 日本熟妇厨房xxxⅹⅹ乱 | 亚洲熟女片嫩草影院 | 少妇人妻av无码专区 |