FreeRtos 时间管理(二)

本篇主要介绍FreeRtos的绝对延时函数vTaskDelayUntil

一、vTaskDelayUntil函数的用法

参数分析:[param 1] pxPreviousWakeTime:代表上一次唤醒的时间

                   [param 2]xTimeIncrement:要delay的时钟节拍数

用法:

static TickType_t increment = pdMS_TO_TICKS( 50 );
wakeTime = xTaskGetTickCount(); //获取当前的系统节拍值
for( ;; )
{

    fun1();
    fun2();
    fun3();
    xxxx
    //调用函数vTaskDelayUntil 进行延时
    vTaskDelayUntil( &wakeTime, increment);//wakeTime这个变量会在函数内部自动更新
}

二、vTaskDelayUntil绝对延时绝对在哪里了

如上图,绝对延时的绝对的意思就是1+2(函数主体+delay)的时间是个固定值 ,即回屏蔽掉函数主体运行时间的干扰

三、代码分析

prvAddCurrentTaskToDelayedList 和 xTaskResumeAll在上一篇中FreeRtos时间管理(一)已经分析过了,本篇不再分析

 

几个变量之间的关系

  • 7
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
FreeRTOS提供了五种内存分配方法,分别是heap_1.c、heap_2.c、heap_3.c、heap_4.c和heap_5.c。这些文件位于FreeRTOS源码的路径:FreeRTOS->Source->portable->MemMang。不同的嵌入式系统对于内存分配和时间要求不同,因此FreeRTOS将内存分配作为移植层的一部分,使用户可以选择适合自己系统的内存分配方法\[1\]\[2\]。 在FreeRTOS中,有两种内存使用方法:静态内存管理和动态内存管理。静态内存管理是在编程时直接定义或申请一个数组或结构体内存空间,而动态内存管理是在代码运行时才申请数组或结构体内存空间。静态内存管理具有安全、简单性和确定性的优点,不需要关心内存分配问题。而动态内存管理可以实现操作系统统一管理内存,但也存在一些问题,如安全问题、碎片问题和需要管理的复杂性\[3\]。 总的来说,FreeRTOS提供了多种内存分配方案,用户可以根据自己的需求选择合适的方法进行内存管理。静态内存管理和动态内存管理各有优缺点,对于大多数普通用户来说,两者没有太多区别。 #### 引用[.reference_title] - *1* *2* [FreeRTOS 内存管理](https://blog.csdn.net/Dustinthewine/article/details/130434246)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [FreeRTOS:内存管理](https://blog.csdn.net/liuwuyi1987/article/details/125812384)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

KiranWang

一起努力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值