FeeRTOS
文章平均质量分 95
^Lim
每天都在焦虑怎么写出好的文章,qq_8403821,欢迎各位一起交流、探索宇宙的奥秘。
展开
-
7、vTaskDelay()和vTaskDelayUntil()
FreeRTOS提供了两个系统延时函数:相对延时函数vTaskDelay()和绝对延时vTaskDelayUntil()。这两个延时函数和自己实现的延时函数不同,这两个延时函数一旦被调用,当前任务会立马进入阻塞状态,而自己写的延时函数(以for循环等形式实现的软件延时)会被当做有效任务而一直执行。相对延时是指每次延时都是从任务执行函数vTaskDelay()开始,延时指定的时间结束;绝对延时是指每隔指定的时间,执行一次调用vTaskDelayUntil()函数的任务。换句话说:任务以固定的频率执行。...原创 2022-08-29 22:09:23 · 2006 阅读 · 1 评论 -
6、FreeRTOS任务状态
Suspended: 挂起态Ready: 就绪态Blocked: 阻塞态runnnig: 运行态。原创 2022-08-29 06:05:52 · 408 阅读 · 0 评论 -
5、FreeRTOS任务的创建和删除
可以看出这两个函数很简单,用户定义静态的任务堆栈和任务控制块内存,然后将这些内存传递给函数参数。最后创建空闲任务和定时器服务任务的 API 函数会调用vApplicationGetIdleTaskMemory()和 vApplicationGetTimerTaskMemory()来获取这些内存。此函数也是用来创建任务的, 只不过此函数要求 所使用的 MCU有 MPU(内存保护单元 内存保护单元 ), 用此函数创建的任务会受到 MPU的保护。创建任务1:任务1的大循环里,创建任务2,然后休眠一段时间。....原创 2022-08-05 16:49:18 · 2925 阅读 · 0 评论 -
3、FreeRTOS移植模板优化测试 System作为hal库维护时钟,us延时
我在移植FreeRTOS操作系统的时候,hal库的维护需要一个定时器,如果需要us级的定时器,那么又需要一个定时器,一共就需要三个定时器,这样很浪费单片机的资源,原子哥的方法很实用,一个Systick就解决了!上节,已经移植了成功了一个简单的模板,那么今天来优化一下,那么我们重新移植一下,同样使用原子哥的串口例程。............原创 2022-07-31 18:00:21 · 1259 阅读 · 0 评论 -
2、FreeRTOS移植
本文是基于FreeRTOS操作系统的移植,使用到的芯片是平台上,移植环境使用的是MDK5.32版本,首先要准备一个裸机工程源码,我这里随便选择了一个正点原子探索者的串口例程,选择的是hal库,其实标准库也是一样的。为什么我一定要手动移植呢,如果用生成的话,达不到学习的效果,里面什么都配置好了,对学习的帮助很少,所以才会复习的时候选择自己手动移植。.........原创 2022-07-27 17:33:31 · 1283 阅读 · 0 评论 -
1、FreeRTOS认识
FreeRTOS是用C和汇编来写的,其中绝大部分都是用C语言编写的,只有极少数的与处理器密切相关的部分代码才是用汇编写的,FreeRTOS结构简洁,可读性很强!在实时操作系统中,我们可以把要实现的功能划分为多个任务,每个任务负责实现其中的一部分,每个任务都是一个很简单的程序,通常是一个死循环。就是轮询系统的pro版本,在程序的大循环(轮询方式)中加入了中断,而中断就是前台,主程序中的循环就是后台。当任务正在运行,此时的状态被称为运行态,即CPU的使用权被这个任务占用;...原创 2022-07-27 17:24:52 · 784 阅读 · 0 评论