公務員期刊網(wǎng) 論文中心 正文

嵌入式系統(tǒng)下C語言編程軟件設計架構

前言:想要寫出一篇引人入勝的文章?我們特意為您整理了嵌入式系統(tǒng)下C語言編程軟件設計架構范文,希望能給你帶來靈感和參考,敬請閱讀。

嵌入式系統(tǒng)下C語言編程軟件設計架構

摘要:傳統(tǒng)編程過程中,不僅需要消耗大量時間,同時還會出現(xiàn)軟件資源空間占用率高等問題,為了切實解決這些問題,本研究指出了一種基于嵌入式系統(tǒng)的C語言編程軟件設計架構方法,具體闡述了模塊劃分原則以及重點注意事項,并從分層方向與分層架構設計方法兩個方面分析了分層架構,依托于中斷服務程序,完成系統(tǒng)軟件開發(fā)與設計。

關鍵詞:嵌入式系統(tǒng);C語言;編程軟件

0引言

C語言在嵌入式軟件開發(fā)中有著非常廣泛的應用,這是因為C語言能夠很好的匹配高級與低級語言,同時簡潔高效、靈活便捷,可以實現(xiàn)對硬件的直接操作,然而由于C語言具有較強的靈活性,也導致了代碼管理與維護問題較為繁瑣復雜[1]。和傳統(tǒng)形式的軟件編程相比較,嵌入式系統(tǒng)編程是以某個相應的硬件平臺為載體的,服務的是一種專用的計算機系統(tǒng),不單單有對硬件操作的復雜性,同時還表現(xiàn)出應用層次的通用性。所以,在實際開展軟件開發(fā)時,選取適宜的軟件框架以及優(yōu)異的設計方法,加強對項目的工程化管理,可以有效地指導軟件開發(fā)的層次劃分以及功能模塊規(guī)劃設計。一方面可以很好的提升高級軟件系統(tǒng)開發(fā)速度與質(zhì)量,提高后期執(zhí)行與維護的便捷性,另一方面也可以有效地提升程序代碼的重用性、延伸性以及穩(wěn)定性。為了進一步提高嵌入式系統(tǒng)視域下C語言編程軟件設計效率與品質(zhì),本文建立在現(xiàn)階段已有的主流軟件工程思想之上,將面向?qū)ο笤O計技術、分層技術等與C語言嵌入式編程結合起來,深入探討基于嵌入式系統(tǒng)的C語言編程軟件設計方法、分層架構等,為不斷提高編程質(zhì)量與效率提供幫助。

1模塊劃分

模塊劃分主要表示為將某個龐大的、復雜程度較高的程序依照需要實現(xiàn)的不同功能,將其分割成若干個小段,并確保每一個小段都能夠完成一個相應的功能[2]。軟件需要最大程度降低和外部模塊的接觸,進一步改善程序的可移植性能,同時明確其能夠達到的既定功能。通常來說,嵌入式系統(tǒng)涵蓋了兩個方面的模塊,分別是硬件驅(qū)動模塊以及軟件功能模塊[3]。其中一個硬件驅(qū)動模塊往往只與某個特定的硬件相匹配,而在進行軟件功能模塊劃分過程中,應當要最大程度符合低耦合、高內(nèi)聚的基礎需求[4]。在進行模塊設計與開發(fā)以達到不同功能時,需要嚴格遵守兩個關鍵性原則。(1)模塊的獨立性原則,每一個模塊均是獨立存在的,避免不同功能模塊之間出現(xiàn)信息交互的現(xiàn)象,既不會產(chǎn)生相互之間的影響,同時也不會產(chǎn)生相互之間的依存,任何一個模塊中的函數(shù)指令均不會與其他模塊變量建立聯(lián)系,不同功能模塊之間的連接是建立在函數(shù)接口基礎之上的。(2)正交性原則,所有的功能模塊都是唯一且確定的,而這中間的變量和其要達成的功能是相同的。在實際進行模塊劃分過程中,應當要特別重視以下四點注意事項:(1)當一個功能模塊在為其他關聯(lián)功能模塊提供相關數(shù)據(jù)以及外部函數(shù)時,應當要在頭文件(.h)中特別注明extern字樣進行聲明。(2)某一個功能模塊內(nèi)包含的全局變量以及函數(shù)信息,應當要在頭文件(.c)中特別注明static字樣來聲明。(3)當出現(xiàn)某一個功能模塊同時涵蓋有.h文件以及.c文件時,需要在該功能模塊的接口文件中基于(.h)進行聲明。(4)需要特別注意的是,(.h)頭文件中不可以對任何定量進行定義,這是由于定義變量屬于匯編方面的內(nèi)容,會根據(jù)實際要求匹配相應的內(nèi)存[5]。

2分層架構

2.1分層方向

現(xiàn)階段技術分層主要涵蓋了兩個大方向,(1)自頂往下的方法,這種方法在當下嵌入式系統(tǒng)應用層設計中有著十分廣泛的應用,不僅僅是一種從抽象向具體的開發(fā)模式,同時也是一種基于邏輯總體描述規(guī)范或最上層的程序為出發(fā)點逐步往下拓展的操作模塊。(2)自底層往上的方法,是一種實際功能發(fā)展為抽象概念,這種模式在硬件驅(qū)動開發(fā)與設計中有著較為普遍的應用。先進行功能模塊的探究,確保其能夠?qū)δ繕藨脤ο螽a(chǎn)生一定的作用,同時研究普遍使用的操作方式。不管是自頂往下方法,還是自底往上方法,兩者方法都有著各自的優(yōu)勢與劣勢,為了確保能夠獲得理想的效果,在實際進行系統(tǒng)軟件設計與開發(fā)時,應當要在明確軟件實際功能需求的基礎之上,科學合理地使用某一種方法或兩者混合使用。例如在邏輯分析應用過程中,應當要選取自頂往下的方法,進一步明確功能模塊的邏輯性,降低不同功能模塊的開發(fā)時間,該是模塊執(zhí)行與移植的速度。在進行硬件操作過程中,則需要選用自底往上的方法,充分明確硬件操作規(guī)范,將各個操作從中獨立出來,從而為上層應用的模塊移植提供良好的支持。

2.2分層架構設計方法

之所以對架構進行分層設計與開發(fā),其重要目的是為了有效滿足編程過程中不同功能的具體需求,將需要實現(xiàn)的總體功能劃分為若干個獨立子功能,在確保各個子功能可以實現(xiàn)對應功能后,再對其進行整合。所以,必須要依照功能需求的不同將代碼轉(zhuǎn)化為各種概念層次的模型,指出不同模塊之間的關聯(lián)性,之后再進行科學連接,從而確??傮w的復雜功能得到全面實現(xiàn)。在實際進行分層過程中,也需要嚴格依照以下原則進行。(1)在開展分層過程中應當要最大程度降低層與層之間的聯(lián)系,既可以避免出現(xiàn)相互影響的問題,也能夠防止層與層之間相互制約,減小模塊的可移植性[6]。當某一個功能層出現(xiàn)故障或者問題時,并不會對整體功能產(chǎn)生較大影響,僅僅會導致具備功能運行不正常。相關技術人員在進行故障排查與解決時,也只需要對問題層進行調(diào)整與改進,不會妨礙其他功能層的正常運行。(2)所有功能層都需要為其上一層提供相應的支持,同時確保所有層都可以獨自有效解決一個問題,比如頻率收集功能,能夠依照其實現(xiàn)的功能將其劃分為數(shù)據(jù)收集、數(shù)據(jù)分析以及數(shù)據(jù)顯示三個層,每個層之間存在特定的關聯(lián)性,共同實現(xiàn)模塊功能。(3)最大程度提高各個功能層之間的內(nèi)聚性,同時還需要維持各自之間的低耦合性,對各個模塊內(nèi)部進行規(guī)劃,獲得理想形態(tài)下的模塊,進一步改善模塊的可移植性能。當將模塊功能劃分得十分詳細時,能夠有效降低各個功能模塊實現(xiàn)的難度,然而當劃分出較多數(shù)量的功能模塊時,又會導致復雜程度越來越高,因此要做到科學規(guī)劃層次與功能模塊,加強對其的調(diào)整與改進,使其達到理想狀態(tài)。嵌入式系統(tǒng)必須要開展面向?qū)ο?、去中心化設計,在實際進行設計過程中需要將系統(tǒng)邏輯架構劃分為四個層次,分別是應用管理層、算法協(xié)議層、功能延伸層以及硬件驅(qū)動層,每個層都有著各自的功能。(1)應用管理層主要是進行應用功能調(diào)度、顯示界面關聯(lián)等;(2)算法協(xié)議層的主要功能是數(shù)據(jù)庫訪問、協(xié)議管理和分析、資源整理等;(3)功能延伸層的主要功能是確保不同器件的功能可移植性、接口連接訪問以及器件保持較低耦合性等;(4)硬件驅(qū)動層主要是提供硬件操作源語言,同時確保各個硬件功能的相互獨立性。上述分層方法與原則,合理運用了可達到相似功能的功能模塊,一方面實現(xiàn)了代碼應用、算法以及硬件功能間保持較低關聯(lián)性,另一方面也有效減小了不同功能開發(fā)與達成時的耦合性,防止出現(xiàn)交叉混亂的現(xiàn)象,進一步提高了嵌入式系統(tǒng)程序代碼的簡潔性,表現(xiàn)出更高的應用價值。良好的算法必須要能夠支持多個不同的應用邏輯模型算法,相應的優(yōu)秀的功能模塊也能夠滿足不同應用與執(zhí)行環(huán)境的使用需求,從而改善嵌入式系統(tǒng)軟件功能模塊設計、實施與移植的速度。

3中斷服務程序

在某些特定情況下,程序往往需要具備立即終止當下正在運行的程序,轉(zhuǎn)而處理其他情況程序的功能,在這種情況下就需要使用到中斷服務程序,可以在其他情況程序處理結束之后,再次返回到之前被終止的程序,并確保其從暫停點出發(fā)繼續(xù)運行。在嵌入式系統(tǒng)中中斷服務程序發(fā)揮了至關重要的作用,是系統(tǒng)中不可缺失的一部分,由于中斷系統(tǒng)能夠方便、快速地在系統(tǒng)運行中完成中斷操作,轉(zhuǎn)而切換到中斷服務程序中,同時能夠在第一時間切換回斷點并繼續(xù)保持主程序運行,以此來改善系統(tǒng)的運行速度。此外,中斷服務程序在不執(zhí)行中斷任務的情況下,并不會占用系統(tǒng)的運行內(nèi)存,從而有效避免了系統(tǒng)內(nèi)存的浪費,提高系統(tǒng)內(nèi)存的應用率。當下已經(jīng)產(chǎn)生了較多的依托于標準C語言的延伸中斷服務程序,同時產(chǎn)生了一些全新的代表中斷函數(shù)的中心詞語,比如說_interrupt以及#programinterrupt等。在實際開展中斷服務程序函數(shù)開發(fā)過程中,中斷現(xiàn)場入棧代碼程序以及出棧代碼程序均能夠通過編碼器獲得,同時確保開發(fā)完成的中斷服務程序滿足以下三項標準要求,分別是中斷服務程序不可以設置返回值;不可以為中斷服務程序提供參數(shù);應當最大程度提高中斷服務程序的簡潔性。

4系統(tǒng)軟件開發(fā)與設計

4.1基于C語言的面向?qū)ο蠡?/p>

種類的概念一般存在于面向?qū)ο蟮恼Z言中[7]。類是針對特定類數(shù)據(jù)的指定操作的合集。類主要涵蓋了兩個方面,分別是數(shù)據(jù)以及操作[8]。通常情況下面向?qū)ο蠛w了三種特性,分別是封裝、繼承以及多態(tài)。封裝表示為將數(shù)據(jù)與函數(shù)結合起來形成一個共同體,在實際調(diào)用過程中能夠?qū)崿F(xiàn)兩者的共同調(diào)用。繼承表示為依托于結構嵌套能夠達到對對象屬性繼承的目的。多態(tài)表示在實際進行函數(shù)調(diào)用過程中,可以忽視數(shù)據(jù)調(diào)用途徑。然而在大多數(shù)情況下,為了保障軟件代碼架構簡單、操作便捷,往往只進行數(shù)據(jù)和函數(shù)的封裝。此外,在一定情況下還會出現(xiàn)C語言編程過程中,數(shù)據(jù)和函數(shù)之間關聯(lián)性不強以及結構不合理等問題,C語言模擬面向?qū)ο蟮淖罱K目的便是解決該問題。

4.2模塊重用設計

通常情況下為了促進C語言代碼的重用,主要運用模塊化的方式來實現(xiàn),一般涵蓋了頭文件以及函數(shù)實現(xiàn)文件,換言之既.h文件以及與之相匹配的.c文件。正常來說有兩種模式進行函數(shù)定義,分別是宏定義以及函數(shù)。首先,宏定義的主要優(yōu)勢體現(xiàn)在可以有效節(jié)省內(nèi)存空間,同時和參數(shù)類型并沒有直接聯(lián)系,但是其也有著自身的缺陷,表現(xiàn)為部分功能難以依托于宏來實現(xiàn)。其次,函數(shù)往往能夠?qū)崿F(xiàn)多種多樣的功能,不僅能夠重復多次使用,同時也能夠有效接受第三方函數(shù)的數(shù)據(jù),甚至還能夠?qū)⒆罱K運算結果當成是返回值輸入。

5結語

綜上所述,嵌入式系統(tǒng)應用不斷延伸、更新速度加快,依托于優(yōu)異的軟件設計架構,合理的軟件開發(fā)流程,達到產(chǎn)品設計的重要,降低重復設計與探究,可以顯著改善項目開發(fā)速度與品質(zhì)。結合C語言靈活性特征,開發(fā)適宜的軟件設計架構,可以有效強化程序設計開發(fā)、執(zhí)行以及移植效率,表現(xiàn)出較高的應用價值。

作者:孫自立 單位:湖北國土資源職業(yè)學院

相關熱門標簽