999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于嵌入式系統的C語言編程軟件設計研究

2019-12-22 21:23:04徐玉蓮
微型電腦應用 2019年10期
關鍵詞:嵌入式功能系統

徐玉蓮

(新疆農業職業技術學院 信息技術分院, 昌吉 831100)

0 引言

隨著計算機程序復雜化程度逐漸提高,對系統軟件更新速度的需求逐漸提升,C語言兼具高初級語言特性,支持對硬件的直接操作,在普遍應用的嵌入式軟件開發過程中使用較多的便是C語言,在提高靈活性的同時易增加復雜代碼管理和維護的難度,在特定硬件平臺上建立的嵌入式系統編程需解決復雜的硬件操作問題,并實現應用層次上的通用性,需采用良好的軟件框架完成軟件開發過程,提高程序代碼的重用性、拓展性,實現工程化管理,提高軟件系統的開發和維護效率。

1 嵌入式系統開發的分層架構

分層技術可將復雜問題轉化成具體的應用功能,隨著嵌入式系統應用越來越復雜,對嵌入式系統采用分層技術進行設計,可使軟件開發效率得以有效提升。

1.1 分層原則

為實現復雜的軟件系統功能,需有效分解開發需求,將軟件按照概念層次、功能等的不同劃分為相應的軟件模塊,在此基礎上確定不同模塊間的關系。對軟件邏輯架構進行分層時需遵循的原則為:兼顧功能顆粒度和可重用性,各層針對不同的問題能夠提供相應的解決方案,上層應用能夠從下層獲取相應支撐,以監測環境溫度功能為例,根據概念的不同將其劃分為采集層、處理層、顯示層等,確保整體功能遞進實現;最大程度降低層與層間的相關性,避免某一層出現問題后對軟件系統的整體性能產生影響,如顯示層沒有處理或修改溫度數據的權限,使處理層的邏輯實現更加獨立快速;確保軟件功能的高內聚、低耦合,進行各層內部模塊劃分時需按照任務分解、功能優化、重用程度完成[1]。

1.2 分層設計方法

遵循最優模塊化的設計思路,詳細設計系統邏輯架構,針對嵌入式應用軟硬層次比較明顯等特點,對軟件功能模塊進行梳理和劃分:梳理嵌入式系統應用需求(采取自頂向下的方法),邏輯功能抽象化處理后得到明確的概念層次,在此基礎上轉化為軟件層次,屬于漸進過程,以電子羅盤開發為例,為了確定具體的方向,首先需對方位數據進行準確采集,通過傳感器數據的采集(包含x、y、z軸)實現方位數據的轉換,最后在顯示屏上顯示輸出,整個過程的邏輯層次可劃分為硬件訪問、硬件驅動、數據采集及處理、頁面顯示等;抽象處理硬件功能,細化應用開發所需硬件操作原語(采取自底向上方式),開發嵌入式系統時相應專用功能的實現大多通過軟件驅動底層硬件完成,為了簡化系統開發過程,提高程序代碼的復用性,對硬件功能進行封裝處理,降低硬件的相關性,以傳感器采集數據為例,開發時分為硬件驅動和功能拓展兩個層次,降低了系統的耦合性;對于鄰層間的調用關系和信息交互的檢驗則需逐層檢測(結合使用自頂向下和自底向上方式),通過合并整合各層的功能,盡量實現最優模塊化[2]。

1.3 分層技術的應用

在面向對象對嵌入式系統進行“去中心化”設計的基礎上,可將系統邏輯架構區分為:應用管理層(負責界面交互的實現及調度業務邏輯等)、算法協議層(負責協議解析、文件及數據庫管理等)、功能拓展層、硬件驅動層(實現與硬件的無關性),為降低業務應用的耦合性,提高軟件功能模塊的開發效率,實現功能在使用同類或相似技術時,通過聚合處理降低模型算法及硬件操作間的耦合性,多個應用邏輯可由一個成熟的模型算法實現,從而使功能在分析設計過程中更加清晰明確,所構建的應用程序的結構具備較高的靈活性、可重用性和拓展性,能夠適應不同的硬件環境。

2 基于C語言的系統軟件設計

為提高項目開發效率,基于C語言的嵌入式系統需靈活運用C語言的編程模式,提高代碼編寫質量及維護效率。

2.1 代碼管理

C語言的優勢在于其使用的靈活性,但易出現文件組織混亂、降低代碼可閱讀性等問題,可依據上述系統邏輯架構設計(C語言不提供軟件框架管理)完成工程文件管理原則的構建,從而使代碼文件的開發和管理能力得以有效提升,代碼管理主要涉及到兩部分:文件目錄管理,文件目錄的組織同樣需按照分層原則,遵循統一規范對各文件命名,在根目錄存放主程序、全局變量文件,在Apfunc中存放應用管理層文件,在Modelfunc中存放算法協議層,在Hardext中存放功能拓展層,在Hardopt中存放硬件驅動層文件,可通過建立Comfuc文件夾用來存放涉及到的第三方通用函數庫,利用分層模型的優勢完成開發過程,不同文件夾可并行開發工作,滿足工程化管理需求;功能模塊管理,最大程度降低全局變量的使用量,通過函數參數實現數據的傳遞,以實現模塊化設計的高內聚性,聚合相同或相似的業務應用功能、硬件操作功能,使其能夠在同一文件內實現[3]。

2.2 面向對象設計

充分運用C語言的結構類型和函數指針,實現類似面向對象的重要特性。

對象屬性的繼承可通過結構嵌套實現,以羅盤對象參數繼承為例[4]。

typedef struct_compassbase{ //羅盤基類

Int radius; //羅盤半徑

Int centerx, centery; //羅盤中心

} compassbase;

Typedef struct_compass {

Struct _ compassbase ;

Int handle; //指針位置

Int handle //指針位置

}

利用函數指針可封裝對象屬性和對象實現,羅盤基類封裝如下:

struct_compassbase;

void (* drawcompass) (struct _compassbase * p com-base) ;

struct _ compassbase { //羅盤基類

Int radius ; //羅盤半徑

Int centerx, centery; // 羅盤中心

Draw compass pdrawcompass ;

}

2.3 模塊重用設計

通過函數模塊實現重用功能,函數定義實現方式:宏定義,宏是類型無關,降低額外開銷;函數,作為可重復使用的代碼,函數能夠獨立實現某功能。通過使用角速度傳感器制作電子羅盤,函數的調用關系描述如下[5]。

當前方位的實時顯示在LCD顯示屏上完成,可對功能模塊(算法協議層、功能拓展層、硬件驅動層)進行復用,

通過羅盤角度函數(位于算法模型層)的調用獲取angle,通過畫線函數(位于功能拓展層)的調用獲取畫指針函數,應用管理層示例代碼為:unit draw_ compass (unit angle, unit pcolor)

通過計算將傳感器獲取數據(xyz值)轉換為指針角度,以確定羅盤指針方位,算法模型層示例代碼為:uint cac_ compass (unit x, unit y, unitz );

功能拓展層的畫線、調用畫點函數示例代碼為:uint lcd_ line (unit x 1, unit y1, unit x2, unit y2, uint pcolor);

硬件驅動層驅動LID進行畫點的示例代碼為:uint lcd_pixel(unit x, unit y, unint pcolor)。

3 系統語言的使用函數表達

C語言涉及到較多的含有參數和函數的表達式,在程序研究中關于main函數的變化較為關鍵,在main可編輯函數中的參數的含義及個數由agent表示,分析判斷作為指導性參數值的agent能夠獲取函數相關的即時數組信息。操作系統的函數變化決定著函數的配置啟動,因此對其初始變化值要求較為嚴格,需先進行函數的歸零處理,通過不同數值的參數的提取(在各函數變換模塊中)使計算機程序進入有效運行狀態,main語言在程序進入預定設計軌道后能夠對程序的下一步運行進行自動控制(即嵌入式的系統模式),在嵌入過程中通過交叉比對實現相關參數原有數據值的保留,自動地刪除無用的數據,并修改運行錯誤和編輯錯位,在嵌入交匯過程中系統自動甄別所出現的語言混亂情況,重新擬定新main函數獲取相應的函數編輯式,若仍無法完成重新定義則自動劃分函數為初始程序處理,從而確保函數間的有效串接,使系統程序能較好的適應新的語言環境[6]。

4 總結

本文主要研究了C語言編程軟件在嵌入式系統中開發過程的實現路徑,依據分層設計的原則,完成了功能模塊劃分,對系統軟件的編程思路進行了詳細闡述,介紹了軟件開發過程中的程序框架、模塊重用等設計過程的實現方法,結合C語言編程使用的函數表達功能,提高了C語言的靈活性,同時滿足了軟件開發工程化的需求,為在嵌入式系統開發中使用C語言提供參考。

猜你喜歡
嵌入式功能系統
也談詩的“功能”
中華詩詞(2022年6期)2022-12-31 06:41:24
Smartflower POP 一體式光伏系統
工業設計(2022年8期)2022-09-09 07:43:20
WJ-700無人機系統
ZC系列無人機遙感系統
北京測繪(2020年12期)2020-12-29 01:33:58
搭建基于Qt的嵌入式開發平臺
連通與提升系統的最后一塊拼圖 Audiolab 傲立 M-DAC mini
關于非首都功能疏解的幾點思考
嵌入式軟PLC在電鍍生產流程控制系統中的應用
電鍍與環保(2016年3期)2017-01-20 08:15:32
Altera加入嵌入式視覺聯盟
中西醫結合治療甲狀腺功能亢進癥31例
主站蜘蛛池模板: 欧美人与动牲交a欧美精品| 亚洲成人网在线观看| 国产正在播放| 国内精品伊人久久久久7777人| 狠狠做深爱婷婷综合一区| 青草视频网站在线观看| 日本免费a视频| 亚洲Aⅴ无码专区在线观看q| 国内老司机精品视频在线播出| 久久天天躁狠狠躁夜夜躁| 91久久国产综合精品女同我| 91视频青青草| 91最新精品视频发布页| 亚洲综合香蕉| 亚洲精品视频网| 精品久久久久久成人AV| 18禁色诱爆乳网站| 尤物国产在线| 欧美成人免费一区在线播放| 国产欧美日韩综合在线第一 | 免费无码AV片在线观看国产| 国产一级视频在线观看网站| 在线观看精品自拍视频| 国产成人无码久久久久毛片| 亚洲嫩模喷白浆| 在线免费无码视频| 亚洲Av激情网五月天| 天堂网亚洲系列亚洲系列| 香蕉久久国产超碰青草| 亚洲国产一成久久精品国产成人综合| 欧美日韩精品综合在线一区| 国产一区二区精品高清在线观看| h视频在线播放| 久热精品免费| 狠狠色婷婷丁香综合久久韩国| 色亚洲成人| 97成人在线观看| 亚洲精品在线91| 亚洲av无码人妻| 日本午夜视频在线观看| 国产爽歪歪免费视频在线观看| 中字无码av在线电影| 欧美亚洲激情| 成年免费在线观看| 亚洲国产成人超福利久久精品| 国产精品亚洲αv天堂无码| 亚洲天堂在线免费| 幺女国产一级毛片| 日韩人妻少妇一区二区| 999国内精品视频免费| 国产亚洲精品91| 浮力影院国产第一页| 亚洲AV人人澡人人双人| 亚洲综合狠狠| 国产欧美另类| 亚洲精品国产首次亮相| 欧美精品三级在线| 国产打屁股免费区网站| 国产传媒一区二区三区四区五区| 国产精鲁鲁网在线视频| 狼友视频国产精品首页| 亚洲欧美另类视频| 天天综合网亚洲网站| 不卡的在线视频免费观看| 性做久久久久久久免费看| 欧美视频二区| 国产爽妇精品| 91精品专区国产盗摄| 五月天天天色| 日韩少妇激情一区二区| 欧美三级视频网站| 一级毛片免费观看久| 欧美一级黄片一区2区| 国产青青草视频| 国产精品污污在线观看网站| 992tv国产人成在线观看| 欧美成人aⅴ| 日韩久久精品无码aV| 欧美97欧美综合色伦图| 亚洲日本www| 永久毛片在线播| 亚洲乱伦视频|