優(yōu)勝從選擇開始,我們是您最好的選擇!—— 中州期刊聯(lián)盟(新鄉(xiāng)市博翰文化傳媒有限公司)
0373-5939925
2851259250@qq.com
我要檢測 我要投稿 合法期刊查詢
您的位置:網(wǎng)站首頁 > 優(yōu)秀論文 > 正文

嵌入式Linux智能抄表終端軟件代碼審查技巧

作者:周云波、楊京燕來源:原創(chuàng)日期:2013-07-05人氣:632
隨著嵌入式硬件的飛速發(fā)展,嵌入式系統(tǒng)軟件的規(guī)模日益增大,其結構也越來越復雜。嵌入式系統(tǒng)越來越多的被應用在工業(yè)控制、信息家電、移動通信、國防等對質(zhì)量要求非常嚴格的領域[1],用于一些關鍵性的控制管理。因此,嵌入式系統(tǒng)中出現(xiàn)的問題往往會導致無可挽回、致命的錯誤,這使得對嵌入式系統(tǒng)軟件代碼的安全性,可靠性和穩(wěn)定性的要求極高,在軟件開發(fā)階段,對軟件代碼進行審查,在早期發(fā)現(xiàn)并解決問題顯得尤為重要。
嵌入式Linux系統(tǒng)的內(nèi)核是用C語言編寫,在Linux編程環(huán)境下,終端軟件應用程序的開發(fā)使用的也是C/C++語言。現(xiàn)代的C/C++編譯器都能在一定程度上發(fā)現(xiàn)代碼存在的問題和缺陷[2],并對代碼進行一定的優(yōu)化。但是,大部分的編譯器只能發(fā)現(xiàn)代碼的一些基本語法問題,平衡代碼的執(zhí)行速度和大小[3,4]。如果想要提高代碼的安全性,可靠性和穩(wěn)定性,并得到執(zhí)行快速而又小的代碼,僅僅依靠編譯器是不可能的[5]。目前,常用的代碼審查方法和問題總結有很多,但是針對嵌入式代碼的卻很少,也幾乎沒有人做過系統(tǒng)全面的研究。
長沙威勝信息技術有限公司研發(fā)的系列智能抄表終端產(chǎn)品,均采用Linux+ARM架構,并使用C/C++語言進行應用程序開發(fā)。軟件部分包括抄表模塊,規(guī)約解析模塊,數(shù)據(jù)管理模塊,菜單顯示模塊,設備監(jiān)控模塊等多個模塊,系統(tǒng)結構復雜,程序代碼量大,如果在軟件開發(fā)階段,沒有對代碼質(zhì)量嚴格把關,進行層層測試,產(chǎn)品進入現(xiàn)場后,將會暴露大量問題。實踐也已經(jīng)證明,從現(xiàn)場反饋回來的許多問題,都是由于在軟件開發(fā)階段,對代碼缺乏嚴格高效的審查所造成的。如果在軟件開發(fā)的早期,能夠對代碼進行的嚴格的審查和優(yōu)化,這些問題都可以得到避免。為此,在產(chǎn)品的前期研發(fā)階段和后期的維護階段,開發(fā)人員編寫或修改的每一條代碼都必須經(jīng)過代碼測試人員的嚴格測試,包括動態(tài)測試和靜態(tài)測試。本文根據(jù)大量工作實踐經(jīng)驗,總結了基于嵌入式Linux的終端軟件代碼的審查技巧和方法。
2、嵌入式Linux終端軟件代碼的常見問題
2.1運算符優(yōu)先級問題
運算優(yōu)先級問題是代碼中常見的問題,它不涉及到語法,編譯器無法識別程序員的真正意圖,在軟件后期維護中容易造成理解錯誤,例如:
2.2內(nèi)存泄露問題
代碼審查過程中,發(fā)現(xiàn)仍然存在很多資源回收處理的問題,主要體現(xiàn)在以下幾個方面:
2.2.1函數(shù)返回時的return問題
函數(shù)return時,需要進行資源回收處理,這里的return既包括錯誤處理分支returnfalse,也包括函數(shù)執(zhí)行完后的正常退出,資源釋放包括關閉文件指針,釋放內(nèi)存空間,關閉數(shù)據(jù)庫等等。在終端軟件程序中存在這樣的問題較多,示例參考2.2.2中的代碼:
2.2.2strdup使用問題
在使用strdup后,沒有調(diào)用free()函數(shù)釋放資源。strdup函數(shù)本身具有特殊性,在調(diào)用函數(shù)的時候,隱式的調(diào)用了malloc函數(shù)進行內(nèi)存申請。所以,strdup函數(shù)的使用也應該和free函數(shù)配對使用。這樣的函數(shù)實際中還會大量存在,我們在調(diào)用時,應該先明確函數(shù)功能描述。

網(wǎng)絡客服QQ: 沈編輯

投訴建議:0373-5939925????投訴建議QQ:

招聘合作:2851259250@qq.com (如您是期刊主編、文章高手,可通過郵件合作)

地址:河南省新鄉(xiāng)市金穗大道東段266號中州期刊聯(lián)盟 ICP備案號:豫ICP備2020036848

【免責聲明】:中州期刊聯(lián)盟所提供的信息資源如有侵權、違規(guī),請及時告知。

版權所有:中州期刊聯(lián)盟(新鄉(xiāng)市博翰文化傳媒有限公司)

關注”中州期刊聯(lián)盟”公眾號
了解論文寫作全系列課程

核心期刊為何難發(fā)?

論文發(fā)表總嫌貴?

職院單位發(fā)核心?

掃描關注公眾號

論文發(fā)表不再有疑惑

論文寫作全系列課程

掃碼了解更多

輕松寫核心期刊論文

在線留言