劉林芳
(長沙華中涉外職業高中 湖南省長沙市 410000)
嵌入式系統是一種可以獨立、自主運行的計算機器件,其特點在于其中的軟硬件可裁剪。嵌入式系統主要由軟件及硬件兩部分組成,C 語言是其軟件功能開發過程中應用最為廣泛的一種計算機語言[1-2]。
C 語言計算的靈活性較高,且管理與維護較為容易,可在很大程度上提高嵌入式系統編程軟件的拓展性和高效性。為此,設計嵌入式系統中C 語言編程軟件的重要性不言而喻[3]。
目前,常用的編程軟件主要有文獻[4]中提出的基于ZYNQ-7000 的遠距無線時間同步系統的C 語言編程軟件設計方法和文獻[5]中提出的基于C 語言技術的計算機軟件編程設計方法。但在實際的應用中發現,上述傳統方法存在編程過程耗時長、軟件空間資源占用率高、運行準確率低的問題,使得其可靠性大大降低。
為有效解決傳統方法存在的不足,本研究設計了一種嵌入式系統中C 語言編程軟件設計方法,以期為嵌入式系統的發展提供可靠、有效的技術支持。
伴隨著現代計算機技術的飛躍式發展,嵌入式系統的功能性也越來越強大,與此同時,其技術性也逐漸變得愈加復雜[6-8]。因此,為有效提高嵌入式系統軟件部分的開發以及運行效果,本研究提出對其展開層次架構設計。
本研究以層次化劃分為理念,將嵌入式系統中編程軟件部分規劃為不同的層次架構,每個架構對應不同的軟件模塊,與此同時確定模塊與模塊間的關聯性。層次架構的設計思路如下:
(1)本研究將嵌入式系統的層次架構劃分為數據整理層、分析處理層以及功能展示層三個主要的部分,各層次架構之間的功能呈現出漸進的關系。應用過程中,注重嵌入式系統各個功能模塊的協調性和層次性,針對相同的問題,對不同的層次架構均可提供有效的處理方案,上一層次架構的運行需依靠下一層次架構的支撐;
(2)保障嵌入式系統軟件模塊功能的高內聚與低耦合,在劃分其層次架構的過程中,按照任務分析、功能選擇、重用程度的順利實現;
(3)盡可能地降低層次架構與層次架構間的相關性,以此來避免因某一層次架構發生故障而對整個嵌入式系統軟件模塊產生影響。
本研究設計的嵌入式系統軟件模塊層次架構設計方法的步驟如下:
步驟一:按照遞進式的方式對嵌入式系統的功能需求展開分析,并將其抽象化,從而確定嵌入式系統的概念層次,再將概念層次變化為軟件層次。上述步驟是一個明確功能需求并將其變化為開發設計需求的過程[9-10];
步驟二:按照反向遞進式的方式對嵌入式系統硬件部分的功能需求展開分析,并將其抽象化,從而細化出必要的嵌入式系統硬件環境操作原語。針對嵌入式系統來說,規模龐大的開發過程是通過軟件編程設計來實現系統硬件的各項功能的過程。封裝硬件功能能夠有效降低嵌入式系統開發過程的繁雜性,同時也可以提高嵌入式系統軟件編程代碼的復用性[11-12];
步驟三:按照遞進式和反向遞進式相融合的方式,逐級檢查相鄰的兩個層次架構間的調用關系,在此基礎上,保障二者間數據交流的暢通性,從而保障每一個層次架構上的調用都有效;
步驟四:對嵌入式系統軟件模塊的每一個層次架構的功能實施整合處理,優化其各項功能,以此來達到軟件模塊最優化,這一過程也是對軟件編程代碼重用的最優選擇過程。
在上述設計嵌入式系統層次架構的基礎上,利用C 語言技術對其中的編程軟件展開設計。
盡管標準的C 語言開發過程缺少軟件框架管理,但結合上述設計的嵌入式系統層次架構,可建立嵌入式系統的管理原則,從而提高對編程代碼的組織管理和調控開發能力。
3.1.1 代碼管理
首先按照層次劃分的原理對代碼目錄實施組織管理,主程序代碼以及頭文 件置于根目錄中,其余文件置于其余文件夾中,文件名的格式要統一。在此基礎上,在嵌入式系統C 語言開發的過程中,就能夠充分利用不同層次架構的優勢,使得操作人員能夠在不同的文件夾中同時完成不同種類的工作。
3.1.2 模塊管理
為了實現嵌入式系統軟件模塊的高內聚性功能,本研究盡量避免使用全局變量來完成對系統模塊的管理,而是利用函數參數來實現信息的交互與處理。相同種類的系統任務盡量儲存于同一文件夾內。上一層次架構在開發時能夠調用下一層次架構,但要注意下層次架構盡可能避免交叉和越級調用。
在任務循環設計時,盡量讓循環變量接近于零,以此來減少因循環終止而造成的不必要嵌入式系統開銷。一般情況下,for( )循環的格式應表示為如下形式:
for(x=0,x<10,x++){…}
這一過程中,x 從 0 增加到 9。若將上述代碼改寫為如下形式,則x 從 9 減少到 0,循環執行速度將會大大提高。
for(x=10,x--){…}
C 語言編程中包括很多含有參數和函數的表達式,因此,設計函數表達并研究函數的變化至關重要。本研究對main 函數實施編輯處理,將其中的參數利用agent 來表示,在這一過程中,需通過分析來獲得main 函數相關的即時數組信息。
嵌入式系統軟件模塊的函數變化會對函數的配置啟動產生直接影響,因此,本研究首先對main 函數實施歸零處理,從而使C 語言編程程序進入高效運行狀態,且main 函數可以對嵌入式系統模式實施智能調控,通過交叉比對結果刪除無用數據,避免C 語言程序混亂,然后重新定義新的main 函數表達式,以此來保障函數間的有效串接,從而使嵌入式系統編程程序更好地適應不同的語言環境。
為驗證上述研究的嵌入式系統中C 語言編程軟件設計方法的可行性與有效性,設計如下實驗加以證明。實驗在MATLAB 仿真平臺上完成。為有效避免實驗結果過于單一、提高其說明性,將文獻[4]中的基于ZYNQ-7000 的遠距無線時間同步系統的C 語言編程軟件設計方法和文獻[5]中的基于C 語言技術的計算機軟件編程設計方法作為對照,與本文方法共同完成性能對比驗證。對比指標如下:
(1)編程過程耗時。該指標可直接反映不同方法的編程效率。編程過程耗時越短,說明編程效率越高。
(2)軟件空間資源占用率。該指標可直接反映不同方法的空間資源占用差異。
(3)運行準確率。該指標可體現不同方法編程結果的可靠性。運行準確率越高,說明方法編程結果的可靠性越高。
在實驗次數不斷增加的情況下,統計不同方法的編程過程耗時,結果如表1所示。

表1:不同方法的編程過程耗時統計結果

表2:不同方法的軟件空間資源占用率對比結果

表3:不同方法的運行準確率對比結果
分析表1可知,文獻[4]方法的編程過程耗時在8.10s-8.90s 之間,文獻[5]方法的編程過程耗時在8.80s ~10.00s 之間,而本文方法的最大編程過程耗時僅為6.60s,明顯少于兩種傳統方法。根據上述結果可知,應用本文方法能夠使得編程過程耗時大大縮短。
在此基礎上,為進一步驗證嵌入式系統中C 語言編程軟件設計方法的可行性與有效性,測試不同方法的軟件空間資源占用率,對比結果如表2所示。
分析表2中的實驗數據可知,由于3 種方法采用的編程處理方式不同,隨著試驗次數的增加,其軟件空間資源占用率也會隨之發生變化。2 種傳統方法的軟件空間資源占用率均在30.0%以上。而本文方法的軟件空間資源占用率最低為16.0%,最高也僅為18.0%,說明本文方法占用的軟件空間資源量最少。
最后,在實驗次數不斷增加的情況下,統計不同方法的運行準確率,結果如表3所示。
分析表3中的實驗數據可知,由于3 種方法采用的編程處理方式不同,隨著試驗次數的增加,其運行準確率也會不斷變化。2 種傳統方法的軟件空間資源占用率均在85.0%以下。而本文方法的軟件空間資源占用率最低為95.0%,最高也僅為98.0%,說明本文方法編程結果的可靠性更高。
綜上所述可知,本文提出的嵌入式系統中C 語言編程軟件設計方法具有編程過程耗時少、軟件空間資源占用率低、運行準確率高的應用優勢。
本研究提出了一種嵌入式系統中C 語言編程軟件設計方法,并通過仿真實驗,證明了該方法具有編程過程耗時少、軟件空間資源占用率低、運行準確率高的應用優勢,可有效為嵌入式系統的發展提供技術支持。