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

當(dāng)前位置:首頁(yè) > 嵌入式 > 嵌入式硬件
[導(dǎo)讀]回顧嵌入式RTOS在我國(guó)應(yīng)用與推廣的歷程,幾年前,RTOS的概念還很少為嵌入式系統(tǒng)工程師接受。這是由于8位單片機(jī)時(shí)代,應(yīng)用程序相對(duì)簡(jiǎn)單,設(shè)計(jì)者使用RTOS的意識(shí)不強(qiáng);另一方面

回顧嵌入式RTOS在我國(guó)應(yīng)用與推廣的歷程,幾年前,RTOS的概念還很少為嵌入式系統(tǒng)工程師接受。這是由于8位單片機(jī)時(shí)代,應(yīng)用程序相對(duì)簡(jiǎn)單,設(shè)計(jì)者使用RTOS的意識(shí)不強(qiáng);另一方面,商業(yè)RTOS軟件過(guò)于昂貴。兩年前的這個(gè)時(shí)候,筆者應(yīng)《電子產(chǎn)品世界》之邀,在嵌入式 2000學(xué)術(shù)研討會(huì)上提出,以免費(fèi)的RTOS-uC/OS的學(xué)習(xí)與應(yīng)用為突破口,提倡學(xué)習(xí)RTOS,使用RTOS,不久以后,《uC/0S-II the Real Time Kernel》一書(shū)的中譯本出版了。一些著名的大學(xué)開(kāi)始用uC/0S-II作教材給研究生講述RTOS。

近年來(lái),筆者看到很多國(guó)內(nèi)關(guān)于嵌入式系統(tǒng)應(yīng)用的雜志,都刊登了關(guān)于uC/OS,uC/0S-II移植與應(yīng)用的文章。這些刊物對(duì)RTOS嵌入式應(yīng)用的推廣功不可沒(méi)。mC/OS以及uC/0S-II在國(guó)內(nèi)普及與推廣的意義首先是提高了嵌入式工作者對(duì)RTOS的認(rèn)知度,強(qiáng)化了學(xué)習(xí)使用RTOS的觀念與意識(shí),其后才是mC/OS、uC/0S-II本身的實(shí)用價(jià)值。mC/OS、uC/0S-II是一個(gè)小的實(shí)時(shí)內(nèi)核,源碼公開(kāi),有詳盡的解釋。正是因?yàn)槠湫?,才便于研究、理解和掌握?/p>

以下,筆者就如何開(kāi)發(fā)基于uC/0S-II的應(yīng)用軟件和移植過(guò)程中使用的C編譯器問(wèn)題提出一些建議,并簡(jiǎn)要介紹μC/0S-II的最新版本V.2.52和uC/0S-II一書(shū)的第二版,供讀者參考。

如何開(kāi)發(fā)基于uC/0S-II的應(yīng)用軟件

基于uC/0S-II的應(yīng)用軟件由于uC/0S-II的商業(yè)價(jià)值得到了認(rèn)可,一些基于uC/0S-II的商業(yè)軟件也可以買(mǎi)到,如TCP/IP協(xié)議棧、藍(lán)牙通信軟件、紅外通信軟件等(見(jiàn)UCOS-III.com 網(wǎng)站)。我們這里說(shuō)的是如何自己開(kāi)發(fā)這類(lèi)應(yīng)用軟件。以TCP/IP 協(xié)議棧為例,如果需要全套的TCP/IP功能,可以直接使用嵌入式Linux ,如mCLinux、 RTEMS等。以mCLinux為例,內(nèi)核本身要占用512KB內(nèi)存,TCP/IP部分也有70B至80KB。mC/OSII特定的是一個(gè)小內(nèi)核,本身占用內(nèi)存在10KB量級(jí)上。對(duì)于特定的應(yīng)用,嵌入uC/0S-II的產(chǎn)品往往只需要TCP/IP中某一小部分。參照TCP/IP協(xié)議標(biāo)準(zhǔn)和一些公開(kāi)出版的圖書(shū),以及網(wǎng)上的源碼資源,自己寫(xiě)這一部分并非十分困難。舉例說(shuō)來(lái),如果用戶(hù)已經(jīng)完成了一套基于uC/0S-II的單片機(jī)控制系統(tǒng),而單片機(jī)仍有一定的剩余負(fù)荷可支持網(wǎng)絡(luò)通信,用戶(hù)希望能通過(guò)Internet網(wǎng)遠(yuǎn)程控制該系統(tǒng)。在硬件上,可以通過(guò)RS-232和Modem撥號(hào)上網(wǎng),也可以加一片網(wǎng)絡(luò)接口芯片如RTL8019直接上網(wǎng)。軟件開(kāi)發(fā)方面,TCP/IP的標(biāo)準(zhǔn)可以從www.rfc-editor.org中找到,一本不錯(cuò)的參考書(shū),是英國(guó)人jemy Bentham所著《TCP/IP Lean Web Servers for Emb-edded Systems》。這本約400頁(yè)的書(shū)后所附光盤(pán)中有實(shí)現(xiàn)一個(gè)瘦服務(wù)器的全部源代碼。書(shū)中以Microchip的8位單片機(jī)PIC16CF6為例,實(shí)現(xiàn)了單片機(jī)通過(guò)Modem撥號(hào)上網(wǎng)的功能。參照上述資料,我們?cè)?位、16位、32位 Motorola單片機(jī)上也實(shí)現(xiàn)了通過(guò)RTL8019 Internet網(wǎng)接口芯片直接上網(wǎng)的功能。在寫(xiě)這些軟件時(shí),我們發(fā)現(xiàn),在uC/0S-II下寫(xiě)TCP/IP通信軟件,比傳統(tǒng)的前后臺(tái)系統(tǒng)要方便很多。單片機(jī)要在完成原來(lái)控制系統(tǒng)功能的前提下,同時(shí)實(shí)現(xiàn)網(wǎng)絡(luò)通信,又是發(fā)送又是接收,沒(méi)有RTOS支持簡(jiǎn)直不可想象。從代碼長(zhǎng)度看,實(shí)現(xiàn)基本功能的TCP/IP 協(xié)議棧只需要大約7KB目標(biāo)代碼,比使用mCLinux顯然有優(yōu)勢(shì)。上面提到的瘦服務(wù)器(Lean Server) 一書(shū)是一本暢銷(xiāo)書(shū),其第二版已經(jīng)出版了,據(jù)悉機(jī)械工業(yè)出版社已購(gòu)買(mǎi)了中譯本版權(quán),希望不久的將來(lái)能見(jiàn)到該書(shū)的中譯本。

uC/0S-II的移植

uC/0S-II是專(zhuān)門(mén)為單片機(jī)嵌入式應(yīng)用設(shè)計(jì)的實(shí)時(shí)操作系統(tǒng)內(nèi)核,主體用標(biāo)準(zhǔn)的ANSI C語(yǔ)言寫(xiě)成,可移植性極好。目前已被成功地移植到四十多種CPU上,包括8位、16位、32位及64位單片機(jī),包括若干種DSP,因?yàn)橐浦驳姆独蠖嗫梢詮木W(wǎng)上下載,故移植起來(lái)并不困難。綜合來(lái)自各方面的反映,移植難度并不在于uC/0S-II源代碼本身,而在于不同用戶(hù)使用了不同的 C編譯器,由于編譯器的差異而引發(fā)的移植方面的問(wèn)題有時(shí)很難得到友人的幫助。而對(duì)于嵌入式應(yīng)用潛在市場(chǎng)群體-正在高校就讀的研究生們說(shuō)來(lái),困難還在于:幾乎所有用于單片機(jī)的C編譯器都是商業(yè)軟件,其中有些還相當(dāng)貴。

使用自由軟件Linux下的C語(yǔ)言交叉編譯器GNU gcc作為開(kāi)發(fā)工具來(lái)編譯移植uC/0S-II是一個(gè)不錯(cuò)的選擇。

使用自由軟件開(kāi)發(fā)嵌入式應(yīng)用的意義決不僅限于經(jīng)濟(jì)上節(jié)省開(kāi)支。學(xué)習(xí)使用自由軟件過(guò)程,實(shí)際上是培養(yǎng)IT高手的過(guò)程。自由軟件將造就一大批有共同語(yǔ)言的軟件開(kāi)發(fā)精英,GNU gcc交叉編譯工具支持大多數(shù)知名的16位、32位嵌入式應(yīng)用CPU,如Motorola的68HC11/12、M68K、CPU32、ColdFire 、PowerPC,AMD的AMD29K,Intel的i386、Intel960,其它如著名的ARM、Thumb、M32、MIPS、RT、 SPARC、DEC的Alpha、 VAX等,還包括TI的TMS32 DSP等。

自由軟件有強(qiáng)大的網(wǎng)上技術(shù)支持是公認(rèn)的,不斷推出的升級(jí)版本表明自由軟件的強(qiáng)大生命力。使用GNU gcc作為交叉編譯器的難點(diǎn)不在于交叉編譯器的用法本身,而在于搭建Linux下的開(kāi)發(fā)環(huán)境。這一部分工作在國(guó)外一般由專(zhuān)門(mén)的系統(tǒng)管理員來(lái)做。而國(guó)內(nèi)由于公司的規(guī)模較小,往往沒(méi)有專(zhuān)門(mén)的系統(tǒng)管理員,這部分工作要自己做,從而增加了Linux系統(tǒng)下自由軟件的使用難度。使用中的另一個(gè)難點(diǎn)是,遇到問(wèn)題時(shí)常常不知道如何處理。要學(xué)會(huì)看系統(tǒng)提供的幫助信息,向Linux的高手請(qǐng)教,校園內(nèi)利用BBS的交流是一種學(xué)習(xí)的極好方式。還有一個(gè)辦法是在網(wǎng)上搜索,因?yàn)槟阌龅降膯?wèn)題也許過(guò)去別人也遇到過(guò),解決辦法可能網(wǎng)上就有。再有一個(gè)辦法就是直接給作者發(fā)電子郵件。自由軟件有源碼,大多都有作者的Email地址。如果 uC/0S-II的移植以GNU gcc交叉編譯器為基礎(chǔ),討論起來(lái)共同語(yǔ)言會(huì)更多些,移植會(huì)更容易。一些芯片生產(chǎn)商在推出其嵌入式應(yīng)用芯片的同時(shí)就提供了uC/0S-II的移植代碼,如 Motorola的16位DSP 56800系列,移植代碼包含在系統(tǒng)開(kāi)發(fā)工具SDK中,C編譯器采用其子公司metrowerks的codewarrior。雖然移植不難有現(xiàn)成的例子可參考,但筆者仍認(rèn)為移植是一個(gè)重要的學(xué)習(xí)過(guò)程,這一過(guò)程的意義遠(yuǎn)大于移植后的結(jié)果。這一過(guò)程有助于提高對(duì)RTOS的認(rèn)識(shí)與理解,從而提高嵌入式工作者的理論與技術(shù)水平。

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

在嵌入式系統(tǒng)和底層驅(qū)動(dòng)開(kāi)發(fā)中,C語(yǔ)言因其高效性和可控性成為主流選擇,但缺乏原生單元測(cè)試支持成為開(kāi)發(fā)痛點(diǎn)。本文提出一種基于宏定義和測(cè)試用例管理的輕量級(jí)單元測(cè)試框架方案,通過(guò)自定義斷言宏和測(cè)試注冊(cè)機(jī)制,實(shí)現(xiàn)無(wú)需外部依賴(lài)的嵌入...

關(guān)鍵字: C語(yǔ)言 嵌入式系統(tǒng) 驅(qū)動(dòng)開(kāi)發(fā)

在Linux設(shè)備驅(qū)動(dòng)開(kāi)發(fā)中,等待隊(duì)列(Wait Queue)是實(shí)現(xiàn)進(jìn)程睡眠與喚醒的核心機(jī)制,它允許進(jìn)程在資源不可用時(shí)主動(dòng)放棄CPU,進(jìn)入可中斷睡眠狀態(tài),待資源就緒后再被喚醒。本文通過(guò)C語(yǔ)言模型解析等待隊(duì)列的實(shí)現(xiàn)原理,結(jié)合...

關(guān)鍵字: 驅(qū)動(dòng)開(kāi)發(fā) C語(yǔ)言 Linux

在數(shù)字化時(shí)代,電子墨水屏(E-Ink)因其獨(dú)特的顯示效果和低功耗特性,在電子書(shū)、智能手寫(xiě)本等領(lǐng)域得到了廣泛應(yīng)用。然而,電子墨水屏的刷新率一直是其發(fā)展的瓶頸,如何在保證低功耗的同時(shí)提高刷新率,成為了驅(qū)動(dòng)開(kāi)發(fā)中的一個(gè)重要課題...

關(guān)鍵字: 電子墨水屏 E-Ink 驅(qū)動(dòng)開(kāi)發(fā)

在Linux驅(qū)動(dòng)開(kāi)發(fā)中,設(shè)備樹(shù)(Device Tree)作為一種描述硬件信息的數(shù)據(jù)結(jié)構(gòu),扮演著至關(guān)重要的角色。它使得操作系統(tǒng)能夠以一種更加靈活和標(biāo)準(zhǔn)化的方式識(shí)別和管理硬件設(shè)備。然而,在實(shí)際的開(kāi)發(fā)過(guò)程中,設(shè)備樹(shù)配置錯(cuò)誤或理...

關(guān)鍵字: Linux 驅(qū)動(dòng)開(kāi)發(fā) Debug

在嵌入式系統(tǒng)與設(shè)備驅(qū)動(dòng)開(kāi)發(fā)的廣闊領(lǐng)域中,時(shí)鐘、定時(shí)器以及延時(shí)函數(shù)扮演著至關(guān)重要的角色。它們不僅是系統(tǒng)時(shí)間管理的基石,更是實(shí)現(xiàn)高效、精確控制硬件行為的關(guān)鍵工具。本文將深入探討這三種機(jī)制在驅(qū)動(dòng)開(kāi)發(fā)中的具體應(yīng)用、實(shí)現(xiàn)方式及注意...

關(guān)鍵字: 驅(qū)動(dòng)開(kāi)發(fā) 嵌入式系統(tǒng) 延時(shí)函數(shù)

在Linux內(nèi)核的廣闊領(lǐng)域中,驅(qū)動(dòng)開(kāi)發(fā)是連接硬件與軟件、實(shí)現(xiàn)設(shè)備功能的關(guān)鍵環(huán)節(jié)。在這個(gè)過(guò)程中,文件操作函數(shù)與I/O操作函數(shù)作為兩大核心工具,各自扮演著不可或缺的角色。本文旨在深入探討這兩種函數(shù)在Linux驅(qū)動(dòng)開(kāi)發(fā)中的區(qū)別...

關(guān)鍵字: I/O操作函數(shù) 文件操作函數(shù) Linux 驅(qū)動(dòng)開(kāi)發(fā)

史勝輝,在MTK工作了11年,一直在基帶芯片的USB驅(qū)動(dòng)領(lǐng)域做開(kāi)發(fā)和驗(yàn)證。從最開(kāi)始做USB2.0/3.0 IP驗(yàn)證和驅(qū)動(dòng)開(kāi)發(fā)到后面帶領(lǐng)團(tuán)隊(duì)做上層協(xié)議驅(qū)動(dòng)開(kāi)發(fā),以及跟硬件設(shè)計(jì)部門(mén)合作開(kāi)發(fā)全新的USB硬件加速器。

關(guān)鍵字: 基帶芯片 驅(qū)動(dòng)領(lǐng)域 驅(qū)動(dòng)開(kāi)發(fā)

點(diǎn)擊上方名片關(guān)注我們朱老師推薦語(yǔ):此崗位為AIoT終身成長(zhǎng)大會(huì)員同學(xué)提供的自己公司的崗位內(nèi)推,總部在深圳,是一家專(zhuān)業(yè)從事閉路電視監(jiān)控設(shè)備、會(huì)議攝像機(jī)的研發(fā)、制造、銷(xiāo)售的高科技企業(yè),有學(xué)過(guò)嵌入式課程或者海思項(xiàng)目的同學(xué),想換...

關(guān)鍵字: 開(kāi)發(fā)工程師 linux驅(qū)動(dòng) 驅(qū)動(dòng)開(kāi)發(fā)

最近在學(xué)習(xí)MIPI接口的LCD驅(qū)動(dòng)開(kāi)發(fā)與調(diào)試,這里我主要用的是MIPI-DSI接口,它學(xué)習(xí)起來(lái)真的是太復(fù)雜了,特別是對(duì)于我這種很久都沒(méi)寫(xiě)驅(qū)動(dòng)來(lái)說(shuō)更是頭疼,但是頭疼歸頭疼,工作咱們還是要完成的,那就只能硬著頭皮往下肝吧!首...

關(guān)鍵字: MIPI 驅(qū)動(dòng)開(kāi)發(fā) 調(diào)試

關(guān)注、星標(biāo)嵌入式云IOT技術(shù)圈,精彩及時(shí)送達(dá)來(lái)源|??Linux與SoC整理出了6種驅(qū)動(dòng)開(kāi)發(fā)時(shí)與設(shè)備注冊(cè)、設(shè)備樹(shù)相關(guān)的調(diào)試方法,彼此間沒(méi)有優(yōu)先級(jí)之分,每種方法不一定是最優(yōu)解,但可以作為一種debug查找問(wèn)題的手段,快速定...

關(guān)鍵字: 驅(qū)動(dòng)開(kāi)發(fā)
關(guān)閉