嵌入式實時作業系統——基於STM32Cube,FreeRTOS和Tracealyzer的

嵌入式實時作業系統——基於STM32Cube,FreeRTOS和Tracealyzer的

《 嵌入式實時作業系統——基於STM32Cube、FreeRTOS和Tracealyzer的》是清華大學出版社出版的一本圖書,作者:[英]吉姆·考林(Jim Cooling)著 何小慶,張愛華,付元斌 譯。

基本介紹

  • 書名:嵌入式實時作業系統——基於STM32Cube,FreeRTOS和Tracealyzer的 
  • 作者:[英]吉姆·考林(Jim Cooling)
  • 譯者:何小慶,張愛華,付元斌
  • 出版社清華大學出版社 
  • 出版時間:2021年5月1日 
  • 定價:99 元
  • ISBN:9787302579243 
內容簡介,作者簡介,目錄,

內容簡介

《嵌入式實時作業系統——基於STM32Cube、FreeRTOS和Tracealyzer的套用開發》(原書第2版)從實戰角度出發,依託STM32F4 Discovery開發套件豐富的軟硬體開發資源,基於嵌入式實時多任務作業系統FreeRTOS,通過一系列的實驗,深入分析了RTOS的工作原理和實現機制。《嵌入式實時作業系統——基於STM32Cube、FreeRTOS和Tracealyzer的套用開發》(原書第2版)第一篇介紹了嵌入式系統套用開發流程及軟硬體開發工具。第二篇核心基礎實驗將RTOS理論付諸實踐,演示了任務創建,優先權調度策略,多任務套用面臨的共享資源的爭用、性能降低及優先權反轉等問題。實驗實現了各種任務互動的機制,幫助讀者直觀地了解RTOS的工作機理。第三篇針對多任務RTOS套用的運行時行為,採用Tracealyzer工具,可視化FreeRTOS的運行行為,展示了運行時分析工具的價值,通過具體的套用分析,幫助讀者理解和控制軟體的運行時行為。第四篇介紹了STM32F4硬體定時器機制,為RTOS任務故障檢測奠定硬體基礎。第五篇和第六篇介紹了如何提高代碼的重用性及自學RTOS的線上資料。

作者簡介

Jim Cooling 博士,在嵌入式實時作業系統領域擁有多年經驗,出版了多本著作,涵蓋嵌入式系統的許多方面,如實時接口、編程、軟體設計和軟體工程。曾任英國飛機公司飛行控制系統設計師; Marconi Radar Systems Ltd.的電子電路和系統設計師;海軍電子控制系統項目經理;英國拉夫堡大學研究員和高級講師。現為Lindentree Associates顧問兼合伙人,為嵌入式實時系統提供諮詢和培訓。
譯者簡介:
何小慶 嵌入式系統知名專家,《單片機與嵌入式系統套用》副主編,嵌入式系統聯誼會秘書長,麥克泰軟體公司創始人。長期從事嵌入式與物聯網技術、產業和教育方面工作,發表論文100餘篇,有《嵌入式作業系統風雲錄》《嵌入式軟體精解》等著譯作5本,在高校和企業講授物聯網和創業課程。
張愛華 麥克泰軟體公司技術總監,長期從事RTOS技術研究與工程套用,有《嵌入式實時作業系統μC/OS –Ⅲ套用開發》等譯作2本,是FreeRTOS 和μC/OS課程的主講老師。
付元斌 麥克泰軟體公司高級套用工程師,長期從事嵌入式軟體工具研究與工程套用。

目錄

第一篇套用代碼開發
第1章開發流程及軟硬體開發工具
1.1從設計到編程的實踐方法
1.1.1概述
1.1.2原始碼生成
1.1.3目標代碼生成
1.2STM32Cube軟體工具介紹
1.2.1工具概述
1.2.2STM32CubeMX特性
1.2.3STM32Cube嵌入式軟體庫及
文檔
1.3實用工具
1.3.1集成開發環境
1.3.2STM32F4 Discovery Kit硬體
1.4STM32Cube圖形工具
1.4.1STM32CubeMX概述
1.4.2選擇微控制器
1.4.3使用嚮導設定引腳功能
1.4.4代碼生成
1.4.5自動生成的代碼
1.5STM32Cube HAL庫
1.6Cube工程中的FreeRTOS配置
1.7STM32CubeIDE開發平台
1.7.1STM32CubeIDE開發環境
概述
1.7.2Eclipse平台介紹
1.7.3CubeIDE使用介紹
1.7.4CubeIDE的透視圖、視圖及
編輯器
1.7.5在CubeIDE中構建和安裝
項目
1.8要點回顧
第二篇核心基礎實驗
第2章多任務設計與實現基礎
2.1預備實驗簡單I/O互動
2.1.1概述
2.1.2簡單I/O互動框圖
2.1.3設計實現
2.1.4實驗API參考指南
2.1.5實驗回顧
2.2實驗1創建並運行連續執行的單個
任務
2.2.1任務框圖
2.2.2設計實現
2.2.3使用osDelay函式實現延時
2.2.4使用FreeRTOS原生API實現
延時
2.2.5進一步實驗
2.2.6實驗回顧
2.2.7實驗附錄
2.3實驗2周期任務實現
2.3.1延時實現
2.3.2周期任務實現
2.3.3實驗分析
2.3.4補充實驗
2.3.5實驗回顧
2.3.6實驗附錄: DelayUntil函式
描述
2.4實驗3創建和運行多個獨立的周期
任務
2.4.1背景介紹
2.4.2設計框圖
2.4.3設計實現
2.4.4實驗回顧
2.5實驗4優先權搶占調度策略分析
2.5.1背景介紹
2.5.2設計概述
2.5.3實驗描述
2.5.4實驗細節
2.5.5實驗回顧
第3章共享資源使用
3.1實驗5訪問競爭問題分析
3.1.1競爭問題介紹
3.1.2競爭問題概述
3.1.3實驗細節
3.1.4實驗回顧
3.2實驗6通過掛起調度器消除資源
競爭
3.2.1方法介紹
3.2.2實驗細節
3.2.3實驗回顧
3.3實驗7演示系統性能的降低
3.3.1介紹
3.3.2實驗細節
3.3.3實驗回顧
3.4實驗8使用信號量
保護臨界代碼
3.4.1背景介紹
3.4.2實驗細節
3.4.3實驗回顧
3.5實驗9使用互斥信號量保護臨界
代碼
3.5.1實現細節
3.5.2實驗回顧
3.6實驗10使用封裝機制提升系統
安全
3.6.1機制介紹
3.6.2實現概述
3.6.3實驗實現
3.6.4實驗回顧
3.7實驗11優先權反轉影響演示
3.7.1介紹
3.7.2實現及關鍵代碼
3.7.3實驗實現
3.7.4實驗討論及回顧
3.8實驗12使用優先權繼承機制消除
優先權反轉
3.8.1實驗介紹
3.8.2問題概述
3.8.3實驗回顧
第4章任務互動實現
4.1實驗13使用標誌協調任務活動
4.1.1機制介紹
4.1.2實現概述
4.1.3實現細節
4.1.4實驗總結
4.2實驗14使用事件標誌實現單向
同步
4.2.1實現介紹
4.2.2事件標誌、信號及FreeRTOS/
CMSIS的關係
4.2.3實驗實現
4.2.4總結與回顧
4.3實驗15使用信號量實現單向同步
4.3.1簡介及實現
4.3.2實驗細節
4.3.3總結與回顧
4.4實驗16使用信號量實現雙向同步
4.4.1雙向同步介紹
4.4.2實現細節
4.4.3總結與回顧
4.5實驗17使用信號量實現多個任務
同步
4.5.1原理介紹
4.5.2實現細節
4.5.3單信號量會合阻塞實現
4.5.4N個信號量會合阻塞實現
4.5.5回顧與總結
4.6實驗18使用記憶體池提供數據共享
機制
4.6.1實現介紹
4.6.2實現細節
4.6.3實驗回顧
4.7實驗19使用佇列傳輸數據
4.7.1佇列介紹
4.7.2實驗細節
4.7.3具體實現
4.7.4實驗回顧
4.7.5CMSISRTOS API中的
狀態和錯誤編碼
4.8實驗20使用信箱傳輸數據
4.8.1信箱介紹
4.8.2信箱構建
4.8.3實驗細節
4.8.4實驗回顧
4.8.5實驗附錄使用FreeRTOS
原生API構建信箱
4.9實驗21按鍵中斷服務實現
4.9.1介紹
4.9.2使用CubeMX自動生成
ISR代碼框架
4.9.3實驗細節
4.9.4實驗回顧
4.10實驗22演示為何需要快速實現
中斷處理
4.10.1實驗概述和時間參數
4.10.2使用CubeMX
4.10.3實驗回顧
4.11實驗23使用可延期伺服器減少
ISR影響
4.11.1中斷信號延時回響
4.11.2實驗概述和時間細節
4.11.3代碼生成及運行
4.11.4實驗回顧
第三篇使用Tracealyzer
可視化軟體行為
第5章Tracealyzer集成和配置
指南
5.1Tracealyzer實驗1Tracealyzer
介紹
5.2集成跟蹤記錄器庫
5.2.1將記錄器庫添加到項目
5.2.2為套用配置庫檔案
5.3在FreeRTOS中啟用Tracealyzer
記錄器
5.4配置CubeMX項目以符合工具需求
5.5初始化/啟動跟蹤記錄
5.5.1快照跟蹤模式
5.5.2流跟蹤模式
5.6附加檢查
第6章Tracealyzer的基本特點和
使用
6.1Tracealyzer實驗2Tracealyzer
基礎知識
6.2Tracealyzer實驗3分析跟蹤記錄
6.3Tracealyzer實驗4一個雙任務
設計的運行時分析
6.4Tracealyzer實驗5研究優先權
搶占調度
6.4.1實驗5.1跟蹤搶占調度
任務的執行
6.4.2實驗5.2設定跟蹤起始
位置
6.5Tracealyzer實驗6分析FreeRTOS
的延時函式
6.5.1實驗6.1
6.5.2實驗6.2
6.5.3實驗6.3
6.5.4評論和小結
第7章流模式操作介紹
Tracealyzer實驗7使用流模式進行跟蹤
記錄
第8章分析資源共享和任務間
通信
8.1Tracealyzer實驗8互斥: 使用受
保護的共享資源
8.2Tracealyzer實驗9研究任務之間的
非同步數據傳輸
8.2.1軟體行為概述
8.2.2跟蹤記錄: 無報警場景
8.2.3跟蹤記錄: 報警場景
8.3Tracealyzer實驗10研究任務之間的
同步數據傳輸
8.4Tracealyzer實驗11評估可延期
伺服器的使用
8.4.1總體描述
8.4.2任務時間
8.4.3實驗11a
8.4.4實驗11b
8.4.5實驗11c
第四篇擴展你的知識、
超越RTOS範圍
第9章STM Studio軟體工具
9.1STM Studio介紹
9.2STM Studio的使用
9.3回顧和總結
第10章STM32F4通用定時器
10.1附加實驗1使用定時器定時產生
ISR調用
10.1.1定時器: ISR運行模式
簡介
10.1.2熱身實驗細節
10.1.3關於定時器的細節
10.1.4實驗回顧
10.2附加實驗2控制定時器產生
的ISR
10.2.1實驗細節
10.2.2實驗回顧
10.3附加實驗3產生波形: 脈衝寬度
調製
10.3.1脈衝寬度調製是什麼
10.3.2在STM32F411上產生
PWM波形
10.3.3實驗回顧
10.4附加實驗4使用PWM控制
LED燈亮度
10.4.1實驗簡介
10.4.2低速PWM
10.4.3快速PWM
10.4.4實驗回顧
10.5附加實驗5產生波形: 脈衝
計數
10.5.1實驗簡介
10.5.2實驗細節
10.5.3實驗回顧
10.6附加實驗6測量脈衝間隔
10.6.1實驗簡介
10.6.2實驗1使用主動採樣
方式
10.6.3實驗1回顧
10.6.4實驗2使用基於中斷的
方式
10.6.5實驗2回顧
10.7附加實驗7測量脈衝頻率
10.7.1實驗簡介
10.7.2實驗細節
10.7.3實驗回顧
第11章使用STM32F4看門狗
定時器
11.1附加實驗8看門狗定時器基礎
11.1.1序言
11.1.2STM32F4獨立看門狗
簡介
11.1.3實驗細節: 使用STM庫
函式的簡單樣例
11.1.4實驗回顧
11.2附加實驗9正確使用
看門狗定時器
11.3附加實驗10使用CubeMX
激活IWDG
11.4附加實驗11使用CubeMX針對
套用設定WDT
11.5附加實驗12看門狗的視窗化
運行
11.5.1序言
11.5.2STM32F4視窗看門狗
(WWDG)的概念結構
11.5.3STM32F4 WWDG: 功能和
行為細節
11.5.4設定和使用視窗看門狗
11.5.5實驗細節: 演示WWDG的
逾時
11.5.6實驗回顧
11.6附加實驗13正確使用WWDG
11.7附加實驗14過早地踢WWDG
11.8附加實驗15使用CubeMX正確
激活WWDG
11.9附加實驗16早期喚醒中斷
(EWI)
11.9.1看門狗恢復機制(WRM)
簡介
11.9.2EWI代碼結構和內容
11.9.3實驗細節
11.9.4實驗回顧
11.10附加實驗17WWDG ISR的簡化
實現
11.11附加實驗18檢測失敗的單定期
任務
11.11.1背景
11.11.2實驗細節
11.11.3實驗回顧
第12章多任務設計中的通用任務
故障檢測技術
12.1附加實驗19單定期任務的看門狗
保護機制
12.1.1簡介
12.1.2套用任務T1設計
12.1.3基於狀態的監督任務
設計
12.1.4測試系統
12.1.5小結
12.2附加實驗20兩個定期任務的
故障檢測
12.2.1簡介
12.2.2更多討論
12.2.3測試和小結
12.3附加實驗21單一非定期任務的
故障檢測
12.3.1檢測非定期任務的故障的
可選方式
12.3.2創建和使用FreeRTOS
軟體定時器
12.3.3實驗細節
12.3.4實驗回顧
12.4附加實驗22混合定期與非定期
任務的故障檢測
12.4.1實驗簡介
12.4.2實驗的測試步驟
12.4.3後記
第五篇結束語: 展望未來
第13章自我改進指南
13.1實踐工作的影響
13.2OS相關的問題
13.3應用程式的可移植性
13.4套用級代碼結構
13.5結束語
第六篇幫助你自學的線上資料
第14章線上資料的參考指南
14.1STM32Cube嵌入式軟體
14.2STM32CubeMX的特點
14.3STM32Cube嵌入式軟體庫和
文檔
14.4硬體開發板: STM32F4
Discovery kit
14.5內容豐富的視頻
14.6STM Studio
14.7STM32F4定時器資料
14.8STM32CubeIDE相關信息
14.9FreeRTOS 文檔
14.10Percepio Tracealyzer RTOS
跟蹤分析工具
14.11實驗代碼

相關詞條

熱門詞條

聯絡我們