diff --git a/book/07:FreeRTOS/01.md b/book/07:FreeRTOS/01.md index 638889c..9279e3b 100644 --- a/book/07:FreeRTOS/01.md +++ b/book/07:FreeRTOS/01.md @@ -1,4 +1,80 @@ -[TOC] +- [1. 概述](#1-概述) + - [1.1. 软件编程模式](#11-软件编程模式) + - [1.2. 嵌入式操作系统的基本概念](#12-嵌入式操作系统的基本概念) + - [1.2.1. 任务](#121-任务) + - [1.2.2. 内核](#122-内核) + - [1.2.3. 任务的上下文和任务切换](#123-任务的上下文和任务切换) + - [1.2.4. 事件](#124-事件) + - [1.2.5. 任务状态](#125-任务状态) + - [1.2.6. 任务的三要素](#126-任务的三要素) + - [1.2.7. 时钟节拍](#127-时钟节拍) + - [1.3. 嵌入式实时操作系统](#13-嵌入式实时操作系统) +- [2. 任务管理](#2-任务管理) + - [2.1. 任务划分](#21-任务划分) + - [2.2. 任务函数的结构](#22-任务函数的结构) + - [2.2.1. 单次任务](#221-单次任务) + - [2.2.2. 周期执行任务](#222-周期执行任务) + - [2.2.3. 事件触发任务](#223-事件触发任务) + - [2.3. 任务优先级设置](#23-任务优先级设置) + - [2.4. 任务管理接口函数](#24-任务管理接口函数) + - [2.4.1. 任务创建](#241-任务创建) + - [2.4.2. 任务优先级设置](#242-任务优先级设置) + - [2.4.3. 延时函数](#243-延时函数) + - [2.5. 应用:任务创建](#25-应用任务创建) + - [2.5.1. 芯片配置](#251-芯片配置) + - [2.5.2. 代码编写](#252-代码编写) + - [2.5.3. 代码分析](#253-代码分析) +- [3. 任务的同步和通知](#3-任务的同步和通知) + - [3.1. 信号量](#31-信号量) + - [3.1.1. 接口函数](#311-接口函数) + - [3.1.1.1. 信号量创建函数(osSemaphoreNew)](#3111-信号量创建函数ossemaphorenew) + - [3.1.1.2. 信号量获取函数(osSemaphoreAcquire)](#3112-信号量获取函数ossemaphoreacquire) + - [3.1.1.3. 信号量释放函数(osSemaphoreRelease)](#3113-信号量释放函数ossemaphorerelease) + - [3.1.2. 二值信号量的应用](#312-二值信号量的应用) + - [3.1.2.1. 配置](#3121-配置) + - [3.1.2.2. 代码编写](#3122-代码编写) + - [3.1.2.3. 代码分析](#3123-代码分析) + - [3.1.3. 计数信号量](#313-计数信号量) + - [3.1.3.1. 配置](#3131-配置) + - [3.1.3.2. 代码编写](#3132-代码编写) + - [3.1.3.3. 代码解析](#3133-代码解析) + - [3.2. 事件标志组](#32-事件标志组) + - [3.2.1. 函数接口](#321-函数接口) + - [3.2.1.1. 事件标志组创建函数(osEventFlagsNew)](#3211-事件标志组创建函数oseventflagsnew) + - [3.2.1.2. 事件标志组设置函数(osEventFlagsSet)](#3212-事件标志组设置函数oseventflagsset) + - [3.2.1.3. 事件标志组等待函数(osEventFlagsWait)](#3213-事件标志组等待函数oseventflagswait) + - [3.2.2. 应用示例(和书上不一样)](#322-应用示例和书上不一样) + - [3.2.2.1. 配置](#3221-配置) + - [3.2.2.2. 代码编写](#3222-代码编写) + - [3.2.2.3. 运行效果和程序分析](#3223-运行效果和程序分析) + - [3.3. 线程标志](#33-线程标志) + - [3.3.1. 函数接口](#331-函数接口) + - [3.3.1.1. 线程标志设置函数(osThreadFlagsSet)](#3311-线程标志设置函数osthreadflagsset) + - [3.3.1.2. 线程标志等待函数(osThreadFlagsWait)](#3312-线程标志等待函数osthreadflagswait) + - [3.3.2. 应用示例(书上代码不完整)](#332-应用示例书上代码不完整) + - [3.3.2.1. 配置](#3321-配置) + - [3.3.2.2. 代码](#3322-代码) + - [3.3.2.3. 代码分析和效果](#3323-代码分析和效果) + - [3.4. 互斥量](#34-互斥量) + - [3.4.1. 接口函数](#341-接口函数) + - [3.4.1.1. 互斥量创建函数(osMutexNew)](#3411-互斥量创建函数osmutexnew) + - [3.4.1.2. 互斥量获取函数(osMutexAcquire)](#3412-互斥量获取函数osmutexacquire) + - [3.4.1.3. 互斥量释放函数(osMutexRelease](#3413-互斥量释放函数osmutexrelease) + - [3.4.2. 应用示例](#342-应用示例) + - [3.4.2.1. 配置](#3421-配置) + - [3.4.2.2. 代码编写](#3422-代码编写) + - [3.4.2.3. 代码分析](#3423-代码分析) + - [3.5. 消息队列](#35-消息队列) + - [3.5.1. 接口函数](#351-接口函数) + - [3.5.1.1. 消息队列创建函数(osMessageQueueNew)](#3511-消息队列创建函数osmessagequeuenew) + - [3.5.1.2. 消息放入函数(osMessageQueuePut)](#3512-消息放入函数osmessagequeueput) + - [3.5.1.3. 消息获取函数(osMessageQueueGet)](#3513-消息获取函数osmessagequeueget) + - [3.5.2. 应用示例](#352-应用示例) + - [配置](#配置) + - [代码](#代码) + - [运行效果和代码分析](#运行效果和代码分析) + - [3.6. 软件定时器](#36-软件定时器) + # 1. 概述