基于Linux的嵌入式實(shí)時(shí)操作系統(tǒng)的研究(2)
2012年05月30日 09:40 來(lái)源:互聯(lián)網(wǎng) 作者:秩名 我要評(píng)論(0)
5.RT-Linux的編程接口(API)及編程方法示例
(1)RTLinux的編程和控制接口(API)。
通過(guò)使用RTLinux的編程和控制接口(API),可以提供對(duì)實(shí)時(shí)任務(wù)的創(chuàng)建和刪除、任務(wù)的調(diào)度和控制等功能。API函數(shù)主要有如下幾類(lèi):
1)中斷控制API函數(shù);2)時(shí)鐘控制和獲取;3)線程的創(chuàng)建和刪除;4)POSIX方式的驅(qū)動(dòng)接口;5)FIFO設(shè)備驅(qū)動(dòng)程序;6)串口驅(qū)動(dòng)程序的API函數(shù);7)mbuff驅(qū)動(dòng)API函數(shù);8)浮點(diǎn)運(yùn)算API函數(shù)。
(2) RTLinux的編程方法示例
該程序的原理是測(cè)出在RT-Linux中進(jìn)行實(shí)時(shí)任務(wù)調(diào)度過(guò)程中調(diào)度需要花費(fèi)時(shí)間的多少。算法如下:
/*實(shí)時(shí)任務(wù)端*/
對(duì)于每500個(gè)周期
等待上一個(gè)周期的任務(wù)完成
獲得當(dāng)前時(shí)間和上次周期任務(wù)完成時(shí)間的差,就是調(diào)度的時(shí)間
循環(huán)
向FIFO輸出500個(gè)周期中完成的最大值和最小值。
/*應(yīng)用程序端*/
讀取FIFO設(shè)備,獲取最大值和最小值
在屏幕上打印出來(lái)
這種編程方法是進(jìn)行RT Linux編程的通用方法,將一個(gè)任務(wù)分為實(shí)時(shí)部分和非實(shí)時(shí)部分,在實(shí)時(shí)部分完成的是實(shí)時(shí)任務(wù);在非實(shí)時(shí)部分主要是完成顯示等不需要實(shí)時(shí)的功能。程序的體系結(jié)構(gòu)如下所示:
限于篇幅,程序代碼略。
6.開(kāi)發(fā)嵌入式RT-Linux的幾個(gè)問(wèn)題
(1)Linux的移植。如果Linux不支持選用的平臺(tái),就需要把Linux內(nèi)核中與硬件平臺(tái)相關(guān)的部分改寫(xiě),使之支持所選用的平臺(tái)。
(2)內(nèi)核的裁剪。嵌入式產(chǎn)品的可用資源比較少,所以它的內(nèi)核相對(duì)嵌入式系統(tǒng)來(lái)說(shuō)就顯得有點(diǎn)大,需要進(jìn)行剪裁到可利用的大小。
(3)桌面系統(tǒng)。現(xiàn)代的操作系統(tǒng)如果沒(méi)有一個(gè)友好的界面是沒(méi)有說(shuō)服力的。現(xiàn)在的臺(tái)式機(jī)Linux系統(tǒng)使用了傳統(tǒng)的X-Window系統(tǒng)的模式—Client/Server結(jié)構(gòu)。和硬件有關(guān)的部分即是Server端,實(shí)現(xiàn)一個(gè)標(biāo)準(zhǔn)的顯示接口;應(yīng)用程序通過(guò)對(duì)Server的服務(wù)請(qǐng)求,實(shí)現(xiàn)程序的顯示。在此之上,實(shí)現(xiàn)窗口的管理功能。但X Window對(duì)于嵌入式系統(tǒng)來(lái)說(shuō)顯得很龐大。現(xiàn)在國(guó)內(nèi)有MiniGUI,國(guó)外有MicroWindow,都在致力于嵌入式Linux GUI的開(kāi)發(fā)。適用于嵌入式Linux上的X-Window的工作也在進(jìn)行。
(4)驅(qū)動(dòng)程序的開(kāi)發(fā)。Linux內(nèi)核更新的很快,許多最新的硬件驅(qū)動(dòng)很快就被支持。但嵌入式系統(tǒng)應(yīng)用領(lǐng)域是多種多樣的,所選用的硬件設(shè)備也不同,并且不可能都有Linux的驅(qū)動(dòng)程序,因此,設(shè)備驅(qū)動(dòng)程序的開(kāi)發(fā)也是重要的工作。
7.結(jié)束語(yǔ)
嵌入式系統(tǒng)的開(kāi)發(fā)是剪裁與移植相結(jié)合的過(guò)程,開(kāi)發(fā)者自己編寫(xiě)的代碼并不多。筆者在智能交通監(jiān)控系統(tǒng)的設(shè)計(jì)中,通過(guò)對(duì)Linux適當(dāng)?shù)募舨茫x擇了RT-linux作為系統(tǒng)的開(kāi)發(fā)平臺(tái),對(duì)于提高系統(tǒng)的開(kāi)發(fā)效率和降低開(kāi)發(fā)成本取得較好的實(shí)效。當(dāng)然,嵌入式系統(tǒng)的發(fā)展對(duì)嵌入式操作系統(tǒng)提出了更高的要求,因此,對(duì)嵌入式操作系統(tǒng)的結(jié)構(gòu)、設(shè)計(jì)、用戶界面等諸多方面進(jìn)行深入研究,將有助于嵌入式系統(tǒng)的應(yīng)用和發(fā)展。
上周熱點(diǎn)文章排行榜
- 外國(guó)牛人教你一步步快速打造首臺(tái)機(jī)器人(超詳
- 全球首款惠普Z(yǔ)1電腦拆解:德州儀器、英特爾成最
- 揭秘磁懸浮燈泡無(wú)線電力傳輸(附完整電路圖)
- 華為畢業(yè)四年菜鳥(niǎo)身價(jià)千萬(wàn) HTC最需要害怕的新對(duì)
- 華為內(nèi)部工資和待遇詳解,50%員工空談28萬(wàn)年薪?
- 蘋(píng)果汽車(chē)iCar創(chuàng)意設(shè)計(jì)圖曝光:再次改變世界!
- 芯片級(jí)拆解:剖析新型LED燈泡設(shè)計(jì)的藝術(shù)
- 單片機(jī)設(shè)計(jì)經(jīng)驗(yàn)技巧精華集錦
- 最具創(chuàng)意LED發(fā)明:仿生LED隱形眼鏡 虛擬天空
- 震撼的顛覆性設(shè)計(jì)——液態(tài)金屬制造iPhone5
上周資料下載排行榜
論壇熱帖
- 7種你從沒(méi)想過(guò)的LED照明應(yīng)用,最后一個(gè)亮瞎了 assingle
- 2012,我們畢業(yè)啦-畢業(yè)季分享活動(dòng)正式上線 assingle
- 【博客分享季】 我的單片機(jī)入門(mén) kisswo
- 【畢業(yè)設(shè)計(jì)秀】謝謝A670521546在百忙之中幫我,原理圖已上傳 jiang874896
- 碉堡了,這是5星級(jí)賓館的標(biāo)準(zhǔn)阿~ 東十三少
- 【我們畢業(yè)啦】二逼青歡樂(lè)多-畢業(yè)照片回顧 cch6213
- 【我們畢業(yè)啦】那年 我們很快樂(lè) hh824829
- 【畢業(yè)設(shè)計(jì)秀】電阻測(cè)量?jī)x hxp1989325
- 話說(shuō)今天終于收到耳機(jī)了,曬圖 小鷹fighting
- 【我們畢業(yè)啦】大學(xué)里最遺憾的事就是…… xiaoliu241
熱門(mén)博文
創(chuàng)新實(shí)用技術(shù)專(zhuān)題
Linux技術(shù)應(yīng)用
Linux資料下載
- 嵌入式Linux下CAN總線驅(qū)動(dòng)程序設(shè)計(jì).rar
- ARM_Linux實(shí)現(xiàn)無(wú)線視頻監(jiān)控系統(tǒng)
- 基于嵌入式Linux系統(tǒng)的軟鍵盤(pán)實(shí)現(xiàn)
- 用Linux和Apache Hadoop進(jìn)行云計(jì)算
- Linux設(shè)備驅(qū)動(dòng)模型摘抄
- ARM-LINUX平臺(tái)的USB采集卡設(shè)備驅(qū)動(dòng)程序的設(shè)計(jì)
- Linux下基于I2C協(xié)議的RTC驅(qū)動(dòng)開(kāi)發(fā)
- 基于V4L2的Linux攝像頭驅(qū)動(dòng)的實(shí)現(xiàn)
- 基于嵌入式Linux智能家居監(jiān)控系統(tǒng)的設(shè)計(jì)
- 淺談Linux用戶管理
嵌入式技術(shù)應(yīng)用
嵌入式資料下載
- 基于北斗二代系統(tǒng)的嵌入式船用導(dǎo)航儀硬件設(shè)計(jì)
- 嵌入式Linux下CAN總線驅(qū)動(dòng)程序設(shè)計(jì).rar
- DAC7714在嵌入式激光跟蹤儀中的應(yīng)用
- 嵌入式RISC微處理器核設(shè)計(jì)研究
- 嵌入式VxWorks系統(tǒng)開(kāi)發(fā)與應(yīng)用_王學(xué)龍
- 嵌入式藍(lán)牙PSTN網(wǎng)關(guān)的設(shè)計(jì)與實(shí)現(xiàn)
- 嵌入式USB MiniHost系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
- 嵌入式雷達(dá)發(fā)射機(jī)故障監(jiān)測(cè)系統(tǒng)的研制
- 嵌入式實(shí)時(shí)操作系統(tǒng)VxWorks實(shí)驗(yàn)教程_王韜
- 嵌入式壓力傳感器的偏置對(duì)脈搏信號(hào)的影響
熱評(píng)
- LM3S9B96開(kāi)發(fā)板手冊(cè)及原理圖
- STM32F103ZET6紅牛電路圖
- 高通發(fā)布全新設(shè)計(jì)DragonBoard板
- NI推出Single-Board RIO嵌入式介面
- protel99se正式漢化版免費(fèi)下載
- hi3515海思原版原理圖
- matlab 7.0軟件下載(免費(fèi)破解版)
- TX-1C型單片機(jī)開(kāi)發(fā)板原理圖
- 三菱A500變頻器原理圖
- 三相IGBT全橋隔離驅(qū)動(dòng)電源設(shè)計(jì)
博文
- 問(wèn)什么郵箱激活不了
- 八成大學(xué)生認(rèn)同先就業(yè)后擇業(yè)
- 我的心路
- 為什么郵箱激活不了
- 到底有多少人在校園里浪費(fèi)青春
- 你是否曾這樣傷害過(guò)一個(gè)人?
- 到底有多少人在校園里浪費(fèi)青春
- 小小的電阻,您真的吃透了它的用法嗎
- 寧愿睡地板,也要?jiǎng)?chuàng)業(yè)做老板!
- 2012.5.12 第一個(gè)DS18B20程序
帖子
- 【博客分享季】 我的單片機(jī)入門(mén) kisswo
- 7種你從沒(méi)想過(guò)的LED照明應(yīng)用,最后一個(gè)亮瞎了 assingle
- 2012(單片機(jī)學(xué)習(xí)工具包)40G視頻教程 donghhao
- labview設(shè)計(jì)憤怒的小鳥(niǎo) 海角一客
- 【畢業(yè)設(shè)計(jì)秀】基于51單片機(jī)的音樂(lè)頻譜時(shí)鐘(附視頻鏈接) 我本邪惡
- 發(fā)布《精通LabVIEW虛擬一起程序設(shè)計(jì)》暨-【送書(shū)活動(dòng)預(yù)告】 assingle
- 吐血狂薦----768頁(yè)的超詳盡學(xué)習(xí)書(shū)籍-----電子電路百科全書(shū) dengyunhan
- 本人設(shè)計(jì)的一款游戲耳機(jī),給大家分享一下 qiu4466
- 【我們畢業(yè)啦】二逼青歡樂(lè)多-畢業(yè)照片回顧 cch6213
- 上傳本人當(dāng)年的畢業(yè)設(shè)計(jì)--優(yōu)等 天問(wèn)地知
用戶評(píng)論
查看全部 條評(píng)論
查看全部 條評(píng)論>>