嵌入式系統多任務處理套用開發實戰:基於ARM MCU和FreeRTOS核心

《嵌入式系統多任務處理套用開發實戰:基於ARM MCU和FreeRTOS核心》是2023年機械工業出版社出版的圖書。

基本介紹

  • 中文名:嵌入式系統多任務處理套用開發實戰:基於ARM MCU和FreeRTOS核心
  • 出版時間:2023年3月1日
  • 出版社:機械工業出版社
  • ISBN:9787111718130
內容簡介,圖書目錄,

內容簡介

本書講述了如何利用FreeRTOS多任務處理核心讓ARM Cortex微控制器進行多任務處理。本書還詳細講解了多任務處理作業系統的各項特性,例如:調度、優先權、信箱、事件標誌和信號量等。本書的重要特色之一是使用非常流行的Clicker 2 for STM32開發板(你可以很輕鬆地換用其他型號的開發板)和FreeRTOS進行實時項目實戰。這些項目包括:LED以不同頻率閃爍、7段數碼管的刷新顯示、用不同任務控制各種感測器的移動機器人、獨立控制的多個伺服電機、多任務處理的物聯網項目、具有獨立鍵盤輸入的溫度控制器、具有三項任務(激活、發生器和顯示)的隨機數發生器、家用報警系統以及泊車管理系統等等。

圖書目錄

譯者序
前言
致謝
第1章 微型計算機系統 / 1
1.1 概述 / 1
1.2 微控制器系統 / 1
1.2.1 RAM / 4
1.2.2 ROM / 5
1.2.3 PROM / 5
1.2.4 EPROM / 5
1.2.5 EEPROM / 5
1.2.6 flash EEPROM / 5
1.3 微控制器的特點 / 6
1.3.1 供電電壓 / 6
1.3.2 時鐘 / 6
1.3.3 定時器 / 6
1.3.4 看門狗 / 6
1.3.5 復位輸入 / 7
1.3.6 中斷 / 7
1.3.7 欠電壓檢測器 / 7
1.3.8 模數轉換器 / 7
1.3.9 串列輸入/輸出 / 7
1.3.10 SPI和I2C / 8
1.3.11 LCD驅動器 / 8
1.3.12 模擬比較器 / 8
1.3.13 實時時鐘 / 8
1.3.14 睡眠模式 / 8
1.3.15 上電復位 / 8
1.3.16 低功率運行 / 9
1.3.17 灌電流/拉電流能力 / 9
1.3.18 USB接口 / 9
1.3.19 CAN接口 / 9
1.3.20 乙太網接口 / 9
1.3.21 Wi-Fi和藍牙接口 / 9
1.4 微控制器架構 / 9
1.5 小結 / 10
拓展閱讀 / 10
第2章 ARM微控制器架構 / 11
2.1 概述 / 11
2.2 ARM微控制器 / 11
2.2.1 Cortex-M / 13
2.2.2 Cortex-R / 14
2.2.3 Cortex-A / 14
2.2.4 Cortex-M處理器對比 / 14
2.2.5 Cortex-M 兼容性 / 15
2.2.6 處理器性能測量 / 15
2.3 STM32F407VGT6微控制器 / 16
2.3.1 STM32F407VGT6的基本特點 / 16
2.3.2 內部模組示意圖 / 18
2.3.3 供電 / 20
2.3.4 低功耗模式 / 20
2.3.5 時鐘電路 / 20
2.4 通用輸入和輸出 / 24
2.5 嵌套向量中斷控制器 / 26
2.6 外部中斷控制器 / 26
2.7 定時器 / 26
2.8 模數轉換器 / 26
2.9 內置溫度感測器 / 27
2.10 數模轉換器 / 27
2.11 復位 / 27
2.12 電特性 / 27
2.13 小結 / 28
拓展閱讀 / 28
第3章 ARM Cortex微控制器開發板 / 29
3.1 概述 / 29
3.2 LPC1768 / 29
3.3 STM32 Nucleo系列 / 29
3.4 EasyMx PRO v7 for STM32 / 30
3.5 STM32F4DISCOVERY板 / 31
3.6 mbed套用板 / 31
3.7 EasyMx PRO v7 for Tiva / 32
3.8 MINI-M4 for STM32 / 33
3.9 Clicker 2 for MSP432 / 34
3.10 Tiva EK-TM4C123GXL
LaunchPad / 34
3.11 Fusion for ARM V8 / 35
3.12 Clicker 2 for STM32 / 35
3.13 小結 / 36
拓展閱讀 / 36
第4章 Clicker 2 for STM32開發板 / 37
4.1 概述 / 37
4.2 Clicker 2 for STM32硬體 / 37
4.2.1 板載LED / 38
4.2.2 板載按鍵開關 / 38
4.2.3 復位開關 / 38
4.2.4 供電 / 39
4.2.5 板載mikroBUS插座 / 39
4.2.6 輸入/輸出引腳 / 40
4.2.7 振盪器 / 41
4.2.8 板載微控制器編程 / 41
4.3 小結 / 42
拓展閱讀 / 42
第5章 ARM微控制器編程 / 43
5.1 概述 / 43
5.2 支持ARM微控制器的集成開發
環境 / 43
5.2.1 EWARM / 43
5.2.2 ARM Mbed / 44
5.2.3 MDK-ARM / 44
5.2.4 TrueStudio for STM32 / 45
5.2.5 System Workbench for
STM32 / 45
5.2.6 mikroC Pro for ARM / 45
5.3 小結 / 46
拓展閱讀 / 46
第6章 使用mikroC Pro for ARM編程 / 47
6.1 概述 / 47
6.2 mikroC Pro for ARM / 47
6.3 通用輸入/輸出庫 / 49
6.3.1 GPIO_Clk_Enable / 49
6.3.2 GPIO_Clk_Disable / 50
6.3.3 GPIO_Config / 50
6.3.4 GPIO_Set_Pin_Mode / 52
6.3.5 GPIO_Digital_Input / 53
6.3.6 GPIO_Digital_Output / 53
6.3.7 GPIO_Analog_Input / 53
6.3.8 GPIO_Alternate_Function_
Enable / 54
6.4 存儲器類型說明符 / 54
6.5 PORT輸入/輸出 / 54
6.6 按位訪問 / 55
6.7 bit數據類型 / 55
6.8 中斷和異常 / 55
6.8.1 異常 / 55
6.8.2 中斷服務程式 / 56
6.9 創建新項目 / 57
6.10 仿真 / 64
6.11 調試 / 66
6.12 其他mikroC IDE工具 / 67
6.12.1 ASCII表 / 67
6.12.2 GLCD點陣圖編輯器 / 68
6.12.3 HID終端 / 68
6.12.4 中斷助手 / 69
6.12.5 LCD定製字元 / 69
6.12.6 7段編輯器 / 69
6.12.7 UDP終端 / 69
6.12.8 USART終端 / 70
6.12.9 USB HID bootloader / 71
6.12.10 統計 / 71
6.12.11 庫管理器 / 72
6.12.12 編譯列表 / 73
6.12.13 輸出檔案 / 73
6.12.14 選項視窗 / 73
6.13 小結 / 74
拓展閱讀 / 74
第7章 多任務處理簡介 / 75
7.1 概述 / 75
7.2 多任務處理核心的優勢 / 76
7.3 對實時作業系統的需求 / 76
7.4 任務調度算法 / 77
7.4.1 協作調度 / 77
7.4.2 輪詢調度 / 82
7.4.3 搶占調度 / 82
7.4.4 調度算法的目標 / 83
7.4.5 搶占調度與非搶占調度之間的
區別 / 83
7.4.6 其他一些調度算法 / 84
7.5 調度算法的選擇 / 85
7.6 小結 / 85
拓展閱讀 / 85
第8章 FreeRTOS簡介 / 86
8.1 概述 / 86
8.2 FreeRTOS發行版 / 87
8.3 從mikroElektronika網站進行
  安裝 / 88
8.4 編寫項目檔案 / 89
8.5 FreeRTOS頭檔案路徑與源檔案
路徑 / 90
8.6 編譯器大小寫敏感 / 91
8.7 編譯模板程式 / 92
8.8 小結 / 92
拓展閱讀 / 92
第9章 使用FreeRTOS函式 / 93
9.1 概述 / 93
9.2 FreeRTOS數據類型 / 93
9.3 FreeRTOS變數命名 / 94
9.4 FreeRTOS函式命名 / 94
9.5 常用宏定義 / 94
9.6 任務狀態 / 94
9.7 與任務相關的函式 / 96
9.7.1 創建新任務 / 96
9.7.2 延遲任務 / 97
9.7.3 項目1—讓LED每秒閃爍
1次 / 97
9.7.4 項目2—讓一個LED每秒閃
爍1次,另一個LED每200ms
閃爍1次 / 100
9.7.5 掛起任務 / 102
9.7.6 讓掛起的任務恢復執行 / 102
9.7.7 項目3—掛起和恢復任務 / 103
9.7.8 刪除任務 / 105
9.7.9 項目4—讓LED閃爍並刪除
任務 / 105
9.7.10 獲取任務句柄 / 107
9.7.11 定時執行 / 108
9.7.12 滴答計數 / 108
9.7.13 項目5—利用函式vTask-
DelayUntil()讓LED閃爍 / 108
9.7.14 任務優先權 / 110
9.7.15 項目6—讓LED閃爍和切
換不同優先權的按鍵開關 / 111
9.7.16 項目7—獲取/設定任務優
先級 / 113
9.8 使用液晶顯示屏 / 114
9.8.1 HD44780 LCD模組 / 115
9.8.2 連線LCD與Clicker 2 for STM32
開發板 / 116
9.8.3 LCD函式 / 116
9.8.4 項目8—在LCD上
顯示文本 / 117
9.9 任務名稱、任務數量及滴答計數 / 119
9.10 項目9—在LCD上顯示任務
名稱、任務數量及滴答計數 / 120
9.11 轉而執行另一個優先權相同的
任務 / 122
9.12 取消延遲 / 123
9.13 項目10—7段2位多路復用LED
顯示屏計數器 / 123
9.14 項目11—7段4位多路復用LED
顯示屏計數器 / 129
9.15 項目12—7段4位多路復用LED
顯示屏事件計數器 / 135
9.16 項目13—交通燈控制器 / 136
9.17 項目14—改變LED
閃爍頻率 / 144
9.18 項目15—通過USB串口向PC
傳送數據 / 148
9.19 項目16—用PC鍵盤改變LED
閃爍頻率 / 154
9.20 任務列表 / 156
9.21 項目17—在PC螢幕上顯示
任務列表 / 157
9.22 任務信息 / 159
9.23 項目18—在PC螢幕上顯示
任務信息 / 160
9.24 任務狀態 / 162
9.25 項目19—在PC螢幕上顯示
任務狀態 / 163
9.26 任務參數 / 165
9.27 小結 / 165
拓展閱讀 / 165
第10章 佇列管理 / 166
10.1 全局變數概述 / 166
10.2 為何是佇列 / 166
10.3 創建佇列並利用佇列傳送和接
收數據 / 167
10.4 項目20—用PC鍵盤改變LED
閃爍頻率 / 169
10.5 刪除佇列、為佇列命名、重置
佇列 / 172
10.6 項目21—使用各種佇列函式 / 173
10.7 其他一些佇列函式 / 175
10.8 項目22—開關式溫度控制器 / 176
10.9 小結 / 185
拓展閱讀 / 185
第11章 信號量和互斥量 / 186
11.1 概述 / 186
11.2 創建二進制信號量和互斥量 / 187
11.3 創建計數型信號量 / 187
11.4 刪除信號量並獲取信號量計數 / 188
11.5 釋放和占用信號量 / 188
11.6 項目23—向PC傳送內部和
外部溫度數據 / 189
11.7 小結 / 194
拓展閱讀 / 194
第12章 事件組 / 195
12.1 概述 / 195
12.2 事件標誌和事件組 / 195
12.3 創建和刪除事件組 / 196
12.4 設定、清除、等待事件組位以及
獲取事件組位 / 196
12.5 項目24—向PC傳送內部和外
部溫度數據 / 198
12.6 項目25—控制LED的閃爍 / 202
12.7 項目26—基於GPS的項目 / 205
12.8 小結 / 212
拓展閱讀 / 212
第13章 軟體定時器 / 213
13.1 概述 / 213
13.2 創建、刪除、啟動、停止和重置
定時器 / 214
13.3 修改和獲取定時器周期 / 216
13.4 定時器名稱和ID / 217
13.5 項目27—反應定時器 / 217
13.6 項目28—生成方波 / 220
13.7 項目29—事件計數器(例如
頻率計數器) / 222
13.8 小結 / 225
拓展閱讀 / 225
第14章 一些示例項目 / 226
14.1 概述 / 226
14.2 項目30—生成頻率可調節的
方波 / 226
14.3 項目31—掃頻波形發生器 / 230
14.4 項目32—RGB燈光控制器 / 233
14.5 項目33—帶鍵盤的家庭報警
系統 / 236
14.6 項目34—帶蜂鳴器的超音波
泊車 / 244
14.7 項目35—步進電機項目 / 251
14.8 項目36—與Arduino通信 / 262
14.9 小結 / 267
拓展閱讀 / 267
第15章 空閒任務和空閒任務鉤子 / 268
15.1 概述 / 268
15.2 空閒任務 / 268
15.3 空閒任務鉤子函式 / 268
15.4 項目37—顯示空閒處理器
......

相關詞條

熱門詞條

聯絡我們