C語(yǔ)言嵌入式系統編程軟件設計研究論文

時(shí)間:2022-12-13 08:32:35 設計 我要投稿
  • 相關(guān)推薦

C語(yǔ)言嵌入式系統編程軟件設計研究論文

  摘要:近年來(lái),C語(yǔ)言編程在嵌入式系統越來(lái)越受到廣大技術(shù)人員的青睞。介紹了C語(yǔ)言系統軟件的編程思路,闡述了嵌入式系統編程軟件架構的基本知識,包括模塊劃分、分層架構、中斷服務(wù)程序編寫(xiě)、系統軟件設計要領(lǐng)等,并給出了在編寫(xiě)嵌入式系統C語(yǔ)言時(shí)基本架構所包含的主要內容。

C語(yǔ)言嵌入式系統編程軟件設計研究論文

  關(guān)鍵詞:C語(yǔ)言;嵌入式系統;程序框架

  1概述

  C語(yǔ)言的廣泛應用主要是因其具有出色的移植性,能夠在多種不同體系結構的軟件或硬件平臺上運行;語(yǔ)法機制結構緊湊、使用靈活并能直接訪(fǎng)問(wèn)硬件;并具有很高的運行效率。與一般形式的軟件編程相比,嵌入式系統有其特殊性,其面向的是一種專(zhuān)用的計算機系統,既有應用層次上的通用性,也有硬件操作的復雜性。因此,運用高效合理的編程構架和設計流程,規范管理編程的過(guò)程,對于提高程序的安全性可靠性是十分有利的,同時(shí)可以提高軟件的開(kāi)發(fā)、執行、維護效率。在常規軟件編程基礎上,把分層思想、模塊化思想、面向對象技術(shù)應用到嵌入式C語(yǔ)言編程系統中,對嵌入式編程中的模塊劃分、分層架構、中斷服務(wù)程序編寫(xiě)、系統軟件設計思路進(jìn)行討論。嵌入式系統的高速發(fā)展使得對其編程的效率與質(zhì)量有了更高的要求和標準,更需要一種更加普遍并高效的編程框架與基本標準,以供廣大技術(shù)人員參考與使用。

  2模塊劃分

  模塊劃分是指把一個(gè)復雜的、綜合性的程序根據可實(shí)現的不同功能分成小段,每一小段可實(shí)現一個(gè)特定的功能。軟件應盡量減少與外部模塊的聯(lián)系,提高程序的可移植性,并且明確其可實(shí)現的功能。一般情況下,嵌入式系統包含硬件驅動(dòng)模塊與軟件功能模塊。一個(gè)硬件驅動(dòng)模塊對應一種特定的硬件,劃分軟件功能模塊時(shí)應盡量滿(mǎn)足低偶合、高內聚的基本要求。設計實(shí)現不同功能的模塊時(shí),有兩個(gè)重要原則,(1)模塊的獨立性,各個(gè)功能模塊之間不會(huì )有信息交叉混淆,不會(huì )互相影響互相依存,一個(gè)模塊中函數指令不需要其他模塊的變量,模塊之間的連接通過(guò)函數接口來(lái)實(shí)現。(2)正交性,各個(gè)功能模塊是唯一確定的,其中的變量與其實(shí)現的功能是無(wú)歧義的。在劃分模塊時(shí)有下列注意事項:(1)某一個(gè)模塊提供給其他功能模塊所需調用的數據和外部函數需在頭文件(.h)中以extern關(guān)鍵字來(lái)聲明。(2)某功能模塊內的全局變量與函數信息需在.c文件的開(kāi)頭以static關(guān)鍵字進(jìn)行聲明。(3)一個(gè)模塊由一個(gè).h文件和一個(gè).c文件結合而成,此模塊的接口在頭文件(.h)中聲明。(4)頭文件(.h文件)中不能定義任何變量。定義變量是匯編階段的概念,會(huì )依據要求分配內存。

  3分層架構

  3.1分層方向

  分層技術(shù)有兩個(gè)方向,目前嵌入式系統應用層開(kāi)發(fā)常用的方法是自頂向下,即從抽象到具體,從邏輯整體描述規范或者最頂層的程序為起點(diǎn)向下延伸到具體的操作模塊。自底向上是另一個(gè)思路,即從具體功能到抽象實(shí)現,是在硬件驅動(dòng)開(kāi)發(fā)中常用的方法。先分析功能模塊,使其作用在某個(gè)應用對象上,分析常用操作的方式。這兩個(gè)方法各有優(yōu)勢,為了達到較好的效果,在系統軟件設計過(guò)程中,可按照具體需求把這兩種方法混合使用。在邏輯分析應用時(shí)采用自頂向下的方式,規范功能模塊的邏輯表達,提高各個(gè)模塊的開(kāi)發(fā)、執行、移植效率。使用自底向上的方式規范硬件操作,把單位操作從中抽象出來(lái),以便進(jìn)行上層應用的模塊移植。

  3.2分層架構設計方法

  分層是為了更好地滿(mǎn)足編程時(shí)各功能需要,把一個(gè)總體功能分解成一個(gè)個(gè)小功能,分層進(jìn)行實(shí)現,再整合。這樣就需要把代碼分解成不同概念層次的模塊,確定各個(gè)模塊的聯(lián)系,進(jìn)行合理連接,最終實(shí)現復雜的總體功能。分層時(shí)有固定的需要遵循的原則:(1)分層時(shí)盡量減小層間關(guān)聯(lián)性,不要互相影響互相制約,降低模塊的可移植性。若某一層出現了錯誤或問(wèn)題,也可以不影響整個(gè)程序,只影響部分功能的實(shí)現。則技術(shù)人員可有針對性地對這一層進(jìn)行修改完善,不對其他層產(chǎn)生影響。(2)每層需要為該層的上一層提供支撐,每層可以獨立地解決一個(gè)特定的問(wèn)題,如頻率采樣功能,可以分為數據采集層、數據處理層、數據顯示層等,層與層之間相互聯(lián)系,實(shí)現功能。(3)盡量實(shí)現層與層之間的高度內聚、相互之間又低耦合,每層內部對模塊進(jìn)行劃分,實(shí)現最優(yōu)模塊化,可移植性也最強。如果把功能分解得越簡(jiǎn)單清晰,實(shí)現起來(lái)也就越容易,但若把功能目標太過(guò)細化,又會(huì )引起調用次數增多,復雜程度增大的問(wèn)題,所以合理劃分層次和模塊,是需要不斷嘗試和修改的。以自底向上、自頂向下與模塊化的方法進(jìn)行分層架構。首先,對嵌入式系統應用需求進(jìn)行梳理,為把各種不同的模塊功能抽象出來(lái),先采取自頂向下的方向,再由軟件層次轉化到概念層次。這是一個(gè)必經(jīng)的過(guò)程,把目標需求抽象出來(lái),轉化為開(kāi)發(fā)軟件的功能。比如,采集信號頻率,需要信號的數據,輸入嵌入式系統,經(jīng)算法和程序,在LCD屏上顯示頻率,這涉及到了硬件驅動(dòng)、數據采集與處理、數據顯示等層次。接下來(lái)是對硬件所需實(shí)現的功能進(jìn)行抽象,采用自底向上的方式,硬件操作原語(yǔ)是在抽象硬件所需實(shí)現功能時(shí)必須細化出來(lái)的。在嵌入式編程系統中,由軟件編程驅動(dòng)硬件來(lái)實(shí)現相應的功能是很普遍的,為減少硬件功能的相互耦合與相互影響,對硬件功能進(jìn)行封裝,這不但有利于實(shí)現不同功能間的低耦合,還可以使當前系統更加簡(jiǎn)單易行,便于程序的執行與應用,提高程序的可移植性,F在更多地傾向于采用自頂向下與自底向上兩種方法相結合的思想,為確保每層的上一層調用都能得到滿(mǎn)足,需要逐層檢查相鄰層間是否有信息交叉,調用關(guān)系是否合理。最后,優(yōu)化模塊的功能設計,整合各個(gè)功能層的功能,并進(jìn)行分類(lèi),盡可能實(shí)現模塊的最優(yōu)化。嵌入式系統需要進(jìn)行面向對象、去中心化設計,設計時(shí)可以將系統邏輯架構區分為以下4個(gè)不同的層次:(1)應用管理層。實(shí)現功能調度、邏輯轉化、顯示界面關(guān)聯(lián)等功能。(2)算法協(xié)議層。實(shí)現的功能為數據庫訪(fǎng)問(wèn)、協(xié)議管理與解析、算法實(shí)現、文件整理等。(3)功能拓展層。實(shí)現各個(gè)器件的功能可移植性、接口連接訪(fǎng)問(wèn)等功能,并實(shí)現器件的低耦合性。④硬件驅動(dòng)層。硬件操作原語(yǔ)由硬件驅動(dòng)層提供,并實(shí)現硬件功能的獨立性。以上的分層方式與原則,整合了可實(shí)現相似功能或同類(lèi)的功能模塊,使代碼應用、算法與硬件功能之間的相互聯(lián)系大大減少,降低了各個(gè)功能在設計和實(shí)現時(shí)的耦合性,避免交叉混淆,使嵌入式系統的程序代碼結構更加明晰,可用性更高?梢灾С侄鄠(gè)應用邏輯的模型算法才是一個(gè)成熟的算法,可以在不同硬件環(huán)境中順利執行與應用的軟件功能模塊才是一個(gè)成熟的功能模塊,這樣可提高嵌入式系統軟件功能模塊的開(kāi)發(fā)、執行、移植效率。

  4中斷服務(wù)程序

  程序有時(shí)需要實(shí)現自動(dòng)停止正在運行的程序并轉入處理新的情況的程序的功能,這就需要中斷服務(wù)程序處理新情況后再返回原被暫停的原程序斷點(diǎn)繼續運行。中斷服務(wù)程序是嵌入式系統中的重要部分,因中斷系統可便捷地在系統的運行過(guò)程中實(shí)現中斷,執行中斷服務(wù)程序,并快速返回斷點(diǎn)繼續主程序,從而提高系統的運行效率,并且在不產(chǎn)生中斷時(shí)不占用內存,節約系統內存,F在已經(jīng)出現許多在標準C語(yǔ)言上對中斷服務(wù)程序的拓展,出現了新的用于表示中斷函數的關(guān)鍵字,如_interrupt、#programinterrupt等。當編寫(xiě)中斷服務(wù)程序的函數時(shí),中斷現場(chǎng)入棧和出棧代碼會(huì )由編譯器會(huì )自動(dòng)為該函數提供。中斷服務(wù)程序需要滿(mǎn)足下列要求:(1)中斷服務(wù)程序不能有返回值。(2)不能給中斷服務(wù)程序傳遞參數。(3)中斷服務(wù)程序應盡量簡(jiǎn)單精煉。

  5系統軟件設計

  5.1C語(yǔ)言的面向對象化

  中類(lèi)的概念出現于在面向對象的語(yǔ)言中。對某一類(lèi)數據的特定操作的集合稱(chēng)為類(lèi)。類(lèi)包含了兩個(gè)范疇:數據和操作。面向對象有3個(gè)特性:封裝、繼承和多態(tài)。繼承是指通過(guò)結構嵌套可實(shí)現對象屬性的繼承。封裝是指把數據和函數捆綁,調用時(shí)可把函數與數據一起調用。多態(tài)是指不需考慮函數的數據調用方式,調用函數時(shí)可有多種不同方式。但更多時(shí)候,為使軟件代碼結構清晰易操作,只需將數據與函數進(jìn)行封裝即可。有時(shí)C語(yǔ)言編程時(shí),會(huì )出現數據與函數聯(lián)系不緊密,結構混亂等問(wèn)題,C語(yǔ)言模擬面向對象是為了解決這些問(wèn)題,意義并不在于模擬這個(gè)行為本身。

  5.2模塊重用設計

  一般通過(guò)模塊化來(lái)實(shí)現C語(yǔ)言代碼重用,其中包含頭文件和函數實(shí)現文件,即.h文件和對應的.c文件。一般有兩種方式定義函數:(1)宏定義,宏定義的優(yōu)點(diǎn)在于不會(huì )占用額外內存,與函數的參數類(lèi)型無(wú)關(guān),缺點(diǎn)在于一些功能是無(wú)法通過(guò)宏來(lái)實(shí)現的;(2)函數,函數可實(shí)現的功能較多,并且可重復利用,可以接受其他函數的數據,也可把運算結果作為返回值輸出。

  6結語(yǔ)

  闡述了C語(yǔ)言嵌入式系統編程的所包含的基本元素與基本框架,合理的軟件設計架構可大大提高程序的開(kāi)發(fā)、執行、移植效率,在實(shí)際應用中有重要價(jià)值。

  參考文獻

  [1]肖宛昂,曾為民.如何用C語(yǔ)言開(kāi)發(fā)DSP嵌入式系統[J].單片機與嵌入式系統應用,2003,(01):81-84.

  [2]孫育紅.數字多媒體數據采編系統設計與實(shí)現[J].現代電子技術(shù),2017,40(15):122-125.

  [3]黃亞克.嵌入式系統C語(yǔ)言編程方法研究[J].科技信息(學(xué)術(shù)研究),2007,(16):166-167.

99久久精品免费看国产一区二区三区|baoyu135国产精品t|40分钟97精品国产最大网站|久久综合丝袜日本网|欧美videosdesexo肥婆