
Free RTOS
文章平均质量分 91
入门Free RTOS
℡☞小白☜ღ
这个作者很懒,什么都没留下…
展开
-
列表和列表项
列表是 FreeRTOS 中的一个数据结构,列表被用来跟踪 FreeRTOS中的任务(任务当前的状态),列表项就是存放在列表中的项目列表相当于链表,列表项相当于节点,FreeRTOS 中的列表是一个双向循环链表列表项间的地址非连续的,列表项的数目随时可以改变列表项的,就相当于,整个列表就相当于N个人互相拉着手,围而列表是管理这个圈二、 列表与列表项2.1 列表结构体具有确定已知常量的宏。原创 2024-06-02 11:39:45 · 1207 阅读 · 0 评论 -
FreeRTOS——任务通知
1.当任务通知用作于信号量时,使用函数获取信号量:()2.当任务通知用作于事件标志组或队列时,使用此函数来获取:()原创 2024-07-09 09:44:10 · 1138 阅读 · 0 评论 -
软件定时器
软件定时器:指具有定时功能的软件,可设置定时周期,当指定时间到达后要调用回调函数(也称超时函数),用户在回调函数中处理信息优点:(1)硬件定时器数量有限,而软件定时器理论上只需有足够内存,就可以创建多个;(2)使用简单、成本低缺点:(1)软件定时器相对硬件定时器来说,精度没有那么高(因为它以系统时钟为基准,系统时钟中断优先级又是最低,容易被打断)。对于需要高精度要求的场合,不建议使用软件定时器。原创 2024-07-09 10:53:27 · 1228 阅读 · 0 评论 -
FreeRTOS——事件标志组
事件标志位:用一个位,来表示事件是否发生事件标志组:一组事件标志位的集合, 可以简单的理解事件标志组,就是一个(16/32)整数事件标志组是一种实现任务/中断间通信的机制,主要用于实现多任务间的同步根据的宏定义不同,每个事件标志组的位数也就不同虽然使用了 32 位无符号的数据类型变量来存储事件标志, 但其中的高8位用作存储事件标志组的控制信息,低24位用作存储事件标志 ,所以说一个事件组最多可以存储24个事件标志。原创 2024-07-06 21:56:38 · 1352 阅读 · 0 评论 -
FreeRTOS——队列集
一个队列只允许任务间传递的消息为同一种数据类型,如果需要在任务间传递数据类型的消息时,那么就可以使用队列集作用:用于对进行“监听”(接收或获取),其中不管哪一个消息到来,都可让任务当任务A既要接收队列信号,又要获取信号量时,如果队列为空,则任务阻塞,即使拥有信号量,也无法获取到;如果成功获取队列中的数据,而未获取到信号量时,依然会被阻塞而使用队列集的任务B,不论,都可以使任务退出阻塞状态。原创 2024-07-06 20:26:45 · 434 阅读 · 0 评论 -
信号量(semaphore)
前面介绍的主要用于传输数据:任务与任务之间、任务与中断之间在有些情况下,不需要传输数据,只需要传递状态即可• 车开出停车位,你的车可以停进来了• 课已经录制完成,你可以进行观看了。原创 2024-07-05 22:08:04 · 4672 阅读 · 0 评论 -
FreeRTOS——消息队列
队列:任务与任务、任务与中断之间进行数据交流的一种机制消息传递FreeRTOS基于队列, 实现了多种功能,其中包括队列集、互斥信号量、计数型信号量、二值信号量、 递归互斥信号量队列的核心:关中断(实现互斥)、链表(实现休眠和唤醒)、环形缓冲区(保存数据)Q:队列作用与全局变量作用的区别?答:功能类似于全局变量,但又比全局变量更安全假设全局变量a= 0,现有两个任务都在操作全局变量a,正常情况下,a = 2,然而,在操作系统中:对于简单的变量自增,其中也包含许多步骤。原创 2024-07-03 21:05:11 · 995 阅读 · 0 评论 -
FreeRTOS中断管理
临界段:临界段代码也叫做临界区,是指那些必须完整运行,不能被打断的代码段应用场合:(1)需要严格按照时序初始化的外设:IIC、SPI等(2)系统以及用户需求中断和任务调度可以打断当前正在运行的程序,任务调度实质是通过PendSV(最低中断优先级)中断实现的。因此,若想当前程序不被打断,则关闭中断即可实质:FreeRTOS 在进入临界段代码的时候需要关闭中断,当处理完临界段代码以后再打开中断可管理的最高中断优先级FreeRTOS管理的中断可以使用函数名带有。原创 2024-06-01 20:00:29 · 2823 阅读 · 1 评论 -
任务调度器——任务切换
作用:用于启动任务调度器,任务调度器启动后,FreeRTOS便会开始进行任务调度内部实现机制(以动态创建为例):(1)首先,判断动态创建任务 or 静态创建任务(2)创建空闲任务(3)如果使能软件定时器,则创建软件定时器任务(4)关闭中断,防止调度器开启之前或过程中,受中断干扰,会在运行第一个任务时打开中断5)初始化全局变量,并将任务调度器的运行标志设置为已运行(6)初始化任务运行时间统计功能的时基定时器(7)调用函数 xPortStartScheduler()原创 2024-06-30 09:29:43 · 968 阅读 · 0 评论 -
FreeRTOS——任务
使用FreeRTOS时,我们可以创建多个任务(task),有些文档把任务也称为线程(thread)。在FreeRTOS中,任务就是一个函数for(;;注意:(1)此函数通常以无限循环的形式存在,不能有返回值或者退出,但是任务可以进行自我删除(2)多个任务可以调用同一个函数。原创 2024-05-14 08:53:33 · 1369 阅读 · 0 评论 -
STM32F10x移植FreeRTOS
但systick中断服务函数。原创 2024-05-07 22:52:47 · 1178 阅读 · 0 评论 -
初识 Free RTOS
在裸机开发中,程序员需要编写直接与硬件交互的代码,包括底层初始化、时钟、中断服务程序、外设控制等。与在有操作系统的环境中相比,裸机开发对硬件的了解程度更为深入,同时也需要处理更多的底层细节。之前,所学习的51、32单片机,都是对裸机进行操作编程。(3)抢占式:任务可以有软件指定优先级,高优先级的任务可以抢占低优先级的任务。所谓裸机,通常指的是在没有操作系统(OS)支持的环境中直接运行程序的状态。),就会触发一次滴答定时器中断,在这个滴答定时器中断中,主要就是。),顾名思义,一款免费的实时操作系统。原创 2024-05-04 16:00:12 · 547 阅读 · 0 评论