FreeRTOS
文章平均质量分 89
由浅入深,学习FreeRTOS系统的各个功能,构建FreeRTOS的整体知识框架。
一只有理想的程序猿
在嵌入式领域摸爬滚打的小菜鸟。
展开
-
FreeRTOS系列---事件标志组
文章目录前言事件组、事件位事件组和事件位的数据类型创建事件标志组事件组EventGroup_t 定义如下函数xEventGroupCreate()函数xEventGroupCreateStatic()设置事件位函数xEventGroupClearBits()函数 xEventGroupClearBitsFromISR()函数 xEventGroupSetBits()函数xEventGroupSetBitsFromISR()获取事件标志组值函数xEventGroupGetBits()函数xEventGroup原创 2021-09-02 15:11:02 · 491 阅读 · 0 评论 -
FreeRTOS系列第9篇---软件定时器
文章目录简介编写回调函数注意事项定时器服务任务定时器相关配置1、configUSE_TIMERS2、configTIMER_TASK_PRIORITY3、configTIMER_QUEUE_LENGTH4、configTIMER_TASK_STACK_DEPTH单次定时器和周期定时器创建软件定时器函数 xTiemrCreate()函数 xTimerCreateStatic()开启软件定时器函数 xTimerStart()简介软件定时器允许设置一段时间,当设置的时间到达之后就执行指定的功能函数,被定时器调原创 2021-08-29 10:28:04 · 683 阅读 · 0 评论 -
FreeRTOS系列第7篇---队列
文章目录1、前言2、队列简介2.1 数据存储2.2 多任务访问2.3 出队阻塞1、前言在实际的应用中,常常会遇到一个任务或者中断服务需要和另外一个任务进行“沟通交流”,这个“沟通交流”的过程其实就是消息传递的过程。在没有操作系统的时候两个应用程序进行消息传递一般使用全局变量的方式,但是如果在使用操作系统的应用中用全局变量来传递消息就会涉及到“资源管理”的问题。FreeRTOS 对此提供了一个叫做“队列”的机制来完成任务与任务、任务与中断之间的消息传递。2、队列简介队列是为了任务与任务、任务与中断之间原创 2021-08-11 21:39:11 · 376 阅读 · 0 评论 -
FreeRTOS系列第6篇---内核控制函数
目录前言预览详解1、taskYIELD()2 临界段代码2.1 taskENTER_CRITICAL() 、taskEXIT_CRITICAL()2.2 taskENTER_CRITICAL_FROM_ISR() 、taskEXIT_CRITICAL_FROM_ISR()3、taskDISABLE_INTERRUPTS()、 taskENABLE_INTERRUPTS()4、vTaskStartScheduler()5 vTaskEndScheduler6 vTaskSuspendAll()前言Free原创 2021-08-02 21:17:02 · 418 阅读 · 0 评论 -
FreeRTOS系列第5篇---任务运行时间统计
目录前言使用相关宏的设置vTaskGetRunTimeStats函数使用前言FreeRTOS 可以通过函数 vTaskGetRunTimeStats()来统计每个任务使用 CPU 的时间,以及所使用的时间占总时间的比例。在调试代码的时候我们可以根据这个时间使用值来分析哪个任务的 CPU 占用率高,然后合理的分配或优化任务。使用相关宏的设置要使用此功能的话宏 configGENERATE_RUN_TIME_STATS 必须为 1,还需要在定义其他两个宏:portCONFIGURE_TIMER_原创 2021-07-27 16:04:57 · 1649 阅读 · 0 评论 -
FreeRTOS系列第4篇---列表和列表项
目录前言前言列表和列表项是FreeRTOS的一个数据结构,FreeRTOS大量使用了列表和列表项。原创 2021-07-26 14:05:41 · 343 阅读 · 3 评论 -
FreeRTOS系列第3篇---任务挂起和恢复
目录前言1、任务挂起和恢复API函数介绍2、函数vTaskSuspend()3、函数vTaskResume()4、函数xTaskResumeFromISR()前言工作中我们有时需要暂停某个任务的运行,过一段时间后恢复运行。挂起和删除的本质区别是:挂起任务堆栈和任务控制块的数据不会被删除。1、任务挂起和恢复API函数介绍函数描述vTaskSuspend()挂起一个任务vTaskResume()恢复一个任务的运行xTaskResumeFromISR()中断服务函数中原创 2021-07-21 14:31:33 · 942 阅读 · 0 评论 -
FreeRTOS系列第2篇---任务创建和删除
目录1、任务创建和删除API函数2、实验2.1 采用静态方法进行任务的创建和删除1、任务创建和删除API函数函数描述xTaskCreate使用动态方法创建一个任务xTaskCreateStatic使用静态方法创建一个任务xTaskDelete()删除一个任务xTaskCreate此函数用来创建一个任务,任务需要 RAM 来保存与任务有关的状态信息(任务控制块),任务也需要一定的 RAM 来作为任务堆栈。如果使用函数 xTaskCreate()来创建任务的原创 2021-07-20 14:13:49 · 286 阅读 · 0 评论 -
FreeRTOS系列第1篇---任务基础知识
目录1、任务特性2、任务状态3、任务优先级4、任务实现5、任务控制块6、任务堆栈1、任务特性任务数量没有限制。支持抢占。(在每个时钟节拍下可以保证系统运行的是出于就绪态的并且优先级最高的任务)支持优先级。每个任务都有堆栈。堆栈可以理解为RAM。如果使用抢占的话,必须仔细考虑重入的问题。在FreeRTOS系统移植过程中,如果处理不好堆栈的大小,则程序在编译过程中可能就会报错: 报错的原因是设置的堆区大小加上程序中其他内容所占用的总空间超过了硬件本身总的RAM大小。我们的硬件采用的是原创 2021-07-18 23:20:23 · 377 阅读 · 1 评论