网站上传该怎么做做logo的ppt模板下载网站
文章目录
- 核心文件
 - 头文件
 - 内存管理文件
 - 入口函数
 - 数据类型
 - 前缀
 
核心文件
- 最核心文件:task.c和list.c
 
| 文件 | 作用 | 
|---|---|
| tasks.c | 必需,任务操作 | 
| list.c | 必须,列表 | 
| queue.c | 基本必需,提供队列操作、信号量(semaphore)操作 | 
| timer.c | 可选,software timer | 
| event_groups.c | 可选,提供 event group 功能 | 
| croutine.c | 可选,过时了 | 
头文件
| 头文件 | 作用 | 
|---|---|
| FreeRTOSConfig.h | FreeRTOS的配置文件,用于选择调度算法(如configUSE_PREEMPTION) | 
| FreeRTOS.h | 使用FreeRTOS API函数时必须包含。包含此文件后,再引入task.h、queue.h、semphr.h、event_group.h等其他头文件 | 
内存管理文件
| 文件 | 优点 | 缺点 | 
|---|---|---|
| heap_1.c | 内存分配逻辑简单,执行时间可确定 | 仅能分配内存,无法回收已分配的内存 | 
| heap_2.c | 支持动态内存分配,能实现最佳匹配(找到最适合请求大小的空闲内存块) | 会产生内存碎片,内存分配和回收的执行时间不确定 | 
| heap_3.c | 通过调用标准库函数来管理内存,兼容性较好 | 由于调用标准库,执行速度较慢,执行时间不确定 | 
| heap_4.c | 能够将相邻的空闲内存块合并,有效减少内存碎片 | 可解决碎片问题,执行时间不确定 | 
| heap_5.c | 在heap_4.c基础上,支持不连续的、分隔的内存块管理,适应更复杂的内存布局 | 可解决碎片问题,执行时间不确定 | 
入口函数
/* Init scheduler */
osKernelInitialize(); /* 初始化FreeRTOS运行环境 */
MX_FREERTOS_Init();  /* 创建任务 *//* Start scheduler */
osKernelStart();    /* 启动调度器 */
 
数据类型
-  
TickType_t:
FreeRTOS 配置了一个周期性的时钟中断:Tick Interrupt,每发生一次中断,中断次数累加,这被称为 tick count,tick count 这个变量的类型就是 TickType_t,TickType_t 可以是 16 位的,也可以是 32 位的,FreeRTOSConfig.h 中定义 configUSE_16_BIT_TICKS 时,TickType_t 就是 uint16_t,否则 TickType_t 就是 uint32_t,对于 32 位架构,建议把 TickType_t 配置为 uint32_t -  
BaseType_t:
这是该架构最高效的数据类型,32 位架构中,它就是 uint32_t,16 位架构中,它就是 uint16_t,8 位架构中,它就是 uint8_t,BaseType_t 通常用作简单的返回值的类型,还有逻辑值,比如 pdTRUE/pdFALSE 
前缀
| 变量名前缀 | 含义 | 
|---|---|
| c | char | 
| s | int16_t, short | 
| l | int32_t, long | 
| x | BaseType_t,其他非标准的类型:结构体、task handle、queue handle等 | 
| u | unsigned | 
| p | 指针 | 
| uc | uint8_t, unsigned char | 
| pc | char 指针 | 
函数名的前缀有2部分:返回值类型、在哪个文件定义。
| 函数名前缀 | 含义 | 
|---|---|
| vTaskPrioritySet | 返回值类型:void  在task.c中定义  | 
| xQueueReceive | 返回值类型:BaseType_t  在queue.c中定义  | 
| pvTimerGetTimerID | 返回值类型:pointer to void  在tmer.c中定义  | 
宏的名字是大写,可以添加小写的前缀。前缀是用来表示:宏在哪个文件中定义。
| 宏的前缀 | 含义:在哪个文件里定义 | 
|---|---|
| port(如portMAX_DELAY) | portable.h或portmacro.h | 
| task(如taskENTER_CRITICAL()) | task.h | 
| pd(如pdTRUE) | projdefs.h | 
| config(如configUSE_PREEMPTION) | FreeRTOSConfig.h | 
| err(如errQUEUE_FULL) | projdefs.h | 
通用的定义
| 宏 | 值 | 
|---|---|
| pdTRUE | 1 | 
| pdFALSE | 0 | 
| pdPASS | 1 | 
| pdFAIL | 0 | 
