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

基于嵌入式系統(tǒng)的C語(yǔ)言編程軟件設(shè)計(jì)研究

2019-12-22 21:23:04徐玉蓮
微型電腦應(yīng)用 2019年10期
關(guān)鍵詞:嵌入式功能系統(tǒng)

徐玉蓮

(新疆農(nóng)業(yè)職業(yè)技術(shù)學(xué)院 信息技術(shù)分院, 昌吉 831100)

0 引言

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

1 嵌入式系統(tǒng)開(kāi)發(fā)的分層架構(gòu)

分層技術(shù)可將復(fù)雜問(wèn)題轉(zhuǎn)化成具體的應(yīng)用功能,隨著嵌入式系統(tǒng)應(yīng)用越來(lái)越復(fù)雜,對(duì)嵌入式系統(tǒng)采用分層技術(shù)進(jìn)行設(shè)計(jì),可使軟件開(kāi)發(fā)效率得以有效提升。

1.1 分層原則

為實(shí)現(xiàn)復(fù)雜的軟件系統(tǒng)功能,需有效分解開(kāi)發(fā)需求,將軟件按照概念層次、功能等的不同劃分為相應(yīng)的軟件模塊,在此基礎(chǔ)上確定不同模塊間的關(guān)系。對(duì)軟件邏輯架構(gòu)進(jìn)行分層時(shí)需遵循的原則為:兼顧功能顆粒度和可重用性,各層針對(duì)不同的問(wèn)題能夠提供相應(yīng)的解決方案,上層應(yīng)用能夠從下層獲取相應(yīng)支撐,以監(jiān)測(cè)環(huán)境溫度功能為例,根據(jù)概念的不同將其劃分為采集層、處理層、顯示層等,確保整體功能遞進(jìn)實(shí)現(xiàn);最大程度降低層與層間的相關(guān)性,避免某一層出現(xiàn)問(wèn)題后對(duì)軟件系統(tǒng)的整體性能產(chǎn)生影響,如顯示層沒(méi)有處理或修改溫度數(shù)據(jù)的權(quán)限,使處理層的邏輯實(shí)現(xiàn)更加獨(dú)立快速;確保軟件功能的高內(nèi)聚、低耦合,進(jìn)行各層內(nèi)部模塊劃分時(shí)需按照任務(wù)分解、功能優(yōu)化、重用程度完成[1]。

1.2 分層設(shè)計(jì)方法

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

1.3 分層技術(shù)的應(yīng)用

在面向?qū)ο髮?duì)嵌入式系統(tǒng)進(jìn)行“去中心化”設(shè)計(jì)的基礎(chǔ)上,可將系統(tǒng)邏輯架構(gòu)區(qū)分為:應(yīng)用管理層(負(fù)責(zé)界面交互的實(shí)現(xiàn)及調(diào)度業(yè)務(wù)邏輯等)、算法協(xié)議層(負(fù)責(zé)協(xié)議解析、文件及數(shù)據(jù)庫(kù)管理等)、功能拓展層、硬件驅(qū)動(dòng)層(實(shí)現(xiàn)與硬件的無(wú)關(guān)性),為降低業(yè)務(wù)應(yīng)用的耦合性,提高軟件功能模塊的開(kāi)發(fā)效率,實(shí)現(xiàn)功能在使用同類(lèi)或相似技術(shù)時(shí),通過(guò)聚合處理降低模型算法及硬件操作間的耦合性,多個(gè)應(yīng)用邏輯可由一個(gè)成熟的模型算法實(shí)現(xiàn),從而使功能在分析設(shè)計(jì)過(guò)程中更加清晰明確,所構(gòu)建的應(yīng)用程序的結(jié)構(gòu)具備較高的靈活性、可重用性和拓展性,能夠適應(yīng)不同的硬件環(huán)境。

2 基于C語(yǔ)言的系統(tǒng)軟件設(shè)計(jì)

為提高項(xiàng)目開(kāi)發(fā)效率,基于C語(yǔ)言的嵌入式系統(tǒng)需靈活運(yùn)用C語(yǔ)言的編程模式,提高代碼編寫(xiě)質(zhì)量及維護(hù)效率。

2.1 代碼管理

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

2.2 面向?qū)ο笤O(shè)計(jì)

充分運(yùn)用C語(yǔ)言的結(jié)構(gòu)類(lèi)型和函數(shù)指針,實(shí)現(xiàn)類(lèi)似面向?qū)ο蟮闹匾匦浴?/p>

對(duì)象屬性的繼承可通過(guò)結(jié)構(gòu)嵌套實(shí)現(xiàn),以羅盤(pán)對(duì)象參數(shù)繼承為例[4]。

typedef struct_compassbase{ //羅盤(pán)基類(lèi)

Int radius; //羅盤(pán)半徑

Int centerx, centery; //羅盤(pán)中心

} compassbase;

Typedef struct_compass {

Struct _ compassbase ;

Int handle; //指針位置

Int handle //指針位置

}

利用函數(shù)指針可封裝對(duì)象屬性和對(duì)象實(shí)現(xiàn),羅盤(pán)基類(lèi)封裝如下:

struct_compassbase;

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

struct _ compassbase { //羅盤(pán)基類(lèi)

Int radius ; //羅盤(pán)半徑

Int centerx, centery; // 羅盤(pán)中心

Draw compass pdrawcompass ;

}

2.3 模塊重用設(shè)計(jì)

通過(guò)函數(shù)模塊實(shí)現(xiàn)重用功能,函數(shù)定義實(shí)現(xiàn)方式:宏定義,宏是類(lèi)型無(wú)關(guān),降低額外開(kāi)銷(xiāo);函數(shù),作為可重復(fù)使用的代碼,函數(shù)能夠獨(dú)立實(shí)現(xiàn)某功能。通過(guò)使用角速度傳感器制作電子羅盤(pán),函數(shù)的調(diào)用關(guān)系描述如下[5]。

當(dāng)前方位的實(shí)時(shí)顯示在LCD顯示屏上完成,可對(duì)功能模塊(算法協(xié)議層、功能拓展層、硬件驅(qū)動(dòng)層)進(jìn)行復(fù)用,

通過(guò)羅盤(pán)角度函數(shù)(位于算法模型層)的調(diào)用獲取angle,通過(guò)畫(huà)線函數(shù)(位于功能拓展層)的調(diào)用獲取畫(huà)指針函數(shù),應(yīng)用管理層示例代碼為:unit draw_ compass (unit angle, unit pcolor)

通過(guò)計(jì)算將傳感器獲取數(shù)據(jù)(xyz值)轉(zhuǎn)換為指針角度,以確定羅盤(pán)指針?lè)轿唬惴P蛯邮纠a為:uint cac_ compass (unit x, unit y, unitz );

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

硬件驅(qū)動(dòng)層驅(qū)動(dòng)LID進(jìn)行畫(huà)點(diǎn)的示例代碼為:uint lcd_pixel(unit x, unit y, unint pcolor)。

3 系統(tǒng)語(yǔ)言的使用函數(shù)表達(dá)

C語(yǔ)言涉及到較多的含有參數(shù)和函數(shù)的表達(dá)式,在程序研究中關(guān)于main函數(shù)的變化較為關(guān)鍵,在main可編輯函數(shù)中的參數(shù)的含義及個(gè)數(shù)由agent表示,分析判斷作為指導(dǎo)性參數(shù)值的agent能夠獲取函數(shù)相關(guān)的即時(shí)數(shù)組信息。操作系統(tǒng)的函數(shù)變化決定著函數(shù)的配置啟動(dòng),因此對(duì)其初始變化值要求較為嚴(yán)格,需先進(jìn)行函數(shù)的歸零處理,通過(guò)不同數(shù)值的參數(shù)的提取(在各函數(shù)變換模塊中)使計(jì)算機(jī)程序進(jìn)入有效運(yùn)行狀態(tài),main語(yǔ)言在程序進(jìn)入預(yù)定設(shè)計(jì)軌道后能夠?qū)Τ绦虻南乱徊竭\(yùn)行進(jìn)行自動(dòng)控制(即嵌入式的系統(tǒng)模式),在嵌入過(guò)程中通過(guò)交叉比對(duì)實(shí)現(xiàn)相關(guān)參數(shù)原有數(shù)據(jù)值的保留,自動(dòng)地刪除無(wú)用的數(shù)據(jù),并修改運(yùn)行錯(cuò)誤和編輯錯(cuò)位,在嵌入交匯過(guò)程中系統(tǒng)自動(dòng)甄別所出現(xiàn)的語(yǔ)言混亂情況,重新擬定新main函數(shù)獲取相應(yīng)的函數(shù)編輯式,若仍無(wú)法完成重新定義則自動(dòng)劃分函數(shù)為初始程序處理,從而確保函數(shù)間的有效串接,使系統(tǒng)程序能較好的適應(yīng)新的語(yǔ)言環(huán)境[6]。

4 總結(jié)

本文主要研究了C語(yǔ)言編程軟件在嵌入式系統(tǒng)中開(kāi)發(fā)過(guò)程的實(shí)現(xiàn)路徑,依據(jù)分層設(shè)計(jì)的原則,完成了功能模塊劃分,對(duì)系統(tǒng)軟件的編程思路進(jìn)行了詳細(xì)闡述,介紹了軟件開(kāi)發(fā)過(guò)程中的程序框架、模塊重用等設(shè)計(jì)過(guò)程的實(shí)現(xiàn)方法,結(jié)合C語(yǔ)言編程使用的函數(shù)表達(dá)功能,提高了C語(yǔ)言的靈活性,同時(shí)滿(mǎn)足了軟件開(kāi)發(fā)工程化的需求,為在嵌入式系統(tǒng)開(kāi)發(fā)中使用C語(yǔ)言提供參考。

猜你喜歡
嵌入式功能系統(tǒng)
也談詩(shī)的“功能”
Smartflower POP 一體式光伏系統(tǒng)
WJ-700無(wú)人機(jī)系統(tǒng)
ZC系列無(wú)人機(jī)遙感系統(tǒng)
搭建基于Qt的嵌入式開(kāi)發(fā)平臺(tái)
連通與提升系統(tǒng)的最后一塊拼圖 Audiolab 傲立 M-DAC mini
關(guān)于非首都功能疏解的幾點(diǎn)思考
嵌入式軟PLC在電鍍生產(chǎn)流程控制系統(tǒng)中的應(yīng)用
Altera加入嵌入式視覺(jué)聯(lián)盟
中西醫(yī)結(jié)合治療甲狀腺功能亢進(jìn)癥31例
主站蜘蛛池模板: 国产免费怡红院视频| 亚洲电影天堂在线国语对白| 日韩精品一区二区深田咏美| 欧美成人aⅴ| 国产精品人成在线播放| 国产原创第一页在线观看| 久久亚洲国产一区二区| 久久不卡国产精品无码| 97在线视频免费观看| 久热这里只有精品6| 亚洲精品制服丝袜二区| 无码一区中文字幕| 一级一级特黄女人精品毛片| 欧美精品啪啪| 国产AV无码专区亚洲精品网站| 久久公开视频| 高潮爽到爆的喷水女主播视频| 国产精品无码作爱| 免费高清a毛片| 啪啪啪亚洲无码| 亚洲视频影院| 亚洲第一黄片大全| 国产精品一区二区在线播放| 91久久偷偷做嫩草影院免费看 | 日本在线亚洲| 欧美一级黄片一区2区| 日韩欧美中文| 国产精品播放| 中文字幕在线欧美| 国产高清在线观看| 欧美中文字幕无线码视频| 日本久久久久久免费网络| 色欲色欲久久综合网| 国产又粗又爽视频| 亚洲视频无码| 亚洲乱码精品久久久久..| 色综合色国产热无码一| 韩日无码在线不卡| 亚洲成网站| 国内精品九九久久久精品| 免费女人18毛片a级毛片视频| 自拍偷拍欧美日韩| 国产丝袜第一页| 国产99视频精品免费视频7 | 久久精品国产精品青草app| 国产在线视频导航| 亚洲国产91人成在线| 国产无码高清视频不卡| 无码内射中文字幕岛国片| 婷婷六月激情综合一区| 欧美亚洲另类在线观看| 2021国产乱人伦在线播放| 99久久精品无码专区免费| a级毛片免费播放| 免费a级毛片18以上观看精品| 欧美精品在线视频观看| 中文字幕无码av专区久久| 亚洲精品国产综合99| 亚洲精品自在线拍| 国产极品美女在线观看| 成人字幕网视频在线观看| 成人国产精品2021| 日韩人妻少妇一区二区| 欧美国产精品拍自| 无码AV高清毛片中国一级毛片| m男亚洲一区中文字幕| 国产一线在线| 国产69精品久久久久孕妇大杂乱 | 中文字幕在线免费看| 国产精品原创不卡在线| 91人妻日韩人妻无码专区精品| 国产午夜一级毛片| 一级全黄毛片| 亚洲中文字幕久久无码精品A| a级毛片在线免费| 无码免费的亚洲视频| 日日噜噜夜夜狠狠视频| 91丝袜在线观看| 88av在线| 亚洲不卡网| 亚洲人人视频| 自拍欧美亚洲|