幫助中心 | 我的帳號 | 關於我們

嵌入式實時操作系統FreeRTOS原理及應用--基於STM32微控制器

  • 作者:編者:張超|責編:尋翠政
  • 出版社:電子工業
  • ISBN:9787121424779
  • 出版日期:2021/11/01
  • 裝幀:平裝
  • 頁數:260
人民幣:RMB 49 元      售價:
放入購物車
加入收藏夾

內容大鋼
    本書以ARM Cortex-M4通用開發板為平台,以智能手錶FreeRTOS實現為應用項目,全面介紹了FrceRTOS原理及其應用。全書共分為13章,前12章分別介紹了嵌入式實時操作系統相關極念,FreeRTOS的任務創建、調度和管理,用於任務同步和資源共享的隊列、信號量、事件標誌組、任務通知的實現及使用,以及軟體定時器、內存管理、裁剪和配置等內容。第13章是一個FreeRTOS應用於智能手錶的典型應用項目,從功能設計、硬體設計、FreeRTOS工程、演算法及驅動、任務設計,到任務創建、調度與同步及調試與優化,系統地介紹了利用相關硬體及FreeRTOS構建一個典型的嵌入式系統的過程和方法,使讀者對FreeRTOS在實際嵌入式項目中的應用有一個全面、感性的認識。
    本書內容翔實,案例豐富,配有大量示常式序,可作為嵌入式領域工程師和愛好者的技術參考書,也可作為高等院校電子技術、自動化、嵌入式等相關專業的教材。

作者介紹
編者:張超|責編:尋翠政

目錄
第1章  嵌入式實時操作系統介紹
  1.1  嵌入式系統和嵌入式操作系統
    1.1.1  嵌入式系統的基本概念
    1.1.2  嵌入式操作系統
    1.1.3  實時操作系統
    1.1.4  嵌入式實時操作系統
  1.2  嵌入式實時操作系統FreeRTOS簡介
    1.2.1  FreeRTOS的特點
    1.2.2  FreeRTOS的商業許可
    1.2.3  選擇FreeRTOS的理由
  1.3  總結
  思考與練習
第2章  FreeRTOS在STM32微控制器上的移植
  2.1  文件準備
    2.1.1  FreeRTOS源碼
    2.1.2  基礎工程
  2.2  FreeRTOS移植
    2.2.1  複製FreeRTOS源碼
    2.2.2  向工程中添加.c文件
    2.2.3  配置頭文件包含路徑
    2.2.4  配置FreeRTOS
    2.2.5  修改stm32f4xx_it.c文件
    2.2.6  編譯項目
  2.3  移植驗證
    2.3.1  引入FreeRTOS相關頭文件
    2.3.2  編寫測試任務函數
    2.3.3  創建測試任務
    2.3.4  開啟調度器
    2.3.5  下載測試
  2.4  添加串口列印功能
    2.4.1  串口硬體連接
    2.4.2  初始化串口
    2.4.3  下載測試
  2.5  總結
  思考與練習
第3章  FreeRTOS的裁剪和配置
  3.1  基礎配置
    3.1.1  configUSE_PREEMPTION
    3.1.2  configUSE_PORT_OPTIMISED_TASK_SELECTION
    3.1.3  configCPU_CLOCK_HZ
    3.1.4  configTICK_RATE_HZ
    3.1.5  configMAX_PRIORITIES
    3.1.6  configMINIMAL_STACK_SIZE
    3.1.7  configTOTAL_HEAP_SIZE
    3.1.8  configUSE_16_BIT_TICKS
    3.1.9  configIDLE_SHOULD_YIELD
    3.1.10  configMAX_TASK_NAME_LEN
    3.1.11  configUSE_TICKLESS_IDLE
    3.1.12  關於列隊、信號量和任務通知
    3.1.13  關於鉤子函數

  3.2  FreeRTOS中斷配置
    3.2.1  configPRIO_BITS
    3.2.2  configLIBRARY_LOWEST_INTERRUPT_PRIORITY
    3.2.3  configKERNEL_INTERRUPT_PRIORITY
    3.2.4  configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY
    3.2.5  configMAX_SYSCALL_INTERRUPT_PRIORITY
  3.3  可選API函數配置
  3.4  其他配置
    3.4.1  協程相關
    3.4.2  任務運行信息相關
    3.4.3  軟體定時器相關
    3.4.4  斷言
    3.4.5  中斷服務函數
  3.5  FreeRTOSConfig.h頭文件參考配置
  3.6  總結
  思考與練習
第4章  FreeRTOS任務基礎
  4.1  FreeRTOS任務
    4.1.1  任務的特性
    4.1.2  任務的狀態
    4.1.3  任務的優先順序
    4.1.4  任務堆棧
    4.1.5  任務控制塊
    4.1.6  列表和列表項
  4.2  任務創建和刪除
    4.2.1  任務函數
    4.2.2  任務創建和刪除函數
    4.2.3  用動態內存分配方法創建任務
    4.2.4  用靜態內存分配方法創建任務
    4.2.5  任務刪除
  4.3  任務創建與刪除示例
    4.3.1  組織代碼
    4.3.2  編寫LED0任務函數
    4.3.3  編寫LED1任務函數
    4.3.4  創建任務
    4.3.5  修改main.c文件
    4.3.6  下載測試
  4.4  總結
  思考與練習
第5章  FreeRTOS任務調度
  5.1  開啟調度器
    5.1.1  調度器開啟函數
    5.1.2  調度器開啟過程
    5.1.3  啟動第一個任務
  5.2  任務的掛起和恢復
    5.2.1  任務的掛起
    5.2.2  任務的恢復
    5.2.3  任務掛起和恢復示例
  5.3  任務的調度
    5.3.1  FreeRTOS任務切換場合

    5.3.2  PendSV中斷
    5.3.3  PendSV中斷服務函數
    5.3.4  查找下一個要運行的任務
    5.3.5  FreeRTOS時間片調度
    5.3.6  時間片調度示例
    5.3.7  空閑任務
  5.4  FreeRTOS內核函數
    5.4.1  臨界段操作函數
    5.4.2  掛起和恢復調度器函數
    5.4.3  任務切換函數
    5.4.4  系統時鐘節拍追加
    5.4.5  內核函數使用示例
  5.5  總結
  思考與練習
第6章  FreeRTOS任務函數
  6.1  延時函數
    6.1.1  系統時鐘節拍
    6.1.2  相對延時
    6.1.3  絕對延時
    6.1.4  延時函數使用示例
  6.2  優先順序控制
    6.2.1  獲取任務優先順序
    6.2.2  設置任務優先順序
    6.2.3  改變任務優先順序示例
  6.3  獲取任務狀態信息
    6.3.1  任務狀態信息獲取函數
    6.3.2  任務狀態信息獲取示例
  6.4  統計任務運行時間信息
    6.4.1  任務運行時間信息統計函數
    6.4.2  任務運行時間信息統計示例
  6.5  總結
  思考與練習
第7章  FreeRTOS隊列與消息傳遞
  7.1  FreeRTOS隊列及其結構
    7.1.1  FreeRTOS隊列特性
    7.1.2  隊列結構體
  7.2  隊列操作
    7.2.1  隊列創建
    7.2.2  入隊操作
    7.2.3  出隊操作
    7.2.4  其他隊列操作函數
  7.3  用隊列實現串口守護任務
    7.3.1  守護任務
    7.3.2  串口守護任務示例
  7.4  總結
  思考與練習
第8章  FreeRTOS信號量與任務同步
  8.1  二值信號量
    8.1.1  創建二值信號量
    8.1.2  釋放二值信號量

    8.1.3  獲取二值信號量
    8.1.4  用二值信號量進行任務同步
  8.2  計數信號量
    8.2.1  創建計數信號量
    8.2.2  計數信號量的釋放和獲取
    8.2.3  用計數信號量進行任務同步
  8.3  互斥信號量
    8.3.1  創建互斥信號量
    8.3.2  互斥信號量的釋放和獲取
    8.3.3  優先順序翻轉
    8.3.4  優先順序翻轉示例
    8.3.5  用互斥信號量抑制優先順序翻轉
  8.4  遞歸互斥信號量
  8.5  總結
  思考與練習
第9章  FreeRTOS事件標誌組
  9.1  事件標誌組
    9.1.1  創建事件標誌組
    9.1.2  設置事件標誌位
    9.1.3  獲取事件標誌組值
    9.1.4  等待指定的事件標誌位
  9.2  用事件標誌組進行任務同步
    9.2.1  配置FreeRTOS
    9.2.2  配置定時器
    9.2.3  任務函數
    9.2.4  創建任務
    9.2.5  下載測試
  9.3  總結
  思考與練習
第10章  FreeRTOS任務通知
  10.1  發送和獲取任務通知
    10.1.1  發送任務通知
    10.1.2  獲取任務通知
  10.2  任務通知使用
    10.2.1  用任務通知模擬二值信號量
    10.2.2  用任務通知模擬事件標誌組
  10.3  總結
  思考與練習
第11章  FreeRTOS軟體定時器
  11.1  軟體定時器服務任務
  11.2  軟體定時器操作
    11.2.1  單次定時與周期定時
    11.2.2  創建軟體定時器
    11.2.3  啟動軟體定時器
    11.2.4  停止軟體定時器
  11.3  軟體定時器使用示例
    11.3.1  配置FreeRTOS
    11.3.2  軟體定時器回調函數
    11.3.3  任務函數
    11.3.4  創建軟體定時器和任務

    11.3.5  下載測試
  11.4  總結
  思考與練習
第12章  FreeRTOS內存管理
  12.1  FreeRTOS內存分配方法
    12.1.1  heap_1.c動態內存管理方法
    12.1.2  heap_2.c動態內存管理方法
    12.1.3  heap_3.c動態內存管理方法
    12.1.4  heap_4.c動態內存管理方法
    12.1.5  heap_5.c動態內存管理方法
  12.2  FreeRTOS內存管理示例
  12.3  總結
  思考與練習
第13章  智能手錶FreeRTOS實現
  13.1  功能設計
    13.1.1  時間顯示
    13.1.2  時間設置
    13.1.3  鬧鐘設置
    13.1.4  鬧鐘響鈴
    13.1.5  秒錶計時
    13.1.6  心率測量
    13.1.7  運動計步
    13.1.8  硬體信息
  13.2  硬體設計
    13.2.1  硬體系統框圖
    13.2.2  單元電路
    13.2.3  硬體原理圖
  13.3  FreeRTOS工程
    13.3.1  複製並新建FreeRTOS工程
    13.3.2  智能手錶FreeRTOS配置
    13.3.3  用STM32CubeMX生成初始化代碼
  13.4  演算法及驅動
    13.4.1  OLED12864模塊
    13.4.2  AHT10
    13.4.3  心率測量
    13.4.4  運動計步
    13.4.5  藍牙傳輸
    13.4.6  多功能按鍵
    13.4.7  實時時鐘
  13.5  任務設計
    13.5.1  按鍵任務
    13.5.2  時間顯示任務
    13.5.3  時間設置任務
    13.5.4  鬧鐘設置任務
    13.5.5  鬧鐘時間檢查任務
    13.5.6  鬧鐘響鈴任務
    13.5.7  秒錶計時任務
    13.5.8  心率測量任務
    13.5.9  計步後台任務
    13.5.10  計步顯示任務

    13.5.11  任務信息獲取任務
  13.6  任務創建、調度與同步
    13.6.1  任務創建及調度器開啟
    13.6.2  搶佔式調度提高系統響應性能
    13.6.3  時間片調度讓任務共享優先順序
    13.6.4  用任務掛起和恢復實現互斥訪問
    13.6.5  用互斥信號量共享藍牙資源
    13.6.6  用任務通知同步鬧鐘響鈴任務
    13.6.7  用隊列共享按鍵功能
    13.6.8  軟體定時器使用
  13.7  調試與優化
附錄A  FreeRTOS編碼和命名規則
附錄B  示常式序和項目所使用的編譯環境
附錄C  項目實施對開發板的要求
附錄D  項目實施所需驅動文件
參考文獻

  • 商品搜索:
  • | 高級搜索
首頁新手上路客服中心關於我們聯絡我們Top↑
Copyrightc 1999~2008 美商天龍國際圖書股份有限公司 臺灣分公司. All rights reserved.
營業地址:臺北市中正區重慶南路一段103號1F 105號1F-2F
讀者服務部電話:02-2381-2033 02-2381-1863 時間:週一-週五 10:00-17:00
 服務信箱:bookuu@69book.com 客戶、意見信箱:cs@69book.com
ICP證:浙B2-20060032