注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當前位置: 首頁出版圖書教育/教材/教輔教材高職高專教材嵌入式實時操作系統(tǒng)FreeRTOS原理及應用:基于STM32微控制器

嵌入式實時操作系統(tǒng)FreeRTOS原理及應用:基于STM32微控制器

嵌入式實時操作系統(tǒng)FreeRTOS原理及應用:基于STM32微控制器

定 價:¥49.00

作 者: 張超
出版社: 電子工業(yè)出版社
叢編項:
標 簽: 暫缺

ISBN: 9787121424779 出版時間: 2021-12-01 包裝:
開本: 16開 頁數(shù): 272 字數(shù):  

內(nèi)容簡介

  本書面向高職和應用型本科的學生,以及嵌入式產(chǎn)品開發(fā)的工程技術人員。以通用的STM32開發(fā)板為平臺,運行freeRTOS操作系統(tǒng)的智能手表作教學項目,貫穿書本內(nèi)容的編寫。全書共分12章,以智能手表項目為主線,系統(tǒng)介紹了嵌入式實時操作系統(tǒng)的概念,freeRTOS任務創(chuàng)建、任務調(diào)度、任務同步與消息傳遞,軟件定時器、事件通知等知識。在每個知識點的學習上,均安排有智能手表對應的功能單元,來幫助讀者理解知識點,并掌握其實際應用。項目引領,邊學邊做,學以致用是本書的一大特色。

作者簡介

  張超,男,碩士研究生,系統(tǒng)分析師,廣東梅州人,1971年10月出生。超過20年企業(yè)工作經(jīng)驗,主持嵌入式產(chǎn)品的研制、開發(fā)三十多項?,F(xiàn)任職于中山職業(yè)技術學院,主講《C語言程序設計》、《MCS-51單片機技術》、《STM32單片機技術應用》、《嵌入式產(chǎn)品開發(fā)與實踐》、《嵌入式實時操作系統(tǒng)》等課程。指導學生競賽,獲全國大學生電子設計大賽、全國職業(yè)院校技能大賽嵌入式應用開發(fā)賽項等***獎勵多項。

圖書目錄

第1章 嵌入式實時操作系統(tǒng)介紹\t1
1.1 嵌入式系統(tǒng)和嵌入式操作系統(tǒng)\t1
1.1.1 嵌入式系統(tǒng)的基本概念\t1
1.1.2 嵌入式操作系統(tǒng)\t2
1.1.3 實時操作系統(tǒng)\t2
1.1.4 嵌入式實時操作系統(tǒng)\t3
1.2 嵌入式實時操作系統(tǒng)FreeRTOS簡介\t5
1.2.1 FreeRTOS的特點\t5
1.2.2 FreeRTOS的商業(yè)許可\t5
1.2.3 選擇FreeRTOS的理由\t6
1.3 總結\t7
思考與練習\t7
第2章 FreeRTOS在STM32微控制器上的移植\t8
2.1 文件準備\t8
2.1.1 FreeRTOS源碼\t9
2.1.2 基礎工程\t12
2.2 FreeRTOS移植\t15
2.2.1 復制FreeRTOS源碼\t15
2.2.2 向工程中添加.c文件\t16
2.2.3 配置頭文件包含路徑\t17
2.2.4 配置FreeRTOS\t17
2.2.5 修改stm32f4xx_it.c文件\t19
2.2.6 編譯項目\t19
2.3 移植驗證\t20
2.3.1 引入FreeRTOS相關頭文件\t20
2.3.2 編寫測試任務函數(shù)\t20
2.3.3 創(chuàng)建測試任務\t21
2.3.4 開啟調(diào)度器\t21
2.3.5 下載測試\t22
2.4 添加串口打印功能\t22
2.4.1 串口硬件連接\t22
2.4.2 初始化串口\t23
2.4.3 下載測試\t24
2.5 總結\t25
思考與練習\t25
第3章 FreeRTOS的裁剪和配置\t26
3.1 基礎配置\t26
3.1.1 configUSE_PREEMPTION\t27
3.1.2 configUSE_PORT_OPTIMISED_TASK_SELECTION\t27
3.1.3 configCPU_CLOCK_HZ\t27
3.1.4 configTICK_RATE_HZ\t27
3.1.5 configMAX_PRIORITIES\t27
3.1.6 configMINIMAL_STACK_SIZE\t27
3.1.7 configTOTAL_HEAP_SIZE\t28
3.1.8 configUSE_16_BIT_TICKS\t28
3.1.9 configIDLE_SHOULD_YIELD\t28
3.1.10 configMAX_TASK_NAME_LEN\t28
3.1.11 configUSE_TICKLESS_IDLE\t28
3.1.12 關于列隊、信號量和任務通知\t29
3.1.13 關于鉤子函數(shù)\t29
3.2 FreeRTOS中斷配置\t29
3.2.1 configPRIO_BITS\t29
3.2.2 configLIBRARY_LOWEST_INTERRUPT_PRIORITY\t30
3.2.3 configKERNEL_INTERRUPT_PRIORITY\t30
3.2.4 configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY\t30
3.2.5 configMAX_SYSCALL_INTERRUPT_PRIORITY\t30
3.3 可選API函數(shù)配置\t31
3.4 其他配置\t31
3.4.1 協(xié)程相關\t31
3.4.2 任務運行信息相關\t31
3.4.3 軟件定時器相關\t32
3.4.4 斷言\t32
3.4.5 中斷服務函數(shù)\t33
3.5 FreeRTOSConfig.h頭文件參考配置\t33
3.6 總結\t35
思考與練習\t36
第4章 FreeRTOS任務基礎\t37
4.1 FreeRTOS任務\t37
4.1.1 任務的特性\t38
4.1.2 任務的狀態(tài)\t39
4.1.3 任務的優(yōu)先級\t39
4.1.4 任務堆棧\t40
4.1.5 任務控制塊\t40
4.1.6 列表和列表項\t41
4.2 任務創(chuàng)建和刪除\t44
4.2.1 任務函數(shù)\t45
4.2.2 任務創(chuàng)建和刪除函數(shù)\t45
4.2.3 用動態(tài)內(nèi)存分配方法創(chuàng)建任務\t46
4.2.4 用靜態(tài)內(nèi)存分配方法創(chuàng)建任務\t47
4.2.5 任務刪除\t48
4.3 任務創(chuàng)建與刪除示例\t49
4.3.1 組織代碼\t49
4.3.2 編寫LED0任務函數(shù)\t49
4.3.3 編寫LED1任務函數(shù)\t50
4.3.4 創(chuàng)建任務\t51
4.3.5 修改main.c文件\t51
4.3.6 下載測試\t53
4.4 總結\t53
思考與練習\t54
第5章 FreeRTOS任務調(diào)度\t55
5.1 開啟調(diào)度器\t55
5.1.1 調(diào)度器開啟函數(shù)\t55
5.1.2 調(diào)度器開啟過程\t57
5.1.3 啟動第一個任務\t57
5.2 任務的掛起和恢復\t58
5.2.1 任務的掛起\t58
5.2.2 任務的恢復\t60
5.2.3 任務掛起和恢復示例\t62
5.3 任務的調(diào)度\t64
5.3.1 FreeRTOS任務切換場合\t65
5.3.2 PendSV中斷\t66
5.3.3 PendSV中斷服務函數(shù)\t67
5.3.4 查找下一個要運行的任務\t69
5.3.5 FreeRTOS時間片調(diào)度\t71
5.3.6 時間片調(diào)度示例\t72
5.3.7 空閑任務\t76
5.4 FreeRTOS內(nèi)核函數(shù)\t78
5.4.1 臨界段操作函數(shù)\t79
5.4.2 掛起和恢復調(diào)度器函數(shù)\t80
5.4.3 任務切換函數(shù)\t81
5.4.4 系統(tǒng)時鐘節(jié)拍追加\t81
5.4.5 內(nèi)核函數(shù)使用示例\t81
5.5 總結\t84
思考與練習\t84
第6章 FreeRTOS任務函數(shù)\t85
6.1 延時函數(shù)\t86
6.1.1 系統(tǒng)時鐘節(jié)拍\t86
6.1.2 相對延時\t86
6.1.3 絕對延時\t87
6.1.4 延時函數(shù)使用示例\t88
6.2 優(yōu)先級控制\t91
6.2.1 獲取任務優(yōu)先級\t91
6.2.2 設置任務優(yōu)先級\t91
6.2.3 改變?nèi)蝿諆?yōu)先級示例\t91
6.3 獲取任務狀態(tài)信息\t96
6.3.1 任務狀態(tài)信息獲取函數(shù)\t96
6.3.2 任務狀態(tài)信息獲取示例\t98
6.4 統(tǒng)計任務運行時間信息\t101
6.4.1 任務運行時間信息統(tǒng)計函數(shù)\t101
6.4.2 任務運行時間信息統(tǒng)計示例\t101
6.5 總結\t106
思考與練習\t107
第7章 FreeRTOS隊列與消息傳遞\t108
7.1 FreeRTOS隊列及其結構\t108
7.1.1 FreeRTOS隊列特性\t108
7.1.2 隊列結構體\t110
7.2 隊列操作\t111
7.2.1 隊列創(chuàng)建\t111
7.2.2 入隊操作\t112
7.2.3 出隊操作\t114
7.2.4 其他隊列操作函數(shù)\t116
7.3 用隊列實現(xiàn)串口守護任務\t116
7.3.1 守護任務\t116
7.3.2 串口守護任務示例\t116
7.4 總結\t120
思考與練習\t120
第8章 FreeRTOS信號量與任務同步\t121
8.1 二值信號量\t121
8.1.1 創(chuàng)建二值信號量\t122
8.1.2 釋放二值信號量\t123
8.1.3 獲取二值信號量\t124
8.1.4 用二值信號量進行任務同步\t125
8.2 計數(shù)信號量\t131
8.2.1 創(chuàng)建計數(shù)信號量\t131
8.2.2 計數(shù)信號量的釋放和獲取\t131
8.2.3 用計數(shù)信號量進行任務同步\t131
8.3 互斥信號量\t133
8.3.1 創(chuàng)建互斥信號量\t135
8.3.2 互斥信號量的釋放和獲取\t135
8.3.3 優(yōu)先級翻轉(zhuǎn)\t136
8.3.4 優(yōu)先級翻轉(zhuǎn)示例\t136
8.3.5 用互斥信號量抑制優(yōu)先級翻轉(zhuǎn)\t140
8.4 遞歸互斥信號量\t142
8.5 總結\t143
思考與練習\t143
第9章 FreeRTOS事件標志組\t144
9.1 事件標志組\t144
9.1.1 創(chuàng)建事件標志組\t144
9.1.2 設置事件標志位\t145
9.1.3 獲取事件標志組值\t146
9.1.4 等待指定的事件標志位\t147
9.2 用事件標志組進行任務同步\t147
9.2.1 配置FreeRTOS\t148
9.2.2 配置定時器\t148
9.2.3 任務函數(shù)\t149
9.2.4 創(chuàng)建任務\t151
9.2.5 下載測試\t152
9.3 總結\t153
思考與練習\t153
第10章 FreeRTOS任務通知\t154
10.1 發(fā)送和獲取任務通知\t154
10.1.1 發(fā)送任務通知\t154
10.1.2 獲取任務通知\t156
10.2 任務通知使用\t157
10.2.1 用任務通知模擬二值信號量\t157
10.2.2 用任務通知模擬事件標志組\t160
10.3 總結\t163
思考與練習\t163
第11章 FreeRTOS軟件定時器\t164
11.1 軟件定時器服務任務\t164
11.2 軟件定時器操作\t165
11.2.1 單次定時與周期定時\t165
11.2.2 創(chuàng)建軟件定時器\t165
11.2.3 啟動軟件定時器\t166
11.2.4 停止軟件定時器\t167
11.3 軟件定時器使用示例\t168
11.3.1 配置FreeRTOS\t169
11.3.2 軟件定時器回調(diào)函數(shù)\t170
11.3.3 任務函數(shù)\t170
11.3.4 創(chuàng)建軟件定時器和任務\t172
11.3.5 下載測試\t173
11.4 總結\t174
思考與練習\t174
第12章 FreeRTOS內(nèi)存管理\t175
12.1 FreeRTOS內(nèi)存分配方法\t175
12.1.1 heap_1.c動態(tài)內(nèi)存管理方法\t175
12.1.2 heap_2.c動態(tài)內(nèi)存管理方法\t176
12.1.3 heap_3.c動態(tài)內(nèi)存管理方法\t176
12.1.4 heap_4.c動態(tài)內(nèi)存管理方法\t177
12.1.5 heap_5.c動態(tài)內(nèi)存管理方法\t177
12.2 FreeRTOS內(nèi)存管理示例\t177
12.3 總結\t180
思考與練習\t180
第13章 智能手表FreeRTOS實現(xiàn)\t182
13.1 功能設計\t182
13.1.1 時間顯示\t183
13.1.2 時間設置\t184
13.1.3 鬧鐘設置\t184
13.1.4 鬧鐘響鈴\t184
13.1.5 秒表計時\t185
13.1.6 心率測量\t185
13.1.7 運動計步\t186
13.1.8 硬件信息\t186
13.2 硬件設計\t187
13.2.1 硬件系統(tǒng)框圖\t188
13.2.2 單元電路\t188
13.2.3 硬件原理圖\t194
13.3 FreeRTOS工程\t194
13.3.1 復制并新建FreeRTOS工程\t194
13.3.2 智能手表FreeRTOS配置\t196
13.3.3 用STM32CubeMX生成初始化代碼\t196
13.4 算法及驅(qū)動\t199
13.4.1 OLED12864模塊\t199
13.4.2 AHT10\t207
13.4.3 心率測量\t210
13.4.4 運動計步\t214
13.4.5 藍牙傳輸\t223
13.4.6 多功能按鍵\t225
13.4.7 實時時鐘\t226
13.5 任務設計\t227
13.5.1 按鍵任務\t227
13.5.2 時間顯示任務\t228
13.5.3 時間設置任務\t229
13.5.4 鬧鐘設置任務\t231
13.5.5 鬧鐘時間檢查任務\t233
13.5.6 鬧鐘響鈴任務\t234
13.5.7 秒表計時任務\t235
13.5.8 心率測量任務\t237
13.5.9 計步后臺任務\t239
13.5.10 計步顯示任務\t239
13.5.11 任務信息獲取任務\t241
13.6 任務創(chuàng)建、調(diào)度與同步\t243
13.6.1 任務創(chuàng)建及調(diào)度器開啟\t244
13.6.2 搶占式調(diào)度提高系統(tǒng)響應性能\t247
13.6.3 時間片調(diào)度讓任務共享優(yōu)先級\t247
13.6.4 用任務掛起和恢復實現(xiàn)互斥訪問\t247
13.6.5 用互斥信號量共享藍牙資源\t249
13.6.6 用任務通知同步鬧鐘響鈴任務\t249
13.6.7 用隊列共享按鍵功能\t250
13.6.8 軟件定時器使用\t250
13.7 調(diào)試與優(yōu)化\t251
附錄A FreeRTOS編碼和命名規(guī)則\t254
附錄B 示例程序和項目所使用的編譯環(huán)境\t256
附錄C 項目實施對開發(fā)板的要求\t258
附錄D 項目實施所需驅(qū)動文件\t259
參考文獻\t260

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) www.autoforsalebyowners.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號