IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> FreeRTOSConfig配置 -> 正文阅读

[嵌入式]FreeRTOSConfig配置

??FreeRTOS的配置是通过FreeRTOSConfig.h中的宏定义实现的。

INCLUDE_vTaskDelay

??如果要使用函数vTaskDelay,则需要将INCLUDE_vTaskDelay定义为1

INCLUDE_vTaskDelete

??如果要使用函数vTaskDelete,则需要将INCLUDE_vTaskDelete定义为1

INCLUDE_xTaskResumeFromISR

??如果要使用函数xTaskResumeFromISR,则需要将INCLUDE_xTaskResumeFromISRINCLUDE_vTaskSuspend都定义为1

INCLUDE_vTaskSuspend

??如果要使用函数vTaskSuspendvTaskResumeprvTaskIsTaskSuspendedxTaskResumeFromISR,则需要将INCLUDE_vTaskSuspend定义为1
??如果要使用函数xTaskResumeFromISR,则需要将INCLUDE_xTaskResumeFromISRINCLUDE_vTaskSuspend都定义为1

configASSERT

??类似于C标准库中的assert函数,用于检查传入的参数是否合理:

#define vAssertCalled(char, int)  printf( "Error: %s, %d\r\n", char, int )
#define configASSERT(x)           if( ( x ) == 0 ) vAssertCalled( __FILE__, __LINE__ )

当调试完成以后,尽量关闭configASSERT,防止增加开销。

configCPU_CLOCK_HZ

??需要将configCPU_CLOCK_HZ设置为CPU的频率。如果STM32的频率为72MHz,那么:

#define configCPU_CLOCK_HZ  ( ( unsigned long ) 72000000 )

configMAX_PRIORITIES

??设置任务的优先级数量,其中0是最低的优先级,configMAX_PRIORITIES - 1是最高的优先级。

configTICK_RATE_HZ

??用于设置FreeRTOS的系统时钟节拍频率。如果将设置为1000,则系统时钟每1ms发生一次中断。

configUSE_IDLE_HOOK

??设置为1时,表示使用空闲任务钩子函数,其函数原型如下:

void vApplicationIdleHook ( void );

configUSE_COUNTING_SEMAPHORES

??设置为1时,表示启用计数型信号量。

configUSE_MUTEXES

??设置为1时,表示使用互斥信号量。

configUSE_STATS_FORMATTING_FUNCTIONS

??configUSE_TRACE_FACILITYconfigUSE_STATS_FORMATTING_FUNCTIONS都为1时,可以使用vTaskListvTaskGetRunTimeStats

configUSE_TICKLESS_IDLE

??设置为1时,使能低功耗tickless模式。

configUSE_TIMERS

??设置为1时,使能软件定时器功能。
??当宏configUSE_TIMERS1时,宏configTIMER_TASK_PRIORITYconfigTIMER_QUEUE_LENGTHconfigTIMER_TASK_STACK_DEPTH必须被设置。

configTIMER_TASK_PRIORITY

??设置软件定时器任务的任务优先级。

configTIMER_TASK_STACK_DEPTH

??设置定时器任务的任务堆栈大小。

configPRIO_BITS

??用来设置MCU使用多少位优先级,STM32使用的是4位,所以设置为4

configLIBRARY_LOWEST_INTERRUPT_PRIORITY

??用于设置最低的中断优先级,此处设置为15
??STM32NVIC被设置为NVIC_PriorityGroup_4,所有4位都是抢占优先级,因此最低的中断优先级就是15

configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY

??用于设置FreeRTOS系统可管理的最高的中断优先级。
??这里设置为5,表示用户可以在抢占式优先级为515的中断里调用FreeRTOSAPI函数。

configMAX_SYSCALL_INTERRUPT_PRIORITY

??此宏是由configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY左移4位而来的。

  • 低于此优先级的中断可以安全地调用FreeRTOSAPI函数。
  • 高于此优先级的中断是不能被FreeRTOS禁止的,也不能调用FreeRTOSAPI

configMAX_TASK_NAME_LEN

??设置任务名最大长度。

configMINIMAL_STACK_SIZE

??设置空闲任务的最小任务堆栈大小,以为单位。
??如果在STM32上设置为100,那么真正的堆栈大小是100 * 4 = 400字节。

configUSE_TIME_SLICING

??当configUSE_TIME_SLICING定义为1时,多个任务可以共用一个任务优先级,数量不限。

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2021-08-28 09:30:35  更:2021-08-28 09:33:05 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 22:51:17-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码