久久婷婷香蕉热狠狠综合,精品无码国产自产拍在线观看蜜,寡妇房东在做爰3,中文字幕日本人妻久久久免费,国产成人精品三上悠亚久久

Hi,歡迎來到嵌入式培訓高端品牌 - 華清遠見教育科技集團<北京總部官網>
當前位置: 首頁 > 嵌入式軟件工程師 >嵌入式軟件可靠性設計應注意的問題
嵌(qian)入(ru)式軟件可靠性設計(ji)應注意的(de)問(wen)題(ti)

來源:華清遠見教育科技集團    

男(nan)人(ren)征(zheng)服世界,女(nv)人(ren)通過征(zheng)服男(nan)人(ren)來(lai)征(zheng)服世界;硬件(jian)叱(chi)咤江湖(hu)(hu)(hu),軟(ruan)(ruan)件(jian)通過控制硬件(jian)來(lai)統治江湖(hu)(hu)(hu)。當今(jin)世界,放眼(yan)江湖(hu)(hu)(hu),有電子的地方就(jiu)有嵌入式軟(ruan)(ruan)件(jian),有電子故障的地方,也就(jiu)有嵌入式軟(ruan)(ruan)件(jian)設計缺陷的影子。我們今(jin)天就(jiu)把軟(ruan)(ruan)件(jian)所容易犯的錯誤和規避的方法一一羅列,并給(gei)出應(ying)對之法。

嵌入式軟(ruan)(ruan)件的(de)(de)大特點是以控制為(wei)主,軟(ruan)(ruan)硬(ying)結(jie)合的(de)(de)較(jiao)多,功能性的(de)(de)操作較(jiao)多,模(mo)塊相(xiang)互間調(diao)用的(de)(de)較(jiao)多,外(wai)部工(gong)作環境復雜容易(yi)受到干(gan)擾或干(gan)擾別的(de)(de)設備,且執行錯誤(wu)的(de)(de)后果不僅僅是數據錯誤(wu)而是有可能導致(zhi)不可估量的(de)(de)災(zai)難,所以總結(jie)起來,嵌入式軟(ruan)(ruan)件可靠(kao)性設計需注意(yi)的(de)(de)問題有四個方面(mian):

1、軟件接口

先說軟件接口中容易(yi)(yi)出問題的(de)(de)地方和編(bian)程(cheng)人員容易(yi)(yi)犯(fan)的(de)(de)錯誤。

軟件接口調用一般(ban)會有(you)數(shu)(shu)據(ju)(ju)(ju)的(de)賦值,賦值變量的(de)數(shu)(shu)據(ju)(ju)(ju)類型可(ke)(ke)能會存在強制(zhi)的(de)數(shu)(shu)據(ju)(ju)(ju)轉(zhuan)換;需加以檢(jian)查。如果(guo)為了防范出問題的(de)話,可(ke)(ke)以添加對數(shu)(shu)據(ju)(ju)(ju)范圍和數(shu)(shu)據(ju)(ju)(ju)類型的(de)檢(jian)查。

賦值數(shu)據的數(shu)量不(bu)(bu)對路(lu),多了少了的都不(bu)(bu)好(hao),會出(chu)現意外的賦值結(jie)果,不(bu)(bu)過還(huan)好(hao),這項錯誤(wu)比較好(hao)檢查。

  

軟件編程(cheng)中(zhong),會有對(dui)某(mou)(mou)一功能操作代(dai)(dai)碼的(de)(de)復(fu)用(yong),比如對(dui)某(mou)(mou)個(ge)端口的(de)(de)數據(ju)檢(jian)查和(he)控制,在整個(ge)程(cheng)序(xu)中(zhong)只(zhi)(zhi)會發生(sheng)(sheng)兩(liang)次,為了圖省(sheng)事,可能就直(zhi)接(jie)把(ba)該段代(dai)(dai)碼直(zhi)接(jie)插入實(shi)際程(cheng)序(xu)模塊(kuai)中(zhong)去了,這(zhe)(zhe)樣(yang),在源程(cheng)序(xu)代(dai)(dai)碼中(zhong),就出現了兩(liang)段完(wan)全相(xiang)同,完(wan)成相(xiang)同功能,只(zhi)(zhi)是服務于不同模塊(kuai)的(de)(de)代(dai)(dai)碼,按(an)道理來說,這(zhe)(zhe)樣(yang)設(she)計(ji)其(qi)實(shi)也沒(mei)啥問題,是的(de)(de),你沒(mei)錯(cuo),但(dan)你的(de)(de)行為會使別人無(wu)意中(zhong)犯錯(cuo)。就像(xiang)青年男女(nv)相(xiang)處,女(nv)孩子(zi)純粹是想(xiang)(xiang)和(he)男孩子(zi)充分享受溫馨的(de)(de)氣氛和(he)心情,并不想(xiang)(xiang)更深入的(de)(de)發生(sheng)(sheng)什(shen)么(me),但(dan)女(nv)孩子(zi)邀請男生(sheng)(sheng)去的(de)(de)是她的(de)(de)家,在家里換(huan)上了家居的(de)(de)睡衣,窗(chuang)戶緊閉,放著的(de)(de)還(huan)是曖(ai)昧的(de)(de)音樂,被(bei)男孩子(zi)半強迫發生(sheng)(sheng)后,無(wu)限哀怨地(di)說"我沒(mei)想(xiang)(xiang)到結果(guo)會是這(zhe)(zhe)樣(yang)的(de)(de)",那怪得(de)誰來呢?在代(dai)(dai)碼方(fang)面,您的(de)(de)這(zhe)(zhe)種做法(fa)與(yu)貌似引誘男孩上鉤的(de)(de)少女(nv)無(wu)異。

  

有(you)(you)人(ren)會說了,我(wo)這(zhe)樣(yang)寫代碼(ma)怎么就(jiu)算引誘呢(ni)?原(yuan)因是(shi)(shi)(shi)程(cheng)序可(ke)能會升級,您這(zhe)幾行代碼(ma)在實(shi)際應用(yong)過程(cheng)中也不(bu)能保證是(shi)(shi)(shi)盡善(shan)盡美的(de)(de)(de),發(fa)現不(bu)完善(shan)的(de)(de)(de)地方(fang)(fang)后,勢必(bi)會修(xiu)改(gai),如(ru)果你還能想得起(qi)來,可(ke)能不(bu)會遺漏,如(ru)果修(xiu)改(gai)此代碼(ma)的(de)(de)(de)是(shi)(shi)(shi)別的(de)(de)(de)人(ren),改(gai)了一個(ge)地方(fang)(fang),別的(de)(de)(de)地方(fang)(fang)沒改(gai),是(shi)(shi)(shi)不(bu)是(shi)(shi)(shi)還留著(zhu)隱患?那如(ru)何做呢(ni)?方(fang)(fang)法(fa)不(bu)難(nan),把這(zhe)段功能單獨做成一個(ge)模塊即可(ke),對此端(duan)口(kou)的(de)(de)(de)讀取(qu)和(he)控制賦(fu)值均由此獨立模塊完成,如(ru)果數(shu)據(ju)的(de)(de)(de)正確性影(ying)響大的(de)(de)(de)話,還需要對端(duan)口(kou)數(shu)據(ju)的(de)(de)(de)正確性進行檢(jian)查和(he)判(pan)(pan)斷(duan)。嵌入式軟件可(ke)靠(kao)性編程(cheng)方(fang)(fang)法(fa)的(de)(de)(de)四個(ge)目(mu)的(de)(de)(de)是(shi)(shi)(shi)防(fang)錯、判(pan)(pan)錯、糾(jiu)錯、容錯。對端(duan)口(kou)數(shu)據(ju)的(de)(de)(de)判(pan)(pan)斷(duan)屬于判(pan)(pan)錯的(de)(de)(de)內(nei)容,如(ru)果數(shu)據(ju)有(you)(you)錯的(de)(de)(de)話,糾(jiu)錯和(he)容錯的(de)(de)(de)設計方(fang)(fang)法(fa)應該(gai)不(bu)用(yong)我(wo)深入講解了吧?

  

2、軟硬件接口

  

硬件如男人,對外的執行都靠(kao)它(ta)來(lai)實現,一旦出(chu)現問(wen)題(ti),執行后的后果(guo)就不可控了,周總理說過"外交(jiao)無小事"。但如何注意呢?

  

對(dui)讀進來(lai)的(de)(de)硬件接口的(de)(de)數據要判斷其真(zhen)偽;

  

對輸出的數據的執行效果要檢測;

  

對輸出的(de)(de)數(shu)據的(de)(de)可能后果要進行預防性設(she)計,數(shu)據輸出的(de)(de)過(guo)程(cheng),我們從設(she)計上要做一(yi)個(ge)(ge)分析,分析的(de)(de)思路是一(yi)般(ban)容易局限在穩(wen)態(tai)過(guo)程(cheng),忽視了過(guo)渡過(guo)程(cheng)。舉例說(shuo)明,比如我們控制(zhi)一(yi)個(ge)(ge)支(zhi)路的(de)(de)供電,從軟件(jian)控制(zhi)來說(shuo),直接給(gei)繼電器一(yi)個(ge)(ge)啟動(dong)信(xin)號,讓開狀態(tai)的(de)(de)觸點閉合(he)就(jiu)可以了,非"關(guan)"即"開",是受控繼電器的(de)(de)兩個(ge)(ge)穩(wen)態(tai)狀態(tai),但事實(shi)上,在從開到閉合(he)的(de)(de)過(guo)程(cheng)中,支(zhi)路供電的(de)(de)電壓并(bing)不(bu)(bu)是一(yi)個(ge)(ge)簡單0V—24V(24V為示例而已)的(de)(de)跳變(bian)狀態(tai),而是一(yi)個(ge)(ge)抖動(dong),有(you)沖擊信(xin)號的(de)(de)過(guo)程(cheng),這種情況在硬件(jian)上的(de)(de)防護是必不(bu)(bu)可少的(de)(de),但在軟件(jian)上也不(bu)(bu)是可以事不(bu)(bu)關(guan)己、高高掛起的(de)(de)。

  

另外(wai)在(zai)邏輯上,宜將容易(yi)被干(gan)(gan)擾(rao)(rao)和容易(yi)產生的(de)(de)(de)(de)干(gan)(gan)擾(rao)(rao)控(kong)(kong)制動作(zuo)從時(shi)序上控(kong)(kong)制好,予以分開隔離。比如,控(kong)(kong)制繼電(dian)器的(de)(de)(de)(de)過程是容易(yi)產生抖動尖峰脈沖(chong)而干(gan)(gan)擾(rao)(rao)數(shu)據總線和控(kong)(kong)制信號總線的(de)(de)(de)(de),這(zhe)時(shi)候從控(kong)(kong)制上,不(bu)宜同時(shi)實(shi)施數(shu)據的(de)(de)(de)(de)發送和接收工作(zuo),不(bu)宜作(zuo)出其他的(de)(de)(de)(de)控(kong)(kong)制動作(zuo),惹不(bu)起(qi)咱躲得起(qi),躲過這(zhe)一陣干(gan)(gan)擾(rao)(rao)的(de)(de)(de)(de)時(shi)候總可(ke)以了(le)吧?

  

3、軟件代碼

  

軟件(jian)的(de)(de)(de)可(ke)靠(kao)性是(shi)隨著時(shi)間的(de)(de)(de)推移,可(ke)靠(kao)性逐漸增加的(de)(de)(de),這一點區(qu)別于電(dian)子(zi)可(ke)靠(kao)性、機械(xie)可(ke)靠(kao)性。電(dian)子(zi)可(ke)靠(kao)性服(fu)從指(zhi)數(shu)(shu)分布,在整個生命周期(qi)內,其失效(xiao)率為一個常數(shu)(shu);機械(xie)可(ke)靠(kao)性因為磨(mo)損、腐蝕、運動等因素(su)的(de)(de)(de)存(cun)在,隨時(shi)間推移可(ke)靠(kao)度會下降。因此(ci)也(ye)就(jiu)有了軟件(jian)可(ke)靠(kao)性設計的(de)(de)(de)一個特定規律和(he)注意事項。

  

既然需要通(tong)過(guo)時間推移,通(tong)過(guo)不斷改進(jin),軟件(jian)(jian)可(ke)靠性得到提升。那(nei)么軟件(jian)(jian)的(de)可(ke)維護性就是一(yi)個大問(wen)題了(le)。這(zhe)也是為什么軟件(jian)(jian)工程管理方面特(te)別關注軟件(jian)(jian)文檔、注釋的(de)原因了(le)。但做這(zhe)些要求(qiu)的(de)人只是人云亦云,并不理解(jie)如此(ci)做法(fa)的(de)真正動(dong)機。至于注釋如何(he)去做、變量如何(he)命名、軟件(jian)(jian)配(pei)置管理如何(he)操作,這(zhe)里面既有很常規的(de)方法(fa),也有一(yi)些我們(men)司空見慣然而(er)是錯誤的(de)做法(fa)。信手舉上幾個值得注意的(de)細節供參考。

  

變量定義時(shi)宜將變量類型的(de)變量名程中體現(xian)于其中;如AD_result_int、Cal_result_float等。這(zhe)樣為(wei)的(de)好檢(jian)查,防(fang)止數(shu)據類型的(de)強(qiang)制(zhi)轉換或強(qiang)制(zhi)賦值時(shi)出現(xian)數(shu)據類型的(de)錯誤;

  

注釋要充分;

  

代碼的(de)布局(ju)風格宜統一,便于閱(yue)讀查(cha)找;

  

不可(ke)出(chu)現非(fei)受(shou)控的(de)(de)(de)default流(liu)程(cheng),所有數值和(he)變量,不論是(shi)(shi)調用函(han)數時賦予(yu)的(de)(de)(de)、讀(du)(du)取接口讀(du)(du)進(jin)來的(de)(de)(de)、還(huan)是(shi)(shi)中(zhong)間變量計算出(chu)來的(de)(de)(de),在應用前都宜作數據有效性的(de)(de)(de)判(pan)斷,并對判(pan)定的(de)(de)(de)所有可(ke)能結果均做受(shou)控的(de)(de)(de)對應處(chu)理。

  

關于軟件(jian)可(ke)維(wei)護性(xing)編程(cheng)方(fang)(fang)法方(fang)(fang)面的(de)文(wen)章資料在網(wang)上是(shi)(shi)鋪天蓋地,不(bu)予贅(zhui)述,綜合采(cai)用之(zhi)即可(ke)。很多文(wen)章把軟件(jian)可(ke)維(wei)護性(xing)編程(cheng)規范(fan)推薦(jian)做成(cheng)企業的(de)嵌(qian)入式(shi)軟件(jian)可(ke)靠性(xing)設計規范(fan),實(shi)在是(shi)(shi)有點以(yi)偏概全,有失偏頗的(de),用一句娛樂圈(quan)的(de)話(hua)來說(shuo),"愛(ai)情是(shi)(shi)生(sheng)活的(de)重要內容(rong),但它不(bu)是(shi)(shi)生(sheng)活的(de)全部",軟件(jian)可(ke)維(wei)護性(xing)編程(cheng)方(fang)(fang)法亦然。

  

軟件代(dai)碼(ma)在(zai)(zai)執行中容(rong)(rong)易出現的(de)(de)(de)(de)(de)(de)下一(yi)(yi)(yi)個問題是(shi)跑(pao)飛,程序(xu)指針(zhen)受(shou)到干擾(rao),跳(tiao)轉到了(le)(le)(le)一(yi)(yi)(yi)個非受(shou)控(kong)位置,執行了(le)(le)(le)不該(gai)執行的(de)(de)(de)(de)(de)(de)代(dai)碼(ma)。如果(guo)(guo)執行了(le)(le)(le)不該(gai)執行的(de)(de)(de)(de)(de)(de)代(dai)碼(ma),如果(guo)(guo)在(zai)(zai)程序(xu)中加(jia)入了(le)(le)(le)足夠(gou)的(de)(de)(de)(de)(de)(de)變量判(pan)斷、讀(du)值判(pan)斷、狀態檢測判(pan)斷等,那倒還好(hao)了(le)(le)(le),后(hou)果(guo)(guo)也不會(hui)太嚴重,甚至終(zhong)還是(shi)可(ke)能自己跑(pao)回來的(de)(de)(de)(de)(de)(de)。但有(you)一(yi)(yi)(yi)種跑(pao)飛是(shi)比較可(ke)怕的(de)(de)(de)(de)(de)(de),一(yi)(yi)(yi)般我(wo)們在(zai)(zai)ROM中存放的(de)(de)(de)(de)(de)(de)程序(xu)目(mu)標(biao)代(dai)碼(ma)是(shi)1-3字節(jie)的(de)(de)(de)(de)(de)(de)指令,就(jiu)(jiu)是(shi)多3條字段(duan)的(de)(de)(de)(de)(de)(de)目(mu)標(biao)碼(ma)組(zu)成(cheng)了(le)(le)(le)執行動作,如果(guo)(guo)程序(xu)指針(zhen)跑(pao)飛到了(le)(le)(le)某個3字節(jie)指令的(de)(de)(de)(de)(de)(de)第2個字節(jie)上(shang)的(de)(de)(de)(de)(de)(de)時(shi)候,執行的(de)(de)(de)(de)(de)(de)后(hou)果(guo)(guo)是(shi)什(shen)么,可(ke)就(jiu)(jiu)真的(de)(de)(de)(de)(de)(de)沒(mei)人知道了(le)(le)(le),即使在(zai)(zai)程序(xu)上(shang)作了(le)(le)(le)足夠(gou)的(de)(de)(de)(de)(de)(de)數(shu)據判(pan)錯、邏輯跳(tiao)轉的(de)(de)(de)(de)(de)(de)防范措施,結(jie)果(guo)(guo)也不會(hui)好(hao)。而且ROM一(yi)(yi)(yi)般是(shi)不可(ke)能全部都被(bei)程序(xu)代(dai)碼(ma)填滿的(de)(de)(de)(de)(de)(de),總(zong)有(you)富余(yu)空(kong)(kong)間(jian),富余(yu)空(kong)(kong)間(jian)中的(de)(de)(de)(de)(de)(de)默(mo)認(ren)內容(rong)(rong)是(shi)啥,這些(xie)默(mo)認(ren)字節(jie)是(shi)否(fou)也會(hui)導致一(yi)(yi)(yi)些(xie)操作呢(ni)?單片機中的(de)(de)(de)(de)(de)(de)默(mo)認(ren)空(kong)(kong)間(jian)是(shi)0FFH,DSP的(de)(de)(de)(de)(de)(de)我(wo)沒(mei)查過,大(da)家有(you)興趣查一(yi)(yi)(yi)下,跳(tiao)到這些(xie)字段(duan)里,也是(shi)容(rong)(rong)易出麻煩的(de)(de)(de)(de)(de)(de)。

  

好(hao)了,不再羅嗦,直接給出解決方(fang)法吧,就(jiu)(jiu)是(shi)每隔一(yi)段程(cheng)序代碼(ma)(ma)或(huo)控制(zhi)區域,就(jiu)(jiu)人為放(fang)(fang)置(zhi)上(shang)幾個(ge)(ge)NOP指令,在NOP指令后(hou)放(fang)(fang)置(zhi)一(yi)個(ge)(ge)長跳轉的ERR處理程(cheng)序。注意NOP少放(fang)(fang)置(zhi)3個(ge)(ge),這(zhe)樣(yang)任何的跑飛多(duo)只能占用2個(ge)(ge)NOP,第三個(ge)(ge)NOP一(yi)樣(yang)還(huan)是(shi)能把程(cheng)序代碼(ma)(ma)揪(jiu)回來,揪(jiu)回來后(hou)就(jiu)(jiu)執行ERR處理程(cheng)序。

  

如果(guo)碰(peng)到安全性(xing)、可靠(kao)性(xing)等級要求(qiu)比(bi)(bi)較高的(de)(de)(de)(de)(de)(de)程序(xu),推薦的(de)(de)(de)(de)(de)(de)處理(li)(li)(li)方(fang)法(fa)(fa)可以采用熱備(bei)份(fen)的(de)(de)(de)(de)(de)(de)處理(li)(li)(li)方(fang)法(fa)(fa),即用兩段代碼同時(shi)執(zhi)行同一個(ge)功能(neng),執(zhi)行的(de)(de)(de)(de)(de)(de)結果(guo)進行對比(bi)(bi),如果(guo)一致(zhi)則放行通過,如果(guo)結果(guo)不(bu)一致(zhi),咋處理(li)(li)(li)就(jiu)看您的(de)(de)(de)(de)(de)(de)嘍。但是(shi)… …國人(ren)有的(de)(de)(de)(de)(de)(de)是(shi)辦法(fa)(fa),為(wei)了圖(tu)省(sheng)事,你不(bu)是(shi)要求(qiu)我編(bian)熱備(bei)份(fen)程序(xu)嗎,那(nei)好(hao),我就(jiu)把原來的(de)(de)(de)(de)(de)(de)代碼復制一遍,重新插(cha)入到某個(ge)地方(fang),您這和明朝(chao)時(shi)代馮(feng)保太監(還是(shi)嚴嵩、張居正(zheng)阿?拿不(bu)準了,大家(jia)有興趣的(de)(de)(de)(de)(de)(de)翻看《明朝(chao)那(nei)些事兒》查閱(yue)下)玩的(de)(de)(de)(de)(de)(de)沒啥兩樣,自(zi)己(ji)(ji)寫奏章(zhang),自(zi)己(ji)(ji)給(gei)自(zi)己(ji)(ji)審批奏章(zhang)。既然是(shi)備(bei)份(fen)就(jiu)是(shi)為(wei)了防止一個(ge)人(ren)出問題,那(nei)好(hao)的(de)(de)(de)(de)(de)(de)辦法(fa)(fa)自(zi)然是(shi)不(bu)同的(de)(de)(de)(de)(de)(de)人(ren)來編(bian)這段,如果(guo)原理(li)(li)(li)計算(suan)方(fang)法(fa)(fa)上(shang)(shang)也不(bu)同,數據采集通道也不(bu)同,那(nei)就(jiu)過年帶娶媳婦的(de)(de)(de)(de)(de)(de),好(hao)上(shang)(shang)加好(hao)了。

  

安全性(xing)和可靠性(xing)的編程細節注意事項還有很多(duo),窺一斑難見全豹(bao)呵,諸位仁兄一起努力鉆(zhan)研了。

  

4、數據、變量

  

變(bian)量的(de)(de)(de)(de)(de)(de)(de)(de)(de)定義(yi)是(shi)(shi)為的(de)(de)(de)(de)(de)(de)(de)(de)(de)避免(mian)各(ge)種(zhong)混淆,同(tong)(tong)(tong)一(yi)(yi)程序內數(shu)據和(he)數(shu)據的(de)(de)(de)(de)(de)(de)(de)(de)(de)混淆、不同(tong)(tong)(tong)人讀(du)程序時(shi)對(dui)變(bian)量理解上(shang)出現(xian)的(de)(de)(de)(de)(de)(de)(de)(de)(de)二義(yi)性、視覺效果上(shang)容易出現(xian)的(de)(de)(de)(de)(de)(de)(de)(de)(de)錯誤(wu)(字(zi)母的(de)(de)(de)(de)(de)(de)(de)(de)(de)"o"和(he)數(shu)字(zi)的(de)(de)(de)(de)(de)(de)(de)(de)(de)"0",字(zi)母的(de)(de)(de)(de)(de)(de)(de)(de)(de)"l"和(he)數(shu)字(zi)的(de)(de)(de)(de)(de)(de)(de)(de)(de)"1")。這里(li)要(yao)(yao)遵循一(yi)(yi)個"要(yao)(yao)么相同(tong)(tong)(tong),要(yao)(yao)么迥異(yi)"的(de)(de)(de)(de)(de)(de)(de)(de)(de)基本規(gui)(gui)則,這條規(gui)(gui)則在(zai)很多的(de)(de)(de)(de)(de)(de)(de)(de)(de)領域都有應用,用的(de)(de)(de)(de)(de)(de)(de)(de)(de)絕的(de)(de)(de)(de)(de)(de)(de)(de)(de)是(shi)(shi)朱元(yuan)璋,對(dui)待貪官,要(yao)(yao)么不理你,自覺點您貪差不多了(le)就收手吧,您自己不收手的(de)(de)(de)(de)(de)(de)(de)(de)(de)話,做的(de)(de)(de)(de)(de)(de)(de)(de)(de)過(guo)了(le)直(zhi)(zhi)接就殺(sha),株連幾族,所(suo)以在(zai)明朝,朱元(yuan)璋是(shi)(shi)殺(sha)人多的(de)(de)(de)(de)(de)(de)(de)(de)(de)皇(huang)帝;在(zai)結構的(de)(de)(de)(de)(de)(de)(de)(de)(de)防呆(dai)性設計上(shang),接插(cha)件的(de)(de)(de)(de)(de)(de)(de)(de)(de)選(xuan)(xuan)型也是(shi)(shi)如此,如果一(yi)(yi)個乳白色(se)和(he)一(yi)(yi)個淺灰(hui)色(se)的(de)(de)(de)(de)(de)(de)(de)(de)(de)同(tong)(tong)(tong)類接插(cha)件,好(hao)(hao)的(de)(de)(de)(de)(de)(de)(de)(de)(de)選(xuan)(xuan)擇(ze)是(shi)(shi)有很直(zhi)(zhi)觀的(de)(de)(de)(de)(de)(de)(de)(de)(de)視覺差異(yi)或結構的(de)(de)(de)(de)(de)(de)(de)(de)(de)差異(yi),或者干脆就是(shi)(shi)相同(tong)(tong)(tong)的(de)(de)(de)(de)(de)(de)(de)(de)(de),相同(tong)(tong)(tong)須基于(yu)一(yi)(yi)個前(qian)提,互(hu)換性要(yao)(yao)好(hao)(hao)。

  

用顯意(yi)的(de)符號來命名(ming)變量和(he)語句標號。標識(shi)符的(de)命名(ming)有明確含義,且是完整單(dan)(dan)詞(ci)(ci)或易(yi)理解的(de)縮寫(xie)。短單(dan)(dan)詞(ci)(ci)通(tong)過去掉"元(yuan)音"形成(cheng)縮寫(xie);長單(dan)(dan)詞(ci)(ci)取頭幾個字母形成(cheng)縮寫(xie);一些單(dan)(dan)詞(ci)(ci)有公(gong)認的(de)縮寫(xie)。如(ru):

  

Temp — tmp;

  

Flag — f.l.g;(*注(zhu):請(qing)去年中(zhong)間(jian)的.號(hao))

  

Statistic — stat;

  

Increment — inc;

  

Message — msg。

  

特殊約定或(huo)縮寫(xie),要(yao)有注釋(shi)說明(ming)。在源文件開始處,對(dui)使用(yong)的(de)縮寫(xie)或(huo)約定注釋(shi)說明(ming)。自己特有的(de)命(ming)(ming)名風格,要(yao)自始至終保持(chi)一致。對(dui)于變量(liang)命(ming)(ming)名,禁止取(qu)單個字符(fu)(如(ru)i、j、k...);含(han)義+變量(liang)類(lei)(lei)型(xing)、數(shu)據(ju)類(lei)(lei)型(xing)等(deng),i、j、k作局(ju)部(bu)循環變量(liang)是允(yun)許(xu)的(de),但容易混淆的(de)字母慎(shen)用(yong)。如(ru)int Liv_Width,L代(dai)表局(ju)部(bu)變量(liang)(Local)(g全局(ju)變量(liang)Global)、i代(dai)表數(shu)據(ju)類(lei)(lei)型(xing)(Interger)、 v代(dai)表 變量(liang)(Variable)(c常(chang)量(liang)Const)、Width代(dai)表變量(liang)的(de)含(han)義,這種命(ming)(ming)名方式可防止局(ju)部(bu)變量(liang)與全局(ju)變量(liang)重名。

  

禁(jin)用(yong)易混淆的(de)標識(shi)符(R1和Rl,DO和D0等)來表示不同的(de)變(bian)量、文件名(ming)和語句(ju)標號(hao)。

  

除(chu)了編譯開關/頭(tou)文件等特殊(shu)應用(yong),避免使用(yong)_EXAMPLE_TEST_之類以下劃線開始(shi)和結(jie)尾的定義。

  

全(quan)局(ju)變量(liang)是戰(zhan)略性資(zi)源(yuan),它(ta)決定(ding)了模塊和模塊間的(de)耦(ou)合度,需(xu)在項目上提(ti)升到(dao)一個足夠高的(de)高度,慎用(yong)全(quan)局(ju)變量(liang),不得不用(yong)的(de)時候,要(yao)單獨(du)為每(mei)一個全(quan)局(ju)變量(liang)編寫獨(du)立的(de)操作模塊或函數,在修改全(quan)局(ju)變量(liang)的(de)時候,要(yao)檢查(cha)是否有別的(de)函數在調用(yong)它(ta)并且需(xu)要(yao)此數值保(bao)持穩定(ding)。

  

對變(bian)量(liang)代表某(mou)個(ge)特定(ding)含義(yi)的時候(hou),盡量(liang)不要僅(jin)僅(jin)用位來代表什么,比如(ru)用某(mou)變(bian)量(liang)的第零位代表某(mou)個(ge)狀態(tai)(tai)(0000 0001,其中僅(jin)用1代表某(mou)個(ge)內容,這(zhe)樣(yang)01H、03H、05H… 會有很多(duo)個(ge)組(zu)合都能代表這(zhe)個(ge)狀態(tai)(tai));位容易受干擾被修改,信息出現錯誤的幾率(lv)大很多(duo)。

  

也不要用(yong)00H、FFH等數據代表,就(jiu)像我們面試一群人(ren)一樣,第一個(ge)被(bei)面試人(ren)和(he)后一個(ge)被(bei)面試人(ren)容(rong)易被(bei)記住,00H和(he)FFH亦然,系統(tong)默(mo)認狀(zhuang)態是00和(he)FF的(de)時候(hou)較多,他們容(rong)易被(bei)復(fu)位或置位成這類數值。推薦(jian)以(yi)四位的(de)二(er)進(jin)制碼的(de)某個(ge)中間值為狀(zhuang)態變量,如1001。

  

變(bian)量數據在應用之前宜作數據類(lei)型和數值范圍的判斷;

  

數(shu)據(ju)(ju)在(zai)存儲過程(cheng)中也(ye)(ye)(ye)容(rong)易出現問(wen)題,EEPROM、RAM等(deng)都(dou)有(you)(you)過類似的(de)(de)(de)案例。數(shu)據(ju)(ju)出錯(cuo)時(shi)避(bi)免不(bu)(bu)(bu)了(le)(le)的(de)(de)(de),解決(jue)(jue)的(de)(de)(de)辦法是(shi)(shi)學花旗銀行等(deng)美國(guo)金融(rong)企業,之(zhi)所(suo)以在(zai)9.11后他們(men)能很快恢復業務,基本沒有(you)(you)數(shu)據(ju)(ju)方面的(de)(de)(de)損失,原因何在(zai)?因為(wei)他們(men)有(you)(you)異(yi)地容(rong)災數(shu)據(ju)(ju)備份(fen)(fen)系(xi)統,知里面有(you)(you)兩個關鍵詞,異(yi)地、備份(fen)(fen)。我(wo)們(men)的(de)(de)(de)信(xin)息也(ye)(ye)(ye)同樣,首先選(xuan)(xuan)擇存在(zai)不(bu)(bu)(bu)同的(de)(de)(de)介質中、或相同的(de)(de)(de)介質但迥異(yi)的(de)(de)(de)存放環境和位置下,雙重備份(fen)(fen)的(de)(de)(de)結局是(shi)(shi)兩邊不(bu)(bu)(bu)一(yi)致的(de)(de)(de)時(shi)候(hou)(hou),數(shu)據(ju)(ju)被懷疑并拒絕反映執行,但嵌入(ru)式(shi)軟(ruan)件很多時(shi)候(hou)(hou)是(shi)(shi)要靠數(shu)據(ju)(ju)來推動執行機(ji)構的(de)(de)(de),即(ji)使發(fa)現數(shu)據(ju)(ju)有(you)(you)問(wen)題也(ye)(ye)(ye)不(bu)(bu)(bu)允許行政不(bu)(bu)(bu)作為(wei),這(zhe)種情況下,作為(wei)我(wo)們(men)也(ye)(ye)(ye)很難辦,2個不(bu)(bu)(bu)同的(de)(de)(de)數(shu)據(ju)(ju),有(you)(you)明顯(xian)問(wen)題的(de)(de)(de)還好(hao)排(pai)除,都(dou)在(zai)有(you)(you)限范圍內可如何判(pan)定哈(ha)?這(zhe)種時(shi)候(hou)(hou)沒辦法只好(hao)三備份(fen)(fen),少數(shu)服從多數(shu)是(shi)(shi)唯一(yi)的(de)(de)(de)選(xuan)(xuan)擇了(le)(le)。石頭剪(jian)刀布(bu)的(de)(de)(de)方式(shi)不(bu)(bu)(bu)好(hao)用,葛優的(de)(de)(de)分歧終端機(ji)也(ye)(ye)(ye)不(bu)(bu)(bu)適(shi)用,就只好(hao)選(xuan)(xuan)擇這(zhe)種原始(shi)有(you)(you)效(xiao)的(de)(de)(de)辦法了(le)(le),唯一(yi)需要注意(yi)的(de)(de)(de)是(shi)(shi)數(shu)據(ju)(ju)宜存放于三種不(bu)(bu)(bu)同的(de)(de)(de)備份(fen)(fen)環境下,不(bu)(bu)(bu)然豈不(bu)(bu)(bu)成(cheng)了(le)(le)你家哥倆兒,咋表決(jue)(jue)都(dou)占便宜啊。

  

以上僅就(jiu)嵌入式(shi)軟件可(ke)靠性的(de)關注方面(mian)分(fen)了(le)幾大類,進行(xing)了(le)基本(ben)的(de)描(miao)述(shu),實際(ji)應(ying)用中,需要關注的(de)點還有很多很多,如果是(shi)準(zhun)備自行(xing)制定(ding)設計(ji)規范的(de)話(hua),以上的(de)思路應(ying)該也可(ke)以給(gei)與一(yi)些啟迪(di)了(le)。

發表評論
評論列表(網友評論僅供網友表達個人看法,并不表明本站同意其觀點或證實其描述)

全國咨詢熱(re)線:400-611-6270,雙休日(ri)及節假(jia)日(ri)請致電值班手(shou)機:15010390966

在線(xian)咨詢(xun): 張(zhang)老(lao)師QQ(619366077), 宋老(lao)師QQ(2814652411), 陳老(lao)師QQ(1462495461)

企(qi)業培訓洽(qia)談專線(xian):010-82600901,院校合作洽(qia)談專線(xian):010-82600350,在線(xian)咨詢:QQ(248856300)

Copyright 2004-2018 華清遠見(jian)教育科技集團(tuan) 版權所有(you) ,京ICP備16055225號(hao),京公(gong)海網安備11010802025203號(hao)