資料介紹
多人對(duì)于編寫(xiě)自己的操作系統(tǒng)很感興趣,uCOS51是個(gè)不錯(cuò)的選擇。它的優(yōu)點(diǎn)是簡(jiǎn)單易懂,學(xué)習(xí)成本低,有利于向32位CPU過(guò)渡。目前,嵌入式BBS上的熱點(diǎn)是:嵌入式實(shí)時(shí)多任務(wù)操作系統(tǒng)、單片機(jī)上網(wǎng)、32bitCPU(如ARM等)。其實(shí)通過(guò)uCOS51學(xué)習(xí)完全可以掌握這些熱門(mén)技術(shù)的精髓,而且學(xué)習(xí)成本低廉。為此我會(huì)陸續(xù)將我在研發(fā)過(guò)程中的經(jīng)驗(yàn)體會(huì)寫(xiě)出來(lái)與大家交流,共同進(jìn)步。我準(zhǔn)備討論以下內(nèi)容:uCOS51高效內(nèi)核、OS人機(jī)界面SHELL的編寫(xiě)、51機(jī)開(kāi)發(fā)板的硬件設(shè)計(jì)、RTL8019AS網(wǎng)卡驅(qū)動(dòng)程序、 51TCP/IP協(xié)議棧設(shè)計(jì)……在51上的實(shí)現(xiàn)技術(shù)、51OS任務(wù)劃分和應(yīng)用程序?qū)嵗?、?1軟件系統(tǒng)向ARM的移植以及其他想到的題目。歡迎大家積極參與。
前一段時(shí)間,我參與了一個(gè)SNMP網(wǎng)管板的項(xiàng)目,我負(fù)責(zé)硬件設(shè)計(jì)和單板軟件開(kāi)發(fā)。該板的硬件由MCS51+RTL8019AS組成,有 64K FLASH 和64K SRAM。軟件部分有操作系統(tǒng)和TCPIP協(xié)議棧。硬件比較簡(jiǎn)單,用了一個(gè)月就搞定了,協(xié)議棧我參考了老古開(kāi)發(fā)板的部分程序又上網(wǎng)找了SNMP源代碼也很快完成了,但是測(cè)試時(shí)發(fā)現(xiàn)當(dāng)使用較低時(shí)鐘頻率的CPU時(shí)(為了降低成本),由于ASN.1編解碼部分過(guò)于龐大,而我的程序又是一個(gè)大循環(huán),AGENT的響應(yīng)速度受到嚴(yán)重影響,用戶界面也反應(yīng)遲鈍。更壞的消息是公司為了適應(yīng)市場(chǎng)需求,還要在上面跑PPP和HTTP。那樣的話,我就得用40MHz的AT89C51RD2或者人為的把程序斷成幾部分然后用狀態(tài)機(jī)的方法在運(yùn)行時(shí)再把它們連接起來(lái)。不過(guò),我不想增加成本,也不想把程序搞亂,迫不得已,只好使用操作系統(tǒng)。
說(shuō)實(shí)在的,一開(kāi)始我也不是很有把握,一來(lái)我不清楚51的FLASH是否裝得下這么多代碼,二來(lái)我只做過(guò)OS應(yīng)用開(kāi)發(fā),對(duì)于它的移植想都不敢想。不過(guò),我在BBS上搜索了一陣兒后還是有了一些頭緒。我找到了幾個(gè)OS的源代碼(我喜歡用現(xiàn)成的),按照代碼大小、實(shí)時(shí)性、使用人數(shù)、眾人口碑等標(biāo)準(zhǔn),最后選定了uCOS2。我感覺(jué)它的實(shí)時(shí)性有保障,延時(shí)可預(yù)測(cè),代碼據(jù)說(shuō)可小到2K,網(wǎng)上討論這個(gè)話題的人也比較多,而且它的網(wǎng)站上有針對(duì)KEIL C51的移植實(shí)例。經(jīng)過(guò)一番查找,我得到了5個(gè)版本。其中3個(gè)是用KEIL編譯的。本來(lái)我想直接把OS代碼嵌到應(yīng)用程序中,但后來(lái)發(fā)現(xiàn)沒(méi)有一個(gè)可以直接使用。有的無(wú)法用KEIL直接編譯,有的需要修改DLL在軟件仿真下使用。而我需要的是能在串口輸入輸出,不需要修改任何無(wú)關(guān)軟件,能在軟件仿真和硬件上運(yùn)行的實(shí)時(shí)多任務(wù)操作系統(tǒng)。沒(méi)有辦法,我只好硬著頭皮去改編。我分析了自己的劣勢(shì):1。KEIL剛開(kāi)始使用,不太熟悉;2?;旌?a href='http://wenjunhu.com/v/tag/1315/' target='_blank' class='arckwlink_none'>編程以前從沒(méi)有作過(guò);3。時(shí)間緊迫,要在1個(gè)月內(nèi)搞定。而我的優(yōu)勢(shì)就是有5個(gè)移植實(shí)例可供參考,可以上網(wǎng)查資料。一開(kāi)始,我用“堆?!?、“混合編程”、“匯編”、“ucos”等關(guān)鍵字在C51BBS和老古論壇上檢索相關(guān)信息并逐條閱讀,讀過(guò)之后,頭腦中的思路逐漸清晰了。我了解到在KEIL的HLP目錄下有A51.PDF 和C51.PDF非常全面的介紹了匯編和C51,是KEIL的權(quán)威用戶手冊(cè);SP初始化、內(nèi)存清0等操作在STARTUP.A51文件中實(shí)現(xiàn),用戶可以改寫(xiě)它;KEIL的變量,子程序等的分配信息可以在.M51文件里查到;KEIL自己的論壇里有很多疑難問(wèn)題的解答……通過(guò)閱讀并經(jīng)過(guò)思考,解決了堆棧起點(diǎn)、堆??臻g大小的設(shè)定等關(guān)鍵問(wèn)題。論壇里的問(wèn)題有些是我沒(méi)有想到的,這使我發(fā)現(xiàn)了自己的疏漏。在網(wǎng)上獲得大量信息后,我開(kāi)始閱讀《uCOSII》中文版,一共讀了3遍。第一遍是瀏覽,了解到uCOSII包括任務(wù)調(diào)度、時(shí)間管理、內(nèi)存管理、資源管理(信號(hào)量、郵箱、消息隊(duì)列)四大部分,沒(méi)有文件系統(tǒng)、網(wǎng)絡(luò)接口、輸入輸出界面。它的移植只與4個(gè)文件相關(guān):匯編文件(OS_CPU_A.ASM)、處理器相關(guān)C文件(OS_CPU.H、OS_CPU_C.C)和配置文件(OS_CFG.H)。有64個(gè)優(yōu)先級(jí),系統(tǒng)占用8個(gè),用戶可創(chuàng)建56個(gè)任務(wù),不支持時(shí)間片輪轉(zhuǎn)。第二遍主要是把整個(gè)工作過(guò)程在頭腦里過(guò)了一下,不懂的地方有針對(duì)性地查書(shū),重點(diǎn)是思考工作原理和流程。我發(fā)現(xiàn)其實(shí)它的思路挺簡(jiǎn)單的。就是 “近似地每時(shí)每刻總是讓優(yōu)先級(jí)最高的就緒任務(wù)處于運(yùn)行狀態(tài)” 。為了保證這一點(diǎn),它在調(diào)用系統(tǒng)API函數(shù)、中斷結(jié)束、定時(shí)中斷結(jié)束時(shí)總是執(zhí)行調(diào)度算法。原作者通過(guò)事先計(jì)算好數(shù)據(jù),簡(jiǎn)化了運(yùn)算量,通過(guò)精心設(shè)計(jì)就緒表結(jié)構(gòu),使得延時(shí)可預(yù)知。任務(wù)的切換是通過(guò)模擬一次中斷實(shí)現(xiàn)的。第三遍重點(diǎn)看了移植部分的內(nèi)容。對(duì)照實(shí)例,研究了代碼的具體實(shí)現(xiàn)方法。
- 基于51單片機(jī)的uCOS_ii仿真源碼下載 19次下載
- 使用STC單片機(jī)實(shí)現(xiàn)UCOS系統(tǒng)的C51例程資料合集 25次下載
- 51單片機(jī)上的發(fā)送中斷標(biāo)志位的資料和使用程序免費(fèi)下載
- 如何在系列51單片機(jī)上移植uCOS-II
- 使用51單片機(jī)進(jìn)行1005大數(shù)加法的資料和程序免費(fèi)下載
- 如何進(jìn)行51單片機(jī)的延時(shí)計(jì)算資料和程序免費(fèi)下載的
- 如何使用51單片機(jī)進(jìn)行AD轉(zhuǎn)換的程序資料免費(fèi)下載
- 使用51單片機(jī)進(jìn)行主從機(jī)模擬SPI通信資料免費(fèi)下載
- 使用51單片機(jī)進(jìn)行自動(dòng)循跡智能小車的程序資料免費(fèi)下載 30次下載
- 使用51單片機(jī)進(jìn)行貪吃蛇設(shè)計(jì)的資料和電路圖程序資料免費(fèi)下載
- 使用51單片機(jī)進(jìn)行簡(jiǎn)單的串口通訊程序資料免費(fèi)下載
- 如何使用51單片機(jī)進(jìn)行音樂(lè)播放器的制作資料免費(fèi)下載
- 使用51單片機(jī)進(jìn)行超聲波測(cè)距的程序資料免費(fèi)下載 23次下載
- C51單片機(jī)上移植UCOS操作系統(tǒng)的詳細(xì)資料和程序免費(fèi)下載 28次下載
- 在51系列單片機(jī)上移植UCOS2 3次下載
- 基于51單片機(jī)的酒精消毒系統(tǒng)設(shè)計(jì) 655次閱讀
- 基于51單片機(jī)的脈搏采集系統(tǒng)設(shè)計(jì) 1024次閱讀
- 如何將FreeRTOS移植到STM32單片機(jī)上 2865次閱讀
- 使用51單片機(jī)讀寫(xiě)AT29C040的C語(yǔ)言程序免費(fèi)下載 4529次閱讀
- HD44780讀寫(xiě)單片機(jī)C51程序免費(fèi)下載 4146次閱讀
- 使用HD44780讀寫(xiě)單片機(jī)的C51程序詳細(xì)概述 3112次閱讀
- 80C51單片機(jī)與8051單片機(jī)的區(qū)別是什么 8688次閱讀
- 詳解pic單片機(jī)和AVR、51系列單片機(jī) 1710次閱讀
- PLC與單片機(jī)的差別 7917次閱讀
- 如何將UCOSII移植到51單片機(jī)上 3814次閱讀
- 80C51單片機(jī)與8051單片機(jī)的主要差別在哪里 7773次閱讀
- 如何使用51單片機(jī)實(shí)現(xiàn)串口通信 2.9w次閱讀
- 如何對(duì)51單片機(jī)進(jìn)行外部擴(kuò)展 1.5w次閱讀
- 8位單片機(jī)中的經(jīng)典之作,51單片機(jī)使用心得分享 3395次閱讀
- 51單片機(jī)學(xué)習(xí)感悟與51單片機(jī)上拉電阻心得 4229次閱讀
下載排行
本周
- 1TC358743XBG評(píng)估板參考手冊(cè)
- 1.36 MB | 330次下載 | 免費(fèi)
- 2開(kāi)關(guān)電源基礎(chǔ)知識(shí)
- 5.73 MB | 6次下載 | 免費(fèi)
- 3100W短波放大電路圖
- 0.05 MB | 4次下載 | 3 積分
- 4嵌入式linux-聊天程序設(shè)計(jì)
- 0.60 MB | 3次下載 | 免費(fèi)
- 5基于FPGA的光纖通信系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
- 0.61 MB | 2次下載 | 免費(fèi)
- 651單片機(jī)窗簾控制器仿真程序
- 1.93 MB | 2次下載 | 免費(fèi)
- 751單片機(jī)大棚環(huán)境控制器仿真程序
- 1.10 MB | 2次下載 | 免費(fèi)
- 8基于51單片機(jī)的RGB調(diào)色燈程序仿真
- 0.86 MB | 2次下載 | 免費(fèi)
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 2555集成電路應(yīng)用800例(新編版)
- 0.00 MB | 33564次下載 | 免費(fèi)
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費(fèi)
- 4開(kāi)關(guān)電源設(shè)計(jì)實(shí)例指南
- 未知 | 21549次下載 | 免費(fèi)
- 5電氣工程師手冊(cè)免費(fèi)下載(新編第二版pdf電子書(shū))
- 0.00 MB | 15349次下載 | 免費(fèi)
- 6數(shù)字電路基礎(chǔ)pdf(下載)
- 未知 | 13750次下載 | 免費(fèi)
- 7電子制作實(shí)例集錦 下載
- 未知 | 8113次下載 | 免費(fèi)
- 8《LED驅(qū)動(dòng)電路設(shè)計(jì)》 溫德?tīng)栔?/a>
- 0.00 MB | 6653次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費(fèi)
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 78.1 MB | 537796次下載 | 免費(fèi)
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420026次下載 | 免費(fèi)
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費(fèi)
- 6電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191185次下載 | 免費(fèi)
- 7十天學(xué)會(huì)AVR單片機(jī)與C語(yǔ)言視頻教程 下載
- 158M | 183279次下載 | 免費(fèi)
- 8proe5.0野火版下載(中文版免費(fèi)下載)
- 未知 | 138040次下載 | 免費(fèi)
評(píng)論
查看更多