嵌入式實時操作系統 (Real-time Operating Systems Book 2 - The Practice: Using STM Cube, FreeRTOS and the STM32 Discovery Board)

[英]吉姆·考林(Jim Cooling)著 何小慶,張愛華,付元斌 譯

  • 嵌入式實時操作系統 (Real-time Operating Systems Book 2 - The Practice: Using STM Cube, FreeRTOS and the STM32 Discovery Board)-preview-1
  • 嵌入式實時操作系統 (Real-time Operating Systems Book 2 - The Practice: Using STM Cube, FreeRTOS and the STM32 Discovery Board)-preview-2
  • 嵌入式實時操作系統 (Real-time Operating Systems Book 2 - The Practice: Using STM Cube, FreeRTOS and the STM32 Discovery Board)-preview-3
嵌入式實時操作系統 (Real-time Operating Systems Book 2 - The Practice: Using STM Cube, FreeRTOS and the STM32 Discovery Board)-preview-1

買這商品的人也買了...

商品描述

《嵌入式實時操作系統——基於STM32Cube、FreeRTOS和Tracealyzer的應用開發》(原書第2版)從實戰角度出發,依托STM32F4 Discovery開發套件豐富的軟硬件開發資源,基於嵌入式實時多任務操作系統FreeRTOS,通過一系列的實驗,深入分析了RTOS的工作原理和實現機制。《嵌入式實時操作系統——基於STM32Cube、FreeRTOS和Tracealyzer的應用開發》(原書第2版)第一篇介紹了嵌入式系統應用開發流程及軟硬件開發工具。第二篇內核基礎實驗將RTOS理論付諸實踐,演示了任務創建,優先級調度策略,多任務應用面臨的共享資源的爭用、性能降低及優先級反轉等問題。實驗實現了各種任務交互的機制,幫助讀者直觀地瞭解RTOS的工作機理。第三篇針對多任務RTOS應用的運行時行為,採用Tracealyzer工具,可視化FreeRTOS的運行行為,展示了運行時分析工具的價值,通過具體的應用分析,幫助讀者理解和控制軟件的運行時行為。第四篇介紹了STM32F4硬件定時器機制,為RTOS任務故障檢測奠定硬件基礎。第五篇和第六篇介紹瞭如何提高代碼的重用性及自學RTOS的在線資料。 《嵌入式實時操作系統——基於STM32Cube、FreeRTOS和Tracealyzer的應用開發》(原書第2版)的讀者可以是有一定嵌入式系統與MCU開發知識、希望學習STM32和FreeRTOS的初學者,也可以是有一定RTOS開發經驗、希望進一步深入學習RTOS的工程師、高校教師和學生。本書既可以作為嵌入式系統相關課程輔助教材,也可以作為工程技術人員項目開發的參考資料。

作者簡介

吉姆·考林(Jim Cooling),博士,在嵌入式實時操作系統領域擁有多年經驗,出版了多本著作,涵蓋嵌入式系統的許多方面,如實時接口、編程、軟件設計和軟件工程。
曾任英國飛機公司飛行控制系統設計師;Marconi Radar Systems Ltd.的電子電路和系統設計師:海軍電子控制系統項目經理;英國拉夫堡大學研究員和高級講師。
現為Lindentree Associates顧問兼合夥人,為嵌入式實時系統提供諮詢和培訓。
  

何小慶,嵌入式系統知名專家,《單片機與嵌入式系統應用》副主編,嵌入式系統聯誼會秘書長,麥克泰軟件公司創始人。
長期從事嵌入式與物聯網技術、產業和教育方面工作,發表論文100餘篇,有《嵌入式操作系統風雲錄》《嵌入式軟件精解》等著譯作5本,在高校和企業講授物聯網和創業課程。
  

張愛華,麥克泰軟件公司技術總監,長期從事RTOS技術研究與工程應用,有《嵌入式實時操作系統μC/OS Ⅲ應用開發》等譯作□本,是FreeRTOS和uC/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實驗代碼