尚曉平


【摘要】 隨著科技的發展和進步,在很多領域已經開始使用嵌入式系統,但是該系統軟件在使用過程中存在的一些問題也逐漸凸顯。系統軟件出現錯誤后會造成巨大損失。本文在分析該系統軟件特點的基礎上進一步探討了軟件實現過程中常見的問題,并提出了相應解決措施。
【關鍵詞】 嵌入式系統 軟件實現 常見問題 解決方法
計算機技術和軟件開發技術是當今社會科學技術不斷發展和進步的產物,其中,嵌入式系統軟件在國防、通信、電子信息和互聯網等領域應用越來越廣泛。據有關研究數據顯示,當前世界范圍內嵌入式設備運行總量呈快速增長的趨勢,并且已經突破30億臺。可見其對社會發展影響越來越大,因此,有必要對該系統軟件實現中常見問題進行分析,并探討相應解決措施。
一、嵌入式系統概述
1.1嵌入式系統的概念
嵌入式計算機系統,簡稱嵌入式系統,是一種基于計算機技術并以應用為中心,同時具有多種功能的計算機系統。這種專用的計算機系統對功能、可靠性、成本和體積等要求嚴格,表現在其硬件和軟件必須支持裁剪功能等。具體來說,它是集各種先進技術,如通信技術、計算技術、語音圖像數據傳輸技術和微電子技術等于一體的綜合產物,具有十分強大的功能和作用。
1.2嵌入式系統的特征
同普通計算機系統相比,嵌入式系統表現出的特征有所不同,具體如下:①嵌入式系統是各種先進技術的集成,包括先進的電子技術、半導體工藝、計算機技術等,系統的實現需要投入密集的技術和資金,并且高度分散。②嵌入式系統以較低的成本和能耗、較小的體積以及高實時性和高集成度,可以實現在芯片內部有機地集成由板卡完成的任務。③嵌入式系統可有機結合具體應用,同步更新具體產品可實現對該系統的升級。所以該系統產品在市場中一般具有較長的生命周期。④嵌入系統中的軟件一般在處理器內部存儲器件或存儲器芯片中固定,而不會在外部載體中進行存儲,這樣就可有效提高執行速度的同時,增強系統的可靠性。
二、嵌入式系統的設計過程分析與常用方法
2.1嵌入式系統設計過程
一般情況下,嵌入式系統的設計過程可按圖1所示的步驟實現。
具體來講,嵌入式系統設計內容為:①產品定義。明確定義需要完成的任務,就需要對分析和細化應用的實際需求,同時列出表格,顯示出需要完成的各種功能。②劃分硬件和軟件。嵌入式系統設計要從兩方面入手,一是硬件,二是軟件。設計人員在設計之前,需要重點考慮硬件和軟件各自需要完成的功能,確定后再行實施。③迭代實現。在完成硬件和軟件的劃分后,就開始延續至迭代實現階段。對硬件和軟件進行初步劃分后,相關設計小組就開始對硬件和軟件分別建模。隨著建模工作的深入,硬件和軟件劃分界限便可實現移動,從而實現對硬件和軟件更加合理的劃分。④詳盡的硬件和軟件設計。迭代實現階段完成后,系統的硬件部分和軟件部分就得到了合理的劃分,在此基礎上就可分別實現該階段系統的硬件和軟件。⑤產品測試和發布階段。對產品進行必要的測試,讓系統性能達到最佳運行效果,同時保證嵌入式系統能夠達到成本目標。另外嚴格的測試產品性能,還可提高嵌入式系統可靠性要求。⑥系統維護及升級。產品發布之后,還需做好后續的維護和升級工作。因為產品在使用過程中可能會遇到各種各樣的問題,這些問題可能是設計階段考慮不周引發的,另外,用戶在使用過程中還可能提出更多的需求,這就需要對系統進行維護和升級,以解決這些在使用過程中出現的問題。
2.2嵌入式系統常用分析方法
嵌入式系統一般為實時系統,同系統資源關系密切,且對時間要求較高,系統時限響應和并發處理較為困難,因此有必要對該系統分析和設計方法進行研究。嵌入式軟件設計常用方法有:流程圖、結構圖、數學分析及語言描述、編程設計語言、數據流圖和有限狀態機等。各自的優缺點比較如下表1所示。
三、嵌入式軟件實現常見問題及解決
衡量一個系統軟件的質量標準是,看其是否具備穩定性和可靠性,以及能否實現系統的功能需求。系統軟件如果出現錯誤,可能會造成系統功能喪失,甚至可能引發嚴重后果。比如對國家安全而言至關重要的國防系統軟件如果出錯,其控制的導彈系統出現紊亂,后果不堪設想。對于嵌入式軟件
表1
而言,其本身具有較強的專業性,需借助專業計算機設備實現軟件的特定設計,其設計難度可想而知,這在一定程度上制約了軟件開發進程,使得系統軟件難以及時投入應用。下面針對嵌入式系統軟件實現的常見問題進行分析。
3.1余量問題及解決
就硬件載體而言,嵌入式系統軟件運行速度與存儲余量必須在20%以上。該系統軟件一般采用中斷或周期運行方式, 因為其對實時性要求比較高,且這樣可保證在預留20%余量的前提下執行完所有的實時任務,實現后臺處理與系統操作,進而確保該系統能安全可靠運行。如果所有實時任務無法在有效執行周期內完成,那么系統性能就會受到影響,甚至癱瘓。此外,系統數據存儲器和程序存儲器須占用一定空間,所以嵌入式系統必須預留不少于20%的余量。嵌入式系統軟件實現中,設計人員常常對余量的設計要求不夠重視,或者計算機精度達不到相關規范要求的標準,導致該系統隱患普遍存在。①存儲余量。程序存儲器余量比較容易統計和實現,即嵌入式軟件在連接匯編及編譯后,可分析內存映射文件,獲取軟件對存儲器占用方法,進而采用代碼優化方法滿足余量要求。目前無法直接使用靜態分析的方法對數據存儲余量情況進行統計,在這方面,多數設計人員僅統計出內存映射文件的數據存儲區,這樣所獲得的余量就不全面,即統計上出的文件只能反映全局變量的占用情況,難以反映動態時臨時變量對數據存儲器和函數調用過程軟堆棧占用情況,此時20%的數據存儲余量就難以得到保證。針對動態運行情況,基于對動態內存申請及釋放的考慮,函數嵌套調用會增加數據存儲器使用及統計的復雜性,證實軟件數據存儲器余量與既定要求相符的方法是逆向方法,即嵌入式軟件位置申請占20%數據存儲空間的全局數組,之后進行軟件的仿真運行。如果系統運行無異常,加上運行過程數組存儲內容未被更改,那么數據存區儲余量就能滿足既定要求。②運行速度余量。程序的最大執行路徑往往難以通過實施任務執行周期監實現,因此根本難以確定系統軟件分支組合狀態,這樣就很難確定程序動態運行時間。出現這種情況時,可采用逆向方法證實軟件運行速度余量狀況,即對軟件運行起始位置做延時處理,運行周期時間控制在20%左右為宜,之后進行程序的仿真運行,系統工作不出現異常時,則證明系統運行速度滿足余量運行要求。系統在運行過程中可能會出現某些編譯器延時函數容易中斷及周期計數的現象,這樣就會造成統計的錯誤。解決辦法是禁止采用編譯器自帶延時函數,此時的延時函數實現最好采用循環空操作方法。影響運行速度余量的因素相對較多,比如軟件的功能實現、計算方式以及時序調度等,其中影響力較大的是軟件的時序調度。此外實時系統規定的全部任務都應做到按時完成,因此必須控制好單位時間內的任務量,此時為確保算法和余量符合要求,應根據系統算法優先級別和功能的重要性合理安排不同任務的執行速率。
3.2中斷問題及解決
嵌入式系統軟件一般是通過中斷技術控制來響應外部事件,同時在中斷服務程序運行中實現響應的處理功能。從本質上來講,嵌入式系統驅動事件首先應有中斷服提供運行環境,通過該服務程序調度相關功能的模塊,以實現系統的不同功能。另外,嵌入式系統還可通過中斷控制實現更加靈活和方面的應用。但是嵌入式系統軟件設計實現中,也會在不知覺中留下隱患,在這一過程中,中斷的嵌套會增加軟件的結構層次,加上軟件在設計時,中斷的恢復和保護都具有很高的要求,此時就需要充分考慮計算機的硬件特性,否則中斷系統中的變量問題極易發生。如果在嵌入式系統中存在多個中斷源,且存在與之對應的中斷源,那么不同中斷服務程序之間的公用變量就成為需要特備注意的問題。中斷服務程序存在的公用變量比較容易受人們的忽視,加上中斷和中斷源之間聯系非常密切,所以這種錯誤就會造成較大的危害。如果想要徹底消除掉這類錯誤,可采用如下方法:在嵌入式系統軟件實現過程中,嚴格控制全局變量的使用,且變量不能公用于不同服務模塊,如果變量必須要在不同中斷服務模塊中公用,就需對該變量賦值。
四、結束語
嵌入式系統軟件設計的獨特性主要通過系統的特殊性和專用性表現出來。嵌入式系統軟件在實現過程中會出現很多問題,可采用分析的方法解決,但問題出現頻率比較高,而且其成因也是多種多樣,這樣就會制約系統的正常開發與安全運行。因此就需要規范系統軟件的設計過程,盡可能減少設計過程中出現的各種錯誤。同時強化管理研制過程,尤其要注意那些易出錯的部位,以保證軟件的設計質量。
參 考 文 獻
[1]趙俊蓮,李艷.嵌入式系統軟件實現常見問題及解決方法探究[J].電子制作 ,2013(20).
[2]張成艷.嵌入式系統軟件實現常見問題及解決方法研究[J].電腦開發與應用,2014(2).
[3]何俊芬.嵌入式系統軟件實時性測試方法研究[D].三峽大學,2010.
[4]許昀.基于實時操作系統的嵌入式系統軟件設計[J].安徽電氣工程職業技術學院學報 ,2013(4).
[5]張德全.基于狀態圖和構件的嵌入式系統軟件設計及其可靠性分析[D].天津大學,2010.