FreeRTOS核心實現與套用開發實戰指南:基於STM32

FreeRTOS核心實現與套用開發實戰指南:基於STM32

《FreeRTOS核心實現與套用開發實戰指南:基於STM32》是2019年3月1日機械工業出版社出版的圖書,作者是劉火良、楊森。

基本介紹

  • 中文名:FreeRTOS核心實現與套用開發實戰指南:基於STM32
  • 作者:劉火良、楊森
  • 出版社:機械工業出版社
  • ISBN:9787111618256
內容簡介,圖書目錄,

內容簡介

本書基於野火STM32全系列開發板介紹FreeRTOS核心實現與套用開發,全書分為兩部分:部分教你如何從0到1把FreeRTOS核心寫出來,從底層的彙編開始,講解任務如何定義、如何切換,還講解了阻塞延時如何實現,如何支持多優先權,如何實現定時器以及時間片等FreeRTOS的核心知識點;第二部分則開始講解FreeRTOS核心組件的套用以及如何使用FreeRTOS進行多任務編程。
本書內容翔實,案例豐富,配有大量示例代碼,適合作為嵌入式領域工程師和愛好者的技術參考書,也適合相關專業的學生學習參考。

圖書目錄

前 言
引 言
第一部分 從0到1教你寫FreeRTOS核心
第1章 初識FreeRTOS 2
1.1 FreeRTOS著作權 2
1.2 FreeRTOS收費問題 2
1.2.1 FreeRTOS 2
1.2.2 OpenRTOS 2
1.2.3 SaveRTOS 3
1.3 FreeRTOS資料獲取 3
1.3.1 獲取源碼 3
1.3.2 獲取書籍 4
1.3.3 快速入門 4
1.4 FreeRTOS的編程風格 5
1.4.1 數據類型 5
1.4.2 變數名 6
1.4.3 函式名 6
1.4.4  7
1.4.5 格式 7
第2章 新建FreeRTOS工程—軟體仿真 8
2.1 新建本地工程資料夾 8
2.2 使用KEIL新建工程 8
2.2.1 New Project 9
2.2.2 Select Device for Target 9
2.2.3 Manage Run-Time Environment 10
2.3 在KEIL工程中新建檔案組 11
2.4 在KEIL工程中添加檔案 11
2.5 調試配置 13
2.5.1 設定軟體仿真 13
2.5.2 修改時鐘大小 13
2.5.3 添加頭檔案路徑 13
第3章 裸機系統與多任務系統 15
3.1 裸機系統 15
3.1.1 輪詢系統 15
3.1.2 前後台系統 16
3.2 多任務系統 17
第4章 數據結構—列表與列表項 20
4.1 C語言鍊表 20
4.1.1 單向鍊表 20
4.1.2 雙向鍊表 22
4.1.3 鍊表與數組的對比 22
4.2 FreeRTOS中鍊表的實現 23
4.2.1 實現鍊表節點 23
4.2.2 實現鍊表根節點 25
4.3 鍊表節點插入實驗 31
4.4 實驗現象 34
第5章 任務的定義與任務切換 35
5.1 本章目標 35
5.2 什麼是任務 36
5.3 創建任務 37
5.3.1 定義任務棧 37
5.3.2 定義任務函式 38
5.3.3 定義任務控制塊 39
5.3.4 實現任務創建函式 40
5.4 實現就緒列表 45
5.4.1 定義就緒列表 45
5.4.2 就緒列表初始化 45
5.4.3 將任務插入就緒列表 46
5.5 實現調度器 49
5.5.1 啟動調度器 49
5.5.2 任務切換 54
5.6 main( )函式 58
5.7 實驗現象 61
5.8 本章涉及的彙編指令 64
第6章 臨界段的保護 65
6.1 什麼是臨界段 65
6.2 Cortex-M核心快速關中斷指令 65
6.3 關中斷 66
6.3.1 不帶返回值的關中斷函式 66
6.3.2 帶返回值的關中斷函式 67
6.4 開中斷 67
6.5 進入/退出臨界段的宏 68
6.5.1 進入臨界段 68
6.5.2 退出臨界段 69
6.6 臨界段代碼的套用 70
6.7 實驗現象 71
第7章 空閒任務與阻塞延時 72
7.1 實現空閒任務 72
7.1.1 定義空閒任務的棧 72
7.1.2 定義空閒任務的任務控制塊 73
7.1.3 創建空閒任務 73
7.2 實現阻塞延時 74
7.2.1 vTaskDelay( )函式 74
7.2.2 修改vTaskSwitchContext( )函式 75
7.3 SysTick中斷服務函式 77
7.4 SysTick初始化函式 78
7.5 main( )函式 80
7.6 實驗現象 83
第8章 多優先權 84
8.1 支持多優先權的方法 84
8.2 查找最高優先權的就緒任務相關代碼 85
8.2.1 通用方法 87
8.2.2 最佳化方法 87
8.3 修改代碼以支持多優先權 89
8.3.1 修改任務控制塊 89
8.3.2 修改xTaskCreateStatic( )函式 89
8.3.3 修改vTaskStartScheduler( )函式 93
8.3.4 修改vTaskDelay( )函式 94
8.3.5 修改vTaskSwitchContext( )函式 95
8.3.6 修改xTaskIncrementTick( )函式 96
8.4 main( )函式 97
8.5 實驗現象 100
第9章 任務延時列表 102
9.1 任務延時列表的工作原理 102
9.2 實現任務延時列表 103
9.2.1 定義任務延時列表 103
9.2.2 任務延時列表初始化 103
9.2.3 定義xNextTaskUnblock-Time 103
9.2.4 初始化xNextTaskUnblock-Time 104
9.3 修改代碼以支持任務延時列表 104
9.3.1 修改vTaskDelay( )函式 105
9.3.2 修改xTaskIncrementTick( )函式 107
9.3.3 修改taskRESET_READY_PRIORITY( )函式 109
9.4 main( )函式 110
9.5 實驗現象 110
第10章 時間片 111
10.1 時間片測試實驗 111
10.2 main.c檔案 112
10.3 實驗現象 115
10.4 原理分析 116
10.4.1 taskSELECT_HIGHEST_PRIORITY_TASK( )函式 116
10.4.2 taskRESET_READY_PRIORITY( )函式 117
10.5 修改代碼以支持優先權 118
10.5.1 修改xPortSysTick-Handler( )函式 118
10.5.2 修改xTaskIncrement-Tick( )函式 119
第二部分 FreeRTOS核心套用開發
第11章 移植FreeRTOS到STM32 124
11.1 獲取STM32的裸機工程模板 124
11.2 下載FreeRTOS V9.0.0源碼 124
11.3 FreeRTOS資料夾內容 126
11.3.1 FreeRTOS資料夾 126
11.3.2 FreeRTOS-Plus資料夾 128
11.3.3 HTML檔案 129
11.4 向裸機工程中添加FreeRTOS源碼 129
11.4.1 提取FreeRTOS最簡源碼 129
11.4.2 複製FreeRTOS到裸機工程根目錄 130
11.4.3 複製FreeRTOSConf?ig.h檔案到User資料夾 131
11.4.4 添加FreeRTOS源碼到工程組資料夾 131
11.5 修改FreeRTOSConf?ig.h檔案 133
11.5.1 FreeRTOSConf?ig.h檔案內容 133
11.5.2 修改FreeRTOSConfig.h檔案 143
11.6 修改stm32f10x_it.c檔案 147
11.7 修改main.c檔案 151
11.8 下載驗證 152
第12章 任務 153
12.1 硬體初始化

相關詞條

熱門詞條

聯絡我們