FreeRTOS
文章平均质量分 89
t_guest
Keep foolish and keep hungry!
展开
-
FreeRTOS学习十(低功耗)
低功耗实现概念RTOS在一般的应用中,处理器大量的时间都在处理空闲任务,此时可以考虑让处理器在空闲任务的时候进入低功耗模式。当需要处理应用层代码的时候就将处理器从低功耗模式唤醒。FreeRTOS就是通过在处理器处理空闲任务的时候将处理器设置为低功耗模式来降低功耗。一般会在空闲任务的钩子函数中执行低功耗相关处理。比如设置处理器进入低功耗模式、关闭其他外设时钟、降低系统主频等等。FreeRTOS的系统时钟是由滴答定时器中断来提供的,系统时钟频率越高,那么滴答定时器中断频率...原创 2022-05-30 14:40:12 · 3374 阅读 · 0 评论 -
FreeRTOS学习九(锁机制)
在RTOS中,增加了多种锁机制。有调度锁、中断锁、任务锁和互斥锁。原创 2022-04-04 16:28:33 · 7134 阅读 · 0 评论 -
FreeRTOS学习八(任务通知)
FreeRTOS的每个任务都有一个32位的通知值,任务控制块中的成员变量ulNotifiedValue就是这个通知值。任务通知是一个事件,加入某个任务通知的接收任务因为等待任务通知而阻塞的话,向这个接收任务发送任务通知以后就会解除这个任务的阻塞状态原创 2022-04-04 16:14:45 · 2524 阅读 · 0 评论 -
FreeRTOS学习七(事件标志组)
RTOS中可以通过信号量来完成同步,但是信号量只能与单个的事件或任务进行同步。有时某个任务可能会需要与多个事件或任务进行同步,此时信号量就无法满足要求了。事件标志组就排上了用场。原创 2022-04-01 21:00:33 · 1365 阅读 · 0 评论 -
FreeRTOS学习六(软件定时器)
软件定时器允许设置一段时间,当设置的时间到达之后就执行指定的功能函数,被定时器调用的这个功能函数叫做定时器的回调函数。回调函数的两次执行间隔叫做定时器的定时周期,简而言之,当定时器的定时周期到了以后就会执行回调函数。原创 2022-04-01 20:46:35 · 1950 阅读 · 0 评论 -
FreeRTOS学习五(信号量)
信号量是操作系统中重要的一部分,信号量一般用来进行资源管理和任务同步。信号量分为二值信号量、计数型信号量、互斥信号量。不同信号量的应用场景也不同,但是有些应用场景是可以互换着使用的。...原创 2022-03-31 23:49:13 · 8129 阅读 · 2 评论 -
FreeRTOS学习四(队列)
在应用中,常常会遇到一个任务或者中断服务需要和另一个任务进行数据交互,也成为消息传递。在没有操作系统的时候,消息传递一般使用全局变量的方式,但如果在使用操作系统的应用中用全局变量来传递消息,就会涉及到“资源管理”的问题。FreeRTOS对此提供了一个叫做“队列”的机制来完成任务与任务,任务与中断之间的消息传递。队列是为了任务与任务、任务与中断之间的通信而准备的。可以在任务与任务,任务与中断之间传递消息。队列中可以存储有限的,大小固定的数据项目。任务与任务、任务与中断之间要...原创 2022-03-31 23:25:48 · 3167 阅读 · 1 评论 -
FreeRTOS学习三(任务相关API函数)
1.xTaskCreate() 创建任务(动态内存)此函数用来创建一个任务,任务需要RAM来保存与任务相关的状态信息(任务控制块),任务也需要一定的RAM来作为任务堆栈。如果使用函数xTaskCreate()来创建任务的话,那么任务所需要的RAM就会自动的从FreeRTOS的堆中分配。新创建的任务默认就是就绪态的,如果当前没有比它更高优先级的任务运行,那么此任务就会立即进入运行态开始运行。不管在任务调度器启动前还是启动后,都可以创建任务。函数原型如下:BaseType_t xT...原创 2022-03-29 23:46:35 · 3068 阅读 · 3 评论 -
FreeRTOS学习二(任务)
1.多任务系统在没有RTOS的“裸机”系统中,一般是在main函数中用while(1)做一个大循环来进行处理。这种方式是典型的单任务系统,也称作前后台系统,中断服务作为前台程序,大循环作为后台程序。前后台系统的弊端很明显,就是各个后台任务都是排队等待轮流执行,不管该任务有多紧急,没有轮到,就只能等着。 多任务系统会并发处理很多任务,注意,并不是说同一时刻一起执行很多任务,而是由于每个任务执行的时间很短,导致看起来像是同一时刻执行了很多个任务一样。每个任务在分配时...原创 2022-03-29 23:26:58 · 1269 阅读 · 0 评论 -
FreeRTOS学习一(简介)
1.什么是FreeRTOSRTOS从名字上可以分为free和RTOS两部分。free是免费的意思,RTOS全称是Real Time Operation System,译为实时操作系统。那FreeRTOS的意思就是“免费的实时操作系统”。RTOS不是指某一个特定的系统,而是一类系统。比如uC/OS,FreeRTOS,RTX,RT-Thread等都属于RTOS类操作系统。操作系统允许多个任务同时运行,这个叫做多任务,实际上,一个处理器核心在某一时刻只能运行一个任务。操作系...原创 2022-03-28 11:14:20 · 11017 阅读 · 0 评论 -
FreeRTOS 互斥信号量和二值信号量对比
互斥信号量1.有优先级继承。2.尽量不要在中断中调用3.xSemaphoreCreateMutex创建后,可以直接take使用。二值信号量1.无优先级继承。2.允许在中断中调用。3.可以当做标志位来使用。4.xSemaphoreCreateBinary创建后,必须得先give一下才能被take。这么说其实很笼统,直接代码测试。这里使用的是互斥信号量。1.创建两个测试任务,app_mqtt_get_properties_handle_task和app_mqtt_se原创 2021-11-04 17:52:29 · 1632 阅读 · 0 评论