書名: RT-Thread內核實現與應用開發實戰指南:基于STM32作者名: 劉火良 楊森本章字數: 1459字更新時間: 2019-01-21 10:02:19
前言
如何學習本書
本書是首本系統講解RT-Thread的中文書籍,共分為兩個部分。第一部分重點講解RT-Thread的原理實現,從0開始,不斷迭代,教你把RT-Thread的內核寫出來,讓你徹底學會線程是如何定義的、系統是如何調度的(包括底層的匯編代碼講解)、多優先級是如何實現的等操作系統的最深層次的知識。當你拿到本書開始學習的時候,你一定會驚訝,原來RTOS的學習并沒有那么復雜,反而是那么有趣;原來自己也可以寫RTOS,成就感立馬爆棚。
當徹底掌握第一部分的知識之后,再學習其他RTOS,可以說十分輕松。縱觀現在市面上流行的幾種RTOS,它們的內核實現差異不大,只需要深入研究其中一種即可,沒有必要對每一種RTOS都深入地研究源碼,但如果時間允許,看一看也并無壞處。第二部分重點講解RT-Thread的移植、內核中每個組件的應用,比起第一部分,這部分內容掌握起來應該比較容易。
全書內容循序漸進,不斷迭代,尤其在第一部分,前一章是后一章的基礎,必須從頭開始閱讀,不能進行跳躍式的閱讀。在學習時務必做到兩點:一是不能一味地看書,要把代碼和書本結合起來學習,一邊看書,一邊調試代碼。如何調試代碼呢?即單步執行每一條程序,看程序的執行流程和執行的效果與自己所想的是否一致。二是在每學完一章之后,必須將配套的例程重寫一遍(切記不要復制,即使是一個分號,但可以照書錄入),做到舉一反三,確保真正理解。在自己寫的時候難免錯誤百出,要珍惜這些錯誤,好好調試,這是你提高編程能力的最好機會。記住,程序不是一氣呵成寫出來的,而是一步一步調試出來的。
本書的編寫風格
本書第一部分主要以RT-Thread Nano 3.0.3官方源碼為藍本,抽絲剝繭,不斷迭代,教你如何從0開始把RT-Thread內核寫出來。書中涉及的數據類型、變量名稱、函數名稱、文件名稱、文件存放的位置都完全按照RT-Thread官方的方式來實現。學完這本書之后,你可以無縫地切換到原版的RT-Thread中使用。要注意的是,在實現的過程中,某些函數中會去掉一些形參和冗余的代碼,只保留核心的功能,但這并不會影響我們學習。
本書第二部分主要介紹RT-Thread的移植和內核組件的使用,不會再去深入講解源碼,而是著重講解如何應用,如果對第一部分不感興趣,也可以跳過第一部分,直接進入第二部分的學習。
本書還有姊妹篇——《FreeRTOS內核實現與應用開發實戰指南:基于STM32》,兩本書的編寫風格、內容框架和章節命名與排序基本一致,語言闡述類似,且涉及RTOS抽象層的理論部分也相同,不同之處在于RTOS的實現原理、內核源碼的講解和上層API的使用,這些內容才是重點部分,是讀者學習的核心。例如,雖然兩本書的第一部分的章節名稱基本類似,但內容不同,因為針對的RTOS不一樣。其中,關于新建RT-Thread工程和裸機系統與多線程(任務)系統的描述屬于RTOS抽象層的理論部分,不具體針對某個RTOS,所以基本一樣。第二部分中,對于什么是線程(任務)、阻塞延時和信號量的應用等RTOS抽象層的理論講解也基本類似,但是具體涉及這兩個RTOS的原理實現和代碼講解時則完全不同。
如果讀者已經學習了其中一本書,再學習另外一本的話,那么涉及RTOS抽象層的理論部分可跳過,只需要把精力放在RTOS內核的實現和源碼API的應用方面。因為現有的RTOS在理論層基本都是相通的,但在具體的代碼實現上各有特點,所以可以用這兩本書進行互補學習,掌握了其中一本書的知識,再學習另外一本書定會得心應手,事半功倍。
本書的參考資料和配套硬件
關于本書的參考資料和配套硬件的信息,請參考本書附錄部分。
本書的技術論壇
如果在學習過程中遇到問題,可以到野火電子論壇www.firebbs.cn發帖交流,開源共享,共同進步。
鑒于水平有限,書中難免有錯漏之處,熱心的讀者也可把勘誤發送到論壇上以便改進。祝你學習愉快,RT-Thread的世界,野火與你同行。
- Mobile Application Development:JavaScript Frameworks
- Node.js 10實戰
- Java 開發從入門到精通(第2版)
- Angular UI Development with PrimeNG
- Oracle Exadata性能優化
- Cocos2d-x游戲開發:手把手教你Lua語言的編程方法
- ASP.NET Core Essentials
- Selenium Design Patterns and Best Practices
- MATLAB 2020 從入門到精通
- Python深度學習原理、算法與案例
- Node Cookbook(Second Edition)
- JavaScript動態網頁編程
- 零基礎學C語言(第4版)
- .NET 4.0面向對象編程漫談:應用篇
- H5+移動營銷設計寶典