自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(10)
  • 收藏
  • 关注

原创 (FreeRTOS专题)十、FreeRTOS组合LVGL使用

要保证两个组件都可以单独正常使用。

2025-01-11 22:17:31 551

原创 (FreeRTOS专题)九、FreeRTOS验证

【代码】(FreeRTOS专题)九、FreeRTOS验证。

2025-01-11 20:18:52 187

原创 (FreeRTOS专题)八、CubeMX配置FreeRTOS

在system core中选择 Sys,对timebase source进行设置,这里选择TIM6作为HAL库的时基 (除了SysTick外都可以)为什么这里Timebase Source (HAL库时基源)不能再选择SysTick(滴答定时器),因为我们要使用FreeRTOS而 FreeRTOS需要个时钟基准用于任务和时间管理,这个FreeRTOS的时钟基准默认使用了 sysTick(滴答定时器),所以我们避免冲突给TimebaseSource(HAL库时基源)选择一个非SysTick定时器。

2025-01-11 10:27:07 584

原创 (FreeRTOS专题)七、低功耗与内存管理

FreeRTOS 的 Tickless 模式是一种特殊的运行模式,用于最小化系统的时钟中断频率,以降低功耗。在 Tickless 模式下,系统只在有需要时才会启动时钟中断,而在无任务要运行时则完全进入休眠状态,从而降低功耗。在滴中断重启时,会对RTOS滴计数值进行校正调整。Tickless模式的实现方式通常依赖于微控制器的硬件特性,尤其是低功耗定时器或实时时钟单元。以下是 Tickless 模式的一般工作原理。

2025-01-10 23:26:09 875

原创 (FreeRTOS专题)六、中断、时间管理与软件定时器

vTaskDelay():相对延时。从执行vTaskDelay函数开始直到指定延时的时间结束xTaskDelayUntil():绝对延时。将整个任务的运行周期视为一个整体,适用于需要以固定频率定期执行的任务。假设有一个定时器,每隔1秒触发一次,希望在每次触发时执行某个任务。如果使用vTaskDelay来实现,那么你只能实现任务每秒执行一次,而不能确保任务在每秒的开始时刻执行。但如果你使用xTaskDelayUntil,你可以指定任务在每秒的开始时刻执行,即使任务执行的时间不同。

2025-01-10 23:16:06 924

原创 (FreeRTOS专题)五、队列集、事件标志组与任务通知

正如任务可以阻塞中间对象(如等待信号量可用的信号量),任务也可以阻塞任务通知,以等待通知状态变为“挂起”。任务通知是FreeRTOS中一种用于任务闻通信的机制,它允许一个任务向其他任务发送简单的通知或信号,以实现任务间的同步和协作。当使用直接任务通知时,顾名思义,发送任务直接向接收任务发送通知,而无需中间对象。事件标志组就像是一个共享的标志牌集合,每个标志位都代表一种特定的状态或事件任务可以等待或设置这些标志位,从而实现任务之间的协同工作。信号量是一个计数器,可以具有大于1的值,表示可用的资源数量。

2025-01-10 23:00:25 758

原创 (FreeRTOS专题)四、信号量与消息队列

(1)事件计数:在此使用方案中,每次事件发生时,事件处理程序将“给出”一个信号量(信号量计数值递增),并且处理程任务每次处理事件(信号量计数值递减)时“获取”一个信号量。在具体的任务调度中,当一个高优先级任务等待一个低优先级任务所持有的资源时,系统会提升低优先级任务的优先级,以避免高优先级任务长时间等待的情况。使用队列的任务和中断不在乎队列容纳的是什么——它们只想知道队列是空的还是满的。互斥信号量的获取和释放函数与二值信号量的相应函数相似,但有一个重要的区别:互斥信号量不支持在中断服务程序中直接调用。

2025-01-10 22:44:20 692

原创 (FreeRTOS专题)三、FreeRTOS任务管理

恢复被挂起的任务1.动态创建任务:任务的任务控制块以及任务的栈空间所需的内存,均由FreeRTOS从 FreeRTOS 管理的堆中分配。2.静态创建任务:任务的任务控制块以及任务的栈空间所需的内存,需用户分配提供。返回值说明如下:pdPASS:任务创建成功。errCOULD NOT ALLOCATE REQUIRED MEMORY:任务创建失败。(1)将宏 configSUPPORT_DYNAMIC_ALLOCATION 配置为1.(2)定义函数入口参数。(3)编写任务函数。

2025-01-10 21:48:39 672

原创 (FreeRTOS专题)二、FreeRTOS基础知识

当一个任务执行时,它会利用处理器/微控制器寄存器,并像其他程序一样访问RAM和ROM。这些资源(处理器寄存器,堆栈等)一起组成了任务执行上下文。一个任务是一段有顺序的代码它不知道什么时候会被内核挂起(换出或换入)或恢复(换入或换入),甚至不知道什么时候自己被挂起或恢复过。当该任务被一个任务在即将执行将两个处理器寄存器内包含的数值相加之前被挂起。挂起时,其他任务会执行,还可能会修改处理器寄存器的数值。恢复时,该任务不会知道处理器寄存器已经被修改过了。如果它使用经修改过的数值,那么求和会得到一个错误的数值。

2025-01-10 21:15:13 1003

原创 (FreeRTOS专题)一、FreeRTOS移植

例如,BaseType_t和TickType_t,二者分别是可移植层定义的定义类型,主要架构的自然类型或最有效类型,以及用于保存RTOS ticks计数的类型。例如,在32位架构上,BaseTypet会被定义为32位类型。(1)变量名称使用驼峰式大小写,具有明确的描述性,并使用完整的单词(没有缩写但普遍接受的缩写除外)。(1)函数名称使用驼峰式大小写,具有明确的描述性,并使用完整的单词(无缩写,但普遍接受的缩写除外)。(9)指针以附加p为前缀,例如,指向uint16_t的指针将以 pus 为前缀。

2025-01-10 20:45:02 807

(FreeRTOS专题)九、FreeRTOS验证

FreeRTOS的验证demo

2025-01-11

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除