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

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

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

定 價(jià):¥49.00

作 者: 張超
出版社: 電子工業(yè)出版社
叢編項(xiàng):
標(biāo) 簽: 暫缺

購(gòu)買這本書(shū)可以去


ISBN: 9787121424779 出版時(shí)間: 2021-12-01 包裝:
開(kāi)本: 16開(kāi) 頁(yè)數(shù): 272 字?jǐn)?shù):  

內(nèi)容簡(jiǎn)介

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

作者簡(jiǎn)介

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

圖書(shū)目錄

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

本目錄推薦

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