在嵌入式領(lǐng)域,嵌入式實時操作系統(tǒng)(Embedded Real Time Operation System,RTOS)正得到越來越廣泛的應用。采用RTOS可以更合理、更有效地利用CPU的資源,簡化應用軟件的設計,縮短系統(tǒng)開發(fā)時間,更好地保證系統(tǒng)的實時性和可靠性。
由于RTOS需占用一定的系統(tǒng)資源(尤其是RAM資源),只有C/OSⅡ、embOS、salvo、FreeRTOS等少數(shù)實時操作系統(tǒng)能夠在小RAM單片機上運行。相比于C/OSⅡ、embOS等商業(yè)操作系統(tǒng),F(xiàn)reeRTOS操作系統(tǒng)是完全免費的,具有源碼公開、可移植、可裁減、調(diào)度策略靈活的特點,可以方便地移植到各種單片機上運行。本書所使用的FreeRTOS版本為10.3.0。
作為一個輕量級的操作系統(tǒng),F(xiàn)reeRTOS提供的功能包括任務管理、時間管理、信號量、消息隊列、內(nèi)存管理、記錄功能等,可基本滿足較小系統(tǒng)的需要。FreeRTOS內(nèi)核支持優(yōu)先級調(diào)度算法,每個任務可根據(jù)重要程度的不同被賦予一定的優(yōu)先級,CPU總是讓處于就緒態(tài)的、優(yōu)先級最高的任務先運行。FreeRTOS內(nèi)核同時支持輪換調(diào)度算法,系統(tǒng)允許不同的任務使用相同的優(yōu)先級; 在沒有更高優(yōu)先級任務就緒的情況下,同一優(yōu)先級的任務共享CPU的使用時間。
在嵌入式領(lǐng)域,F(xiàn)reeRTOS是為數(shù)不多的,同時具有實時性、開源性、可靠性、易用性、多平臺支持等特點的嵌入式操作系統(tǒng)。目前,F(xiàn)reeRTOS已經(jīng)發(fā)展到支持包含x86、Xilinx、Altera等多達30種硬件平臺,其廣闊的應用前景已經(jīng)越來越受到業(yè)內(nèi)人士的關(guān)注。
本書基于STM32F4開發(fā)板,使用的芯片型號為STM32F407VGTx。STM32F4系列包含高速嵌入式存儲器和廣泛的增強型I/O和外設,連接到2個APB總線、3個AHB總線和1個32位多AHB總線矩陣; 使用64KB CCM(內(nèi)核耦合存儲器)數(shù)據(jù)RAM、LCD并行接口,MUC接口采用8080/6800模式; 具有正交(增量)編碼器輸入的定時器; 5V容錯I/O; 并行攝像頭接口; 真隨機數(shù)發(fā)生器; RTC,具有亞秒級精度,硬件日歷; 96位唯一ID。
本書分10章系統(tǒng)論述FreeRTOS實時操作系統(tǒng)開發(fā)。第1~7章講述FreeRTOS基礎開發(fā); 第8~10章側(cè)重于拓展應用。其中,第1章介紹FreeRTOS實時操作系統(tǒng)、FreeRTOS實時操作系統(tǒng)的移植方法以及FreeRTOS的配置文件; 第2章介紹FreeRTOS的任務,包括任務創(chuàng)建、任務刪除、任務掛起、任務切換、任務調(diào)度、任務信息、中斷優(yōu)先級、任務優(yōu)先級以及臨界區(qū); 第3章介紹FreeRTOS時間管理,包括時間片輪轉(zhuǎn)以及任務延時; 第4章介紹FreeRTOS任務棧,包括內(nèi)存分配失敗回調(diào)函數(shù)、堆棧溢出以及選擇堆棧大。 第5章介紹FreeRTOS內(nèi)存管理,包括內(nèi)存的申請和釋放以及內(nèi)存分配; 第6章介紹FreeRTOS任務間通信,包括消息隊列、二進制信號量、計數(shù)信號量、互斥信號量、遞歸互斥信號量、任務通知以及事件組; 第7章介紹FreeRTOS定時器與低功耗; 第8章介紹FreeRTOS CLI命令行界面,通過CLI的移植以及創(chuàng)建命令的方法與實現(xiàn)展開敘述; 第9章介紹FreeRTOS FAT文件系統(tǒng),通過對文件系統(tǒng)的標準文件系統(tǒng)接口的講述可以實現(xiàn)對文件的增刪改查功能; 第10章介紹FreeRTOS的網(wǎng)絡編程,對TCP/IP、UDP、TCP客戶端以及TCP服務器展開敘述。
本書適用于Windows 10系統(tǒng); 使用的編譯軟件為MDK 5.18; 固件庫為STM32F4xx HAL庫; FreeRTOS版本為10.3.0; 書中全部案例均在武漢飛航科技有限公司生產(chǎn)的飛航STM32F407開發(fā)板上測試通過。
本書主要由奚海蛟老師及相關(guān)研發(fā)人員編寫,所有作者均有多年嵌入式設計研發(fā)及應用經(jīng)驗。同時,本書凝聚了武漢飛航科技有限公司和北京鴻爐科技有限公司技術(shù)團隊(楊金星、李澤、王飛、石雄偉、朱世杰)的辛勤勞動,在此對他們一一表示感謝。
由于編者水平所限,并且時間倉促,書中難免存在不妥之處,懇請廣大讀者批評指正。
作者提供長期、有效的答疑服務,期待與讀者交流相關(guān)技術(shù)問題、行業(yè)應用或合作意向等話題。
互動交流
本書可作為本科及高職院校電子信息類專業(yè)的教材,也可作為嵌入式技術(shù)愛好者與工程師的參考資料。
編者2023年3月