3dwoo大學簡體電腦書店
嵌入式實時操作系統——基于STM32Cube、FreeRTOS和Tracealyzer的
( 簡體 字)
作者:[英]吉姆·考林(Jim Cooling)著 何小慶,張愛華,付元斌 譯類別:1. -> 電腦組織與體系結構 -> 單晶片 -> STM32
出版社:清華大學出版社嵌入式實時操作系統——基于STM32Cube、FreeRTOS和Tracealyzer的 3dWoo書號: 54555
詢問書籍請說出此書號!
缺書
NT售價: 495
出版日:5/1/2021
頁數:313
光碟數:0
站長推薦:
印刷:黑白印刷語系: ( 簡體 字 )
ISBN:9787302579243 加入購物車加到我的最愛 (請先登入會員)
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證, 繁體書的下載亦請直接連絡出版社)
第一篇應用代碼開發
第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.2STM32F4DiscoveryKit硬件
1.4STM32Cube圖形工具
1.4.1STM32CubeMX概述
1.4.2選擇微控制器
1.4.3使用向導設置引腳功能
1.4.4代碼生成
1.4.5自動生成的代碼
1.5STM32CubeHAL庫
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RTOSAPI中的
狀態和錯誤編碼
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章STMStudio軟件工具
9.1STMStudio介紹
9.2STMStudio的使用
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.3STM32F4WWDG:功能和
行為細節
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附加實驗17WWDGISR的簡化
實現
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
Discoverykit
14.5內容豐富的視頻
14.6STMStudio
14.7STM32F4定時器資料
14.8STM32CubeIDE相關信息
14.9FreeRTOS文檔
14.10PercepioTracealyzerRTOS
跟蹤分析工具
14.11實驗代碼
《嵌入式實時操作系統——基于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的工程師、高校教師和學生。本書既可以作為嵌入式系統相關課程輔助教材,也可以作為工程技術人員項目開發的參考資料。
歡迎中國讀者
尊敬的讀者,我感到非常高興能夠為中國讀者提供我撰寫的Real拟Time Operating Systems Book 2—The Practice中文版本,我希望你會同意它是易于閱讀、內容翔實和非常有趣的!如果不是因為Allan He(何小慶)的努力,這絕不會發生。Allan負責啟動這個項目,在過去的數月中,他和他的團隊承擔翻譯工作,也為負責撰寫、翻譯和出版工作的許多人提供了堅定的支持。此外,他在尋找愿意出版這本書的中國出版公司一事上發揮了重要作用,Allan,謝謝你所做的一切。
我與中國的接觸始于1980年,那時中國看到了快速發展的關鍵在于提高其技術水平和專業知識儲備。通過派遣高素質的工程師,在西方學習長達兩年的時間可以做到這一點。當時我是大學講師,專門研究實時嵌入式系統。有一天我的部門主管要求讓來訪的一位中國學者加入我的研究小組,并由我監督他的工作一年。事實證明,這是一段非常有趣的經歷,讓我對中國及其人民有了了解。我的學生實際上是一位優秀的雷達工程師,后來成為中國電子科技大學學者和教授。在過去的40年中,我們一直保持著聯系,因此,我看到了中國電子行業取得了長足的進步。中國現在在許多技術領域占主導地位,尤其是在通信領域。我非常希望我能以某種方式幫助促進中國軟件的技術發展。
為什么要寫這本書
當你想成為某個技術領域的專家時,你需要了解其理論知識(幾乎沒有什么可走的捷徑,但確實如此),我稱其為“頭銜”的贊賞。但是,如果你想變得真正精通,那還遠遠不夠——你還需要具有其“核心”的理解。我的意思是對這個領域有一種真實的感覺,我認為做到這一點的最佳方法是將理論付諸實踐,邊做邊學。
環顧四周就會發現很多人屬于這兩種類別中的一種。基于“頭銜”的專家是大學的計算機科學領域的理論家。與之形成鮮明對比的是,典型的“核心”專家是自學成才的程序員,他們對專業基礎知識缺乏很深入的了解。本書試圖縮小這種差距,本書的第一篇涉及“頭銜”方面; 第二篇是通俗易懂實用的知識。使用本書作為資料,可以將理論變成實踐,從而幫助你成為真正的專家。
這在理論上似乎是個好主意,但實踐卻更具挑戰性。首先,你需要一個方便實用的工具來完成工作。其次,對于許多自學者來說,成本是一個問題,工具一定不能很貴。最后,它們一定不難獲得,但使用和維護很方便。因此,這里我們為你提供用于RTOS實驗的低成本工具、軟件和開發板的方法。
實用工具
用于此工作的工具和軟件包括:
(1) 用于配置MCU(STM32F某個特定版本)的圖形工具——STM32CubeMX軟件應用程序。

(2) 用于生成機器代碼的集成開發環境(譯者注: 如 STM32CubeIDE、IAR 和 Keil)。
(3) 帶有內置編程器和調試器的低成本MCU開發板。
所有軟件都是免費的,或者提供可以免費使用的版本,可以在Windows、Mac OSX或Linux平臺上運行,從許多電子供應商處都可以輕松獲得STM32F4 Discovery套件,我們在這項工作中使用的RTOS是FreeRTOS,它與CubeMX工具集成在一起。此處給出的所有練習都是在STM32F4 Discovery套件上執行的。個別的實例是在老版本的STM32F4 Discovery套件上測試的。
這本書的哲學
本書的基本哲學是“理解理論的最佳方法是將其付諸實踐”。太好了!我認為我們都可以同意這一點了。但是有一個非常重要的問題出現了,我們到底該怎么做? 這是一個更基本的問題,我們到底想實現什么? 例如,假設你有強烈的愿望根據圖0.1所示的椅子制作自己的木椅。
不幸的是,你沒有任何木工知識和經驗,所以你開始學習木工理論,并以此為基礎啟動你的項目。好吧,你可能不會成功結束這個項目,造成了災難性的結果,如圖0.2所示,最后做了一件不太專業的事情。
圖0.1你希望制作的椅子

圖0.2你實際完成的項目
在你投入項目之前,除了期望(或者說祈禱)一切順利外,你還應該做些什么? 現在令人眼花繚亂的事情很多,在開始任何實際項目之前,首先需要學習市場上有什么工具以及如何使用它們。因此作為新手木匠,我們將從圖0.3所示的傳統的木工工具開始。
圖0.3傳統木工工具
在這個階段,你實際上不需要了解工具的工作原理,重要的是了解它們的作用是什么,以及如何使用它們。掌握了這些工具之后,你就可以在實際項目中放心地使用它們了,這就是本書所涉及的實踐工作的基礎。
因此,不要指望學習如何設計和編寫一個操作系統。本書也沒有教你如何設計一個使用RTOS的嵌入式系統。但是,你將實實在在學到的是:
(1) 有哪些可用的工具。
(2) 每種工具的工作方式。
(3) 為什么以及如何使用這些工具。
(4) 使用各種工具的不利之處。
實驗的目的是為你提供一條學習真正的商業工具的途徑,實際工作從最簡單的問題開始,然后逐步推進到更復雜的層面。如果你不熟悉即將開展的工作,請按照我們的順序進行。在你成功地完成序列中的每一項之前,不要跳過任何實驗。如果在實踐結束時,你認為還是沒有學會這些基本工具,那或許就是我的問題了。
最后是我的建議: 如果您想了解嵌入式實時操作系統的基礎知識,那么本書并不適合您。為此,您需要閱讀我的另外一本著作Real拟time Operating Systems Book 1—The Theory(或同類圖書)中的內容。本書讀者需要熟悉相關理論知識并具有一定的技能水平。
致謝
本書的更新版本包含使用可視化工具Tracealyzer的材料。我要對Percepio 公司提供的所有幫助表示極大的感謝,還要感謝Percepio公司提供的技術支持,特別是Johan Kraft博士(公司首席執行官)和Niclas Lindblom(資深FAE)所提供的技術支持。要說這些是無價也不為過。
吉姆·考林(Jim Cooling)
2020年12月于馬克菲爾德(英國)
pagetop