www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁 > 公眾號(hào)精選 > 嵌入式微處理器
[導(dǎo)讀]在一個(gè)初學(xué)者從入門走向精通的途中,像這種 發(fā)現(xiàn)問題 → 投入思考 → 提出方案 的學(xué)習(xí)模式是非常有效的。

內(nèi)容整理自網(wǎng)絡(luò),編輯:付斌


在一個(gè)初學(xué)者從入門走向精通的途中,像這種 發(fā)現(xiàn)問題 → 投入思考 → 提出方案 的學(xué)習(xí)模式是非常有效的。



一 、 遇到的問題


通過這一段時(shí)間的編碼實(shí)踐,積累了一些編碼經(jīng)驗(yàn),但也體會(huì)到了之前的代碼結(jié)構(gòu)的缺陷: 


(1)開發(fā)效率低:每次使用片內(nèi)的某一資源(例如定時(shí)器等),筆者都要去查詢技術(shù)手冊(cè),比較eggache~

  

(2)代碼重復(fù)較多:每個(gè)實(shí)驗(yàn)源碼中,諸如?xtal_init?,led_init?等初始化函數(shù)每次都要編寫

  

(3)不易修改:代碼中的業(yè)務(wù)邏輯與SFR的操作混在一起,可讀性較差,修改起來也費(fèi)力


二? 、由網(wǎng)站分層引起的思考


在學(xué)習(xí)嵌入式編程之前,我曾有過 ASP.NET 網(wǎng)站開發(fā)經(jīng)驗(yàn),對(duì)其分層理論也有所實(shí)踐,下面簡單提一下:

  

一般的有一定復(fù)雜度的網(wǎng)站可分為以下三層:


(1)數(shù)據(jù)接入層(DAL):負(fù)責(zé)與數(shù)據(jù)庫的交互,供業(yè)務(wù)邏輯層調(diào)用

  

(2)業(yè)務(wù)邏輯層(BLL):調(diào)用數(shù)據(jù)接入層以獲取數(shù)據(jù),并為具體的業(yè)務(wù)需求提供支持

  

(3)用戶界面層(UIL):負(fù)責(zé)呈現(xiàn)最終的用戶界面


相信很大一部分朋友都對(duì)此非常熟悉,在此不再贅述。總之,分層以后,大大提高了代碼的復(fù)用性與擴(kuò)展性。


那么在嵌入式開發(fā)中,能否也利用分層的思想,來提高開發(fā)效率,增強(qiáng)其可維護(hù)性與可擴(kuò)展性呢?

?

三 、嵌入式項(xiàng)目也來個(gè)分層


當(dāng)然不能照搬ASP.NET 的具體分層思想,具體問題得具體分析嘛。

  

首先,嵌入式開發(fā)的核心就是芯片,它提供固定的片內(nèi)資源共開發(fā)者使用。而且它具有一個(gè)很重要的特點(diǎn)就是,不隨項(xiàng)目的需求變動(dòng)而變動(dòng)。所以應(yīng)將其作為最底層,為上層提供基礎(chǔ)支持。我們將其命名為?硬件抽象層(Hardware Abstract Layer)。  

  

芯片有了當(dāng)然還不夠,通常我們會(huì)在片外擴(kuò)展一些功能模塊來滿足具體的項(xiàng)目需求,例如:傳感器、鍵盤、LCD屏等。這一層的特點(diǎn)是,隨項(xiàng)目的變動(dòng)而以模塊為單位動(dòng)態(tài)增減。這一層的運(yùn)作需要芯片內(nèi)部資源的支持,所以應(yīng)處于硬件抽象層之上,并為上層調(diào)用。我們將其命名為?功能模塊層(Functional Module Layer)。

  

OK,現(xiàn)在原材料都準(zhǔn)備齊了:芯片+擴(kuò)展模塊,接下來就要開始真正的加工了:我們需要靈活調(diào)用之前兩層所提供的接口,實(shí)現(xiàn)具體的項(xiàng)目需求。我們將其命名為?應(yīng)用程序?qū)樱ˋpplication Layer)。

  

圖文:


?

(1)硬件抽象層(HAL)  

實(shí)現(xiàn)對(duì)片內(nèi)資源 (如定時(shí)器、ADC、中斷、I/O等) 的通用配置,隱藏具體的SFR操作細(xì)節(jié),為上層提供簡單清晰的調(diào)用接口。


(2)功能模塊層(FML)

通過調(diào)用 HAL,實(shí)現(xiàn)項(xiàng)目中所涉及到的各片外功能模塊,隱藏具體的模塊操作細(xì)節(jié),并為上層提供簡單清晰的調(diào)用接口。


(3)應(yīng)用程序?qū)樱ˋPL)

通過調(diào)用?HAL?與?FML,實(shí)現(xiàn)最終的應(yīng)用功能。


四? 、小試牛刀


OK,我們舉一個(gè)具體的例子,來說明分層思想的運(yùn)用。


之前,曾經(jīng)有一個(gè)需要完成一個(gè)略帶綜合性的小實(shí)驗(yàn)“溫度監(jiān)測(cè)系統(tǒng)”的項(xiàng)目,需求分析大概如下:


??CC2430節(jié)點(diǎn)實(shí)現(xiàn)對(duì)溫度的定時(shí)采集,并可通過LED燈指示其采樣頻率


??節(jié)點(diǎn)將數(shù)據(jù)傳送至PC端


??節(jié)點(diǎn)可以接收來自PC的控制指令,以調(diào)整采樣速率和電源模式


??具備停機(jī)自動(dòng)復(fù)位能力


? 可進(jìn)入睡眠狀態(tài),并可由按鍵喚醒


從上面的需求中我們可以看出,本實(shí)驗(yàn)的核心芯片為CC2430,需要的片外擴(kuò)展模塊為LED燈與按鍵,預(yù)期要達(dá)到具體項(xiàng)目需求即以上五點(diǎn)?! ?/span>

  

接下來,我們利用上面提到的分層理論小試牛刀,對(duì)“溫度監(jiān)測(cè)系統(tǒng)”這一實(shí)驗(yàn)的代碼結(jié)構(gòu)進(jìn)行規(guī)劃:


(1)應(yīng)用程序?qū)樱ˋPL)

[main.c] 引用?hal.h、ioCC2430.h?與?module.h,實(shí)現(xiàn)溫度采集、與PC互通信、停機(jī)復(fù)位等具體的應(yīng)用需求

  

(2)功能模塊層(FML)

[module.h] 定義了一系列片外功能模塊(LED、按鍵),以及一系列的相關(guān)函數(shù)的聲明

      

[module.c] 引用 hal.h,實(shí)現(xiàn)各片外模塊(LED、按鍵)的功能

  

(3)硬件抽象層(HAL)

[ioCC2430.h](系統(tǒng)自帶):定義了CC2430的所有SFR 、中斷向量


[hal.h] 包括常用類型定義、常用賦值宏、以及CC2430片上資源的配置(I/O、串口通訊、ADC、定時(shí)器、電源管理等)


(注:由于本實(shí)驗(yàn)所涉及的片外模塊——LED與按鍵——的使用極其簡單,所以筆者將其合并入了單個(gè)源文件。若遇到較復(fù)雜的模塊,可以單獨(dú)新建 .h 與 .c 文件來實(shí)現(xiàn),如LCD.h、LCD.c)  

  

經(jīng)此設(shè)計(jì),其優(yōu)點(diǎn)逐漸浮出水面:


? 高效的開發(fā)速率:編完 HAL 層中的?hal.h?之后,我們就可以很方便地調(diào)用,而不必反復(fù)地去查詢SFR的具體設(shè)置細(xì)則
 

? 快速擴(kuò)展:若需要加強(qiáng)系統(tǒng)功能,只需在 FML 層添加相應(yīng)功能模塊(即 .c 文件),并在?main.c 中調(diào)用即可
 

? 較高的代碼重用性:HAL 層所提供的SFR操作可供通用,而且該層幾乎不用修改就可直接用于新的CC2430項(xiàng)目中?
 

? 較好的可維護(hù)性:項(xiàng)目代碼結(jié)構(gòu)清晰,HAL 與 FML 幾乎不需要修改,只需修改 APL 即可


五 、結(jié)論

 

可能對(duì)于嵌入式編程高手來說,上述理論可能完全算不得什么,甚至還存在著很大的錯(cuò)誤。不過在一個(gè)初學(xué)者從入門走向精通的途中,像這種?發(fā)現(xiàn)問題 →?投入思考 →?提出方案?的學(xué)習(xí)模式,我相信是值得而且很有必要的。就像很多人說的那樣:過程比結(jié)論更重要。


嵌入式ARM

掃描二維碼,關(guān)注更多精彩內(nèi)容

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動(dòng)力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉