日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁(yè) > 嵌入式 > 嵌入式軟件
[導(dǎo)讀] 目前嵌入式系統(tǒng)正在不斷地向智能化、網(wǎng)絡(luò)化的方向發(fā)展,在實(shí)時(shí)控制系統(tǒng)中采用嵌入式操作系統(tǒng)已成為當(dāng)前嵌入式應(yīng)用系統(tǒng)中的一個(gè)發(fā)展方向。本文以開(kāi)發(fā)電能計(jì)量電表中應(yīng)用C/OS

 目前嵌入式系統(tǒng)正在不斷地向智能化、網(wǎng)絡(luò)化的方向發(fā)展,在實(shí)時(shí)控制系統(tǒng)中采用嵌入式操作系統(tǒng)已成為當(dāng)前嵌入式應(yīng)用系統(tǒng)中的一個(gè)發(fā)展方向。

本文以開(kāi)發(fā)電能計(jì)量電表中應(yīng)用C/OS-II為實(shí)例,介紹了將實(shí)時(shí)嵌入式操作系統(tǒng)C/OS-II移植到目標(biāo)系統(tǒng)中的方法,分析和研究了在單片機(jī)系統(tǒng)中使用嵌入式操作系統(tǒng)的有關(guān)問(wèn)題。

1 引言

隨著后PC時(shí)代和網(wǎng)絡(luò)以及通信技術(shù)時(shí)代的到來(lái),嵌入式操作系統(tǒng)在通信、電子、自動(dòng)化等領(lǐng)域受已經(jīng)到了越來(lái)越多的關(guān)注。因?yàn)橐粋€(gè)好的嵌入式實(shí)時(shí)操作系統(tǒng)能夠提高產(chǎn)品的研制效率,縮短產(chǎn)品的開(kāi)發(fā)周期,所以許多生產(chǎn)廠家正在紛紛考慮采用嵌入式操作系統(tǒng)技術(shù)來(lái)開(kāi)發(fā)自己的產(chǎn)品。

實(shí)時(shí)嵌入式操作系統(tǒng)的種類繁多,大體可分為兩種——商用型及免費(fèi)型。商用型的實(shí)時(shí)操作系統(tǒng)功能穩(wěn)定、可靠、有完善技術(shù)支持及售后服務(wù),但其昂貴價(jià)格限制了它在為數(shù)眾多的低端低成本的場(chǎng)合的應(yīng)用。并且對(duì)這些場(chǎng)合來(lái)講,一個(gè)包含網(wǎng)絡(luò)協(xié)議核、文件管理,內(nèi)存管理的操作系統(tǒng)實(shí)在顯得過(guò)于龐大了。它們需要的僅僅是一個(gè)穩(wěn)定的包含任務(wù)管理及進(jìn)程調(diào)度的實(shí)時(shí)內(nèi)核,對(duì)一個(gè) 8位或16位單片機(jī)的應(yīng)用場(chǎng)合,一個(gè)代碼長(zhǎng)度不超過(guò)10KB,占用系統(tǒng)資源不超過(guò)10%象mC/OS-II這樣的實(shí)時(shí)內(nèi)核是非常適合的。

2 mC/OS-II 系統(tǒng)簡(jiǎn)介

mC/OS-II 是由Labrose先生編寫(xiě)的開(kāi)放式內(nèi)核,具有源碼公開(kāi),可移植、可固化、可裁剪,穩(wěn)定性及可靠性高的特點(diǎn)。其內(nèi)核提供任務(wù)調(diào)度與管理、時(shí)間管理任務(wù)同步與通信、內(nèi)存管理及中斷服務(wù)等功能,支持64用戶服務(wù)。90%的代碼函數(shù)用標(biāo)準(zhǔn)的ANSI C語(yǔ)言書(shū)寫(xiě),程序可讀性強(qiáng)、移植性好。適合于小型控制系統(tǒng),具有執(zhí)行效率高,占用空間小,實(shí)時(shí)性能優(yōu)良,可擴(kuò)展性強(qiáng)的特點(diǎn),加之它穩(wěn)定、可靠,現(xiàn)已被廣泛應(yīng)用在航空、醫(yī)療器械、工業(yè)控制等領(lǐng)域,被證明是一個(gè)成熟穩(wěn)定的實(shí)時(shí)內(nèi)核。

3 在AT89C51上運(yùn)行mC/OS-II

要使用mC/OS-II,首先就必須把這個(gè)內(nèi)核成功地移植到使用的CPU上去。下面就給出在電能計(jì)量電表所用的AT89C51上移植mC/OS-II過(guò)程。mC/OS-II移植的軟件部分要完成以下工作。

3.1 與編譯器有關(guān)的代碼

在不同的處理器中有不同的字長(zhǎng),所以必須定義一系列數(shù)據(jù)類型以確保移植的正確性。在C/OS-II中,不使用C的char、int和long等數(shù)據(jù)類型,這些都是和編譯器相關(guān)的,在AT89C51處理器中,各種數(shù)據(jù)類型定義如下:

typedef unsigned char BOOLEAN;

typedef unsigned char INT8U;

typedef signed char INT8S;

typedef unsigned int INT16U;

typedf signed int INT16S;

typedef unsigned long INT32U;

typedef signed long INT32S;

typedef float FP32;

typedef double FP64;

typedef unsigned char OS_STK;

mC/OS-II需要先禁止中斷訪問(wèn)代碼的臨界區(qū),并且在訪問(wèn)完畢后重新允許中斷。mC/OS-II定義了兩個(gè)宏OS_ENTER_CRITICAL()和OS_EXIT_CRITICAL()來(lái)禁止和允許中斷。實(shí)現(xiàn)方法如下:

#define OS_ENTER_CRITICAL() EA = 0

#define OS_EXIT_CRITICAL() EA = 1

#define OS_STK_GROWTH 0

#define OS_TASK_SWO 0SCtxSW()

3.2 4個(gè)匯編語(yǔ)言函數(shù)

這部分需要對(duì)處理器的寄存器進(jìn)行操作,所以必須用匯編語(yǔ)言來(lái)編寫(xiě)。 mC/OS-II的移植要求用戶編寫(xiě)4個(gè)簡(jiǎn)單的匯編語(yǔ)言函數(shù):OSStarHighRdy(),OSCtxSw(),OSIntCtxSw(),OSTickISR()。

OSStarHighRdy()在多任務(wù)系統(tǒng)啟動(dòng)函數(shù)OSStar()中調(diào)用。主要功能是將就緒表中最高優(yōu)先級(jí)任務(wù)的棧指針加載到SP中,并強(qiáng)制中斷返回。這樣就緒的最高優(yōu)先級(jí)任務(wù)就如同從中斷處理返回到運(yùn)行態(tài)一樣,使得整個(gè)系統(tǒng)得以運(yùn)轉(zhuǎn)。

OSCtxSw()在任務(wù)級(jí)任務(wù)切換函數(shù)中調(diào)用。任務(wù)級(jí)的切換問(wèn)題是通過(guò)發(fā)軟中斷命令或依靠處理器執(zhí)行陷阱指令來(lái)完成的。由于AT89C51沒(méi)有軟中斷命令或依靠處理器執(zhí)行陷阱指令,所以用OS_TASK_SW()直接調(diào)用OSCtxSw()來(lái)完成。

OSIntCtxSw()通過(guò)調(diào)用OSIntCtxSw()來(lái)從ISR中執(zhí)行切換功能。具體完成任務(wù)是調(diào)整堆棧指針,保存當(dāng)前任務(wù)的SP,載入就緒最高優(yōu)先級(jí)任務(wù)的SP,恢復(fù)就緒最高優(yōu)先級(jí)任務(wù)的環(huán)境變量,中斷返回,從而完成中斷級(jí)任務(wù)切換。

OSTickISR()是系統(tǒng)時(shí)鐘節(jié)拍中斷服務(wù)函數(shù)。這是一個(gè)周期性中斷,為內(nèi)核提供時(shí)鐘節(jié)拍,頻率越高系統(tǒng)負(fù)荷越重。此外還要編寫(xiě)6個(gè)與操作系統(tǒng)有關(guān)的函數(shù),有關(guān)這些函數(shù)具體功能更詳細(xì)的闡述,請(qǐng)參考文獻(xiàn)[1][2]。做完以上工作后,mC/OS-II就可以運(yùn)行了。

本站聲明: 本文章由作者或相關(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)系本站刪除。
換一批
延伸閱讀

數(shù)據(jù)中心中的電源實(shí)時(shí)測(cè)量輸入功率并將測(cè)量結(jié)果報(bào)告給主機(jī),這就是所謂的電計(jì)量(e-metering)。在過(guò)去十年中,電子電表已成為電源裝置的常見(jiàn)要求,因?yàn)樗鼮閿?shù)據(jù)中心帶來(lái)了以下優(yōu)勢(shì) :

關(guān)鍵字: 電表 電計(jì)量

推挽式驅(qū)動(dòng)器采用小型SOT封裝,可實(shí)現(xiàn)6W功率輸送,效率高達(dá)90%

關(guān)鍵字: 驅(qū)動(dòng)器 太陽(yáng)能逆變器 電表

在2024年慕尼黑上海電子展上,意法半導(dǎo)體為我們帶來(lái)了哪些尖端科技和創(chuàng)新產(chǎn)品呢?為了讓未能親臨現(xiàn)場(chǎng)的您也能領(lǐng)略到這場(chǎng)科技盛宴,我們特別挑選了三款亮點(diǎn)展品及解決方案,為您提供詳細(xì)的介紹。希望這些分享能夠激發(fā)您的創(chuàng)新靈感,讓...

關(guān)鍵字: 電動(dòng)汽車 電表 逆變器

2023年9月18日,中國(guó)--服務(wù)多重電子應(yīng)用領(lǐng)域、全球排名前列的半導(dǎo)體公司意法半導(dǎo)體(STMicroelectronics,簡(jiǎn)稱ST;紐約證券交易所代碼:STM)日前宣布與新加坡智能表計(jì)廠商 Sindcon(新加坡)物...

關(guān)鍵字: 微控制器 智能表計(jì) 電表

想要干擾電表非常簡(jiǎn)單,只需在電源變壓器附近放置一塊強(qiáng)磁鐵。外加磁場(chǎng)會(huì)破壞功率變換器并阻礙電表準(zhǔn)確監(jiān)測(cè)用電量的能力。磁鐵很容易使電表失效,因?yàn)橥ǔ?shí)施的防干擾方案無(wú)法檢測(cè)到它。目前還沒(méi)有準(zhǔn)確的數(shù)字來(lái)估計(jì)究竟有多少電量被以這...

關(guān)鍵字: Power Integrations 電表 電源變壓器

在下述的內(nèi)容中,小編將會(huì)對(duì)智能電表的相關(guān)消息予以報(bào)道,如果智能電表是您想要了解的焦點(diǎn)之一,不妨和小編共同閱讀這篇文章哦。

關(guān)鍵字: 智能電表 電表 智能電表箱

在下述的內(nèi)容中,小編將會(huì)對(duì)智能水表的相關(guān)消息予以報(bào)道,如果智能水表是您想要了解的焦點(diǎn)之一,不妨和小編共同閱讀這篇文章哦。

關(guān)鍵字: 智能水表 信息化 電表

摘要:根據(jù)生物制品類企業(yè)的電力能源使用特點(diǎn),制定了符合公司實(shí)際情況的能源管理系統(tǒng),介紹了該系統(tǒng)的架構(gòu)及其在企業(yè)的應(yīng)用情況,提升了公司能源數(shù)據(jù)的實(shí)時(shí)監(jiān)控能力,優(yōu)化了公司能源分配,降低了公司電力能源消耗,有針對(duì)性地解決了公司...

關(guān)鍵字: 能源管理 電能計(jì)量 節(jié)能減排

在這篇文章中,小編將為大家?guī)?lái)智能電表的相關(guān)報(bào)道。如果你對(duì)本文即將要講解的內(nèi)容存在一定興趣,不妨繼續(xù)往下閱讀哦。

關(guān)鍵字: 智能電表 電表 智能電網(wǎng)

本文中,小編將對(duì)智能電表予以介紹,如果你想對(duì)它的詳細(xì)情況有所認(rèn)識(shí),或者想要增進(jìn)對(duì)它的了解程度,不妨請(qǐng)看以下內(nèi)容哦。

關(guān)鍵字: 智能電表 電表 計(jì)量
關(guān)閉