資料介紹
想了很久,要不要寫這篇文章?最后覺得對操作系統感興趣的人還是很多,寫吧。我不一定能造出玉,但我可以拋出磚。 包括我在內的很多人都對51使用操作系統呈悲觀態度,因為51的片上資源太少。但對于很多要求不高的系統來說,使用操作系統可以使代碼變得更直觀,易于維護,所以在51上仍有操作系統的生存機會。 流行的uCos,Tiny51等,其實都不適合在2051這樣的片子上用,占資源較多,唯有自已動手,以不變應萬變,才能讓51也有操作系統可用。這篇貼子的目的,是教會大家如何現場寫一個OS,而不是給大家提供一個OS版本。提供的所有代碼,也都是示例代碼,所以不要因為它沒什么功能就說LAJI之類的話。如果把功能寫全了,一來估計你也不想看了,二來也失去靈活性沒有價值了。 下面的貼一個示例出來,可以清楚的看到,OS本身只有不到10行源代碼,編譯后的目標代碼60字節,任務切換消耗為20個機器周期。相比之下,KEIL內嵌的TINY51目標代碼為800字節,切換消耗100~700周期。唯一不足之處是,每個任務要占用掉十幾字節的堆棧,所以任務數不能太多,用在128B內存的51里有點難度,但對于52來說問題不大。這套代碼在36M主頻的STC12C4052上實測,切換任務僅需2uS.
一。什么是操作系統?
人腦比較容易接受“類比”這種表達方式,我就用“公交系統”來類比“操作系統”吧。 當我們要解決一個問題的時候,是用某種處理手段去完成它,這就是我們常說的“方法”,計算機里叫“程序”(有時候也可以叫它“算法”)。 以出行為例,當我們要從A地走到B地的時候,可以走著去,也可以飛著去,可以走直線,也可以繞彎路,只要能從A地到B地,都叫作方法。這種從A地到B的需求,相當于計算機里的“任務”,而實現從A地到B地的方法,叫作“任務處理流程” 很顯然,這些走法中,并不是每種都合理,有些傻子都會采用的,有些是傻子都不采會用的。用計算機的話來說就是,有的任務處理流程好,有的任務處理流程好,有的處理流程差。 可以歸納出這么幾種真正算得上方法的方法: 有些走法比較快速,適合于趕時間的人;有些走法比較省事,適合于懶人;有些走法比較便宜,適合于窮人。 用計算機的話說就是,有些省CPU,有些流程簡單,有些對系統資源要求低。
現在我們可以看到一個問題: 如果全世界所有的資源給你一個人用(單任務獨占全部資源),那最適合你需求的方法就是好方法。但事實上要外出的人很多,例如 10個人(10個任務),卻只有1輛車(1套資源),這叫作“資源爭用”。 如果每個人都要使用最適合他需求的方法,那司機就只好給他們一人跑一趟了,而在任一時刻里,車上只有一個乘客。這叫作“順序執行”,我們可以看到這種方法對系統資源的浪費是嚴重的。 如果我們沒有法力將1臺車變成10臺車來送這10個人,就只好制定一些機制和約定,讓1臺車看起來像10臺車,來解決這個問題的辦法想必大家都知道,那就是制定公交線路。 最簡單的辦法是將所有旅客需要走的起點與終點串成一條線,車在這條線上開,乘客則自已決定上下車。這就是最簡單的公交線路。 它很差勁,但起碼解決客人們對車爭用。對應到計算機里,就是把所有任務的代碼混在一起執行。 這樣做既不優異雅,也沒效率,于是司機想了個辦法,把這些客戶叫到一起商量,將所有客人出行的起點與終點羅列出來,統計這些線路的使用頻度,然后制定出公交線路:有些路線可以合并起來成為一條線路,而那些不能合并的路線,則另行開辟行車車次,這叫作“任務定義”。另外,對于人多路線,車次排多點,時間上也優先安排,這叫作“任務優先級”。 經過這樣的安排后,雖然仍只有一輛車,但運載能力卻大多了。這套車次/路線的按排,就是一套“公交系統”。哈,知道什么叫操作系統了吧?它也就是這么樣的一種約定.
- 單片機編程和操作系統綜述 40次下載
- 使用單片機實現道路交通燈多任務控制系統的課件說明 7次下載
- C51下的RTX-51實時多任務操作系統的種類和詳細資料概述 48次下載
- 51單片機簡單操作系統的定時器切換任務的工程文件免費下載 5次下載
- 實時多任務操作系統在51單片機項目開發中的應用說明 3次下載
- 51單片機多任務操作系統的原理與實現的詳細資料概述
- 使用51單片機簡單實現小型操作系統的程序免費下載
- 如何使用51單片機實現多任務機制的策略詳細資料說明
- 如何使用51單片機進行多任務機制及應用
- 基于實時操作系統的單片機多任務應用程序設計 49次下載
- 51單片機多任務操作系統的原理與實現 16次下載
- MSP430單片機實時多任務操作系統c源代碼 91次下載
- 基于分時操作系統原理的單片機控制系統
- 51單片機多任務機制的實現策略研究 159次下載
- 基于實時操作系統的單片機應用系統設計
- 國產RT-thread操作系統在國民技術單片機上移植 395次閱讀
- 單片機最小系統原理圖講解 1.2w次閱讀
- 51單片機操作系統開發中有什么技巧會碰到什么問題 2898次閱讀
- PIC單片機以及51和AVR單片機的IO口操作方法解析 2951次閱讀
- 基于M16C62單片機實現實時多任務系統的設計方案 982次閱讀
- 基于時間觸發多任務調度器的嵌入式系統設計與應用 1958次閱讀
- 單片機多任務處理方案 9315次閱讀
- PIC單片機以及51單片機和AVR單片機的IO口操作方法介紹 1931次閱讀
- 嵌入式操作系統它有什么特點 2378次閱讀
- 開發51單片機操作系統注意事項 4545次閱讀
- 51單片機實時操作系統的基本結構與模式 5400次閱讀
- 如何用51單片機實現IIC通信 1.6w次閱讀
- 新手學習單片機的首選:51單片機 8536次閱讀
- 單片機51多任務的操作系統原理 1344次閱讀
- 51單片機學習感悟與51單片機上拉電阻心得 4229次閱讀
下載排行
本周
- 1TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費
- 2開關電源基礎知識
- 5.73 MB | 6次下載 | 免費
- 3100W短波放大電路圖
- 0.05 MB | 4次下載 | 3 積分
- 4嵌入式linux-聊天程序設計
- 0.60 MB | 3次下載 | 免費
- 5基于FPGA的光纖通信系統的設計與實現
- 0.61 MB | 2次下載 | 免費
- 651單片機窗簾控制器仿真程序
- 1.93 MB | 2次下載 | 免費
- 751單片機大棚環境控制器仿真程序
- 1.10 MB | 2次下載 | 免費
- 8基于51單片機的RGB調色燈程序仿真
- 0.86 MB | 2次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 2555集成電路應用800例(新編版)
- 0.00 MB | 33564次下載 | 免費
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費
- 4開關電源設計實例指南
- 未知 | 21549次下載 | 免費
- 5電氣工程師手冊免費下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費
- 6數字電路基礎pdf(下載)
- 未知 | 13750次下載 | 免費
- 7電子制作實例集錦 下載
- 未知 | 8113次下載 | 免費
- 8《LED驅動電路設計》 溫德爾著
- 0.00 MB | 6653次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費
- 2protel99se軟件下載(可英文版轉中文版)
- 78.1 MB | 537796次下載 | 免費
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420026次下載 | 免費
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費
- 6電路仿真軟件multisim 10.0免費下載
- 340992 | 191185次下載 | 免費
- 7十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183279次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138040次下載 | 免費
評論
查看更多