91小视频版在线观看www-91小视频app-91香蕉在线看私人影院-91香蕉在线-91香蕉影院-91香蕉影视

公務員期刊網 論文中心 正文

嵌入式系統下C語言編程軟件設計架構

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

嵌入式系統下C語言編程軟件設計架構

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

關鍵詞:嵌入式系統;C語言;編程軟件

0引言

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

1模塊劃分

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

2分層架構

2.1分層方向

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

2.2分層架構設計方法

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

3中斷服務程序

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

4系統軟件開發與設計

4.1基于C語言的面向對象化

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

4.2模塊重用設計

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

5結語

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

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

相關熱門標簽
主站蜘蛛池模板: 一级做a爰片久久毛片图片 一级做a爰片久久毛片人呢 | 最新香蕉97超级碰碰碰碰碰久 | 在线观看国产区 | 欧美一区在线观看视频 | 免费的黄色的视频 | 欧美日韩国产高清一区二区三区 | 狠狠色狠狠色综合久久一 | www.黄色大片 | 二区国产| 亚洲一级毛片免费在线观看 | 在线播放国产精品 | 日本不卡一区视频 | 99久久99热精品免费观看国产 | 破外女出血一级毛片 | 欧美日韩性视频一区二区三区 | 国产成人亚洲综合欧美一部 | 国产xxwwxxww视频 | 四虎影院免费网址 | 玖草在线观看 | 欧美日韩国产亚洲一区二区 | 欧美日韩高清一区二区三区 | 天天干天天摸天天操 | 国内精品一级毛片免费看 | 美女免费视频一区二区 | 天天操女人 | 特级毛片www | 热99热| 久热这里只有精品12 | 999视频在线| 性xxx中文视频 | 日韩草逼 | 我不卡神马 | 一级做a爰 | 亚洲毛片免费在线观看 | 国产青青 | 久久香蕉国产线看免费 | 日韩18p| 免费看91视频 | 欧美日韩一区二区三区免费 | h番无遮挡动漫在线观看 | 精品伊人久久久99热这里只 |