電子發(fā)燒友App

硬聲App

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>單片機(jī)>uCOS在51單片機(jī)上進(jìn)行移植的心得資料免費(fèi)下載

uCOS在51單片機(jī)上進(jìn)行移植的心得資料免費(fèi)下載

2019-08-29 | pdf | 0.51 MB | 次下載 | 1積分

資料介紹

  多人對(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)方法。

下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評(píng)論

查看更多

下載排行

本周

  1. 1TC358743XBG評(píng)估板參考手冊(cè)
  2. 1.36 MB  |  330次下載  |  免費(fèi)
  3. 2開(kāi)關(guān)電源基礎(chǔ)知識(shí)
  4. 5.73 MB  |  6次下載  |  免費(fèi)
  5. 3100W短波放大電路圖
  6. 0.05 MB  |  4次下載  |  3 積分
  7. 4嵌入式linux-聊天程序設(shè)計(jì)
  8. 0.60 MB  |  3次下載  |  免費(fèi)
  9. 5基于FPGA的光纖通信系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
  10. 0.61 MB  |  2次下載  |  免費(fèi)
  11. 651單片機(jī)窗簾控制器仿真程序
  12. 1.93 MB  |  2次下載  |  免費(fèi)
  13. 751單片機(jī)大棚環(huán)境控制器仿真程序
  14. 1.10 MB  |  2次下載  |  免費(fèi)
  15. 8基于51單片機(jī)的RGB調(diào)色燈程序仿真
  16. 0.86 MB  |  2次下載  |  免費(fèi)

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費(fèi)
  3. 2555集成電路應(yīng)用800例(新編版)
  4. 0.00 MB  |  33564次下載  |  免費(fèi)
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費(fèi)
  7. 4開(kāi)關(guān)電源設(shè)計(jì)實(shí)例指南
  8. 未知  |  21549次下載  |  免費(fèi)
  9. 5電氣工程師手冊(cè)免費(fèi)下載(新編第二版pdf電子書(shū))
  10. 0.00 MB  |  15349次下載  |  免費(fèi)
  11. 6數(shù)字電路基礎(chǔ)pdf(下載)
  12. 未知  |  13750次下載  |  免費(fèi)
  13. 7電子制作實(shí)例集錦 下載
  14. 未知  |  8113次下載  |  免費(fèi)
  15. 8《LED驅(qū)動(dòng)電路設(shè)計(jì)》 溫德?tīng)栔?/a>
  16. 0.00 MB  |  6653次下載  |  免費(fèi)

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費(fèi)
  3. 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
  4. 78.1 MB  |  537796次下載  |  免費(fèi)
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420026次下載  |  免費(fèi)
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費(fèi)
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費(fèi)
  11. 6電路仿真軟件multisim 10.0免費(fèi)下載
  12. 340992  |  191185次下載  |  免費(fèi)
  13. 7十天學(xué)會(huì)AVR單片機(jī)與C語(yǔ)言視頻教程 下載
  14. 158M  |  183279次下載  |  免費(fèi)
  15. 8proe5.0野火版下載(中文版免費(fèi)下載)
  16. 未知  |  138040次下載  |  免費(fèi)