FreeRTOS
文章平均质量分 81
在这个专栏里我讲一些关于freertos相关的知识点,相关资料参考百问网freertos参考文档
冲,干,闯
啥都不会,啥都想要的幻想少年
展开
-
汇编指令与常见寄存器积累
调用函数时使用,使用BL指令后首先lr寄存器保存函数调用返回后的下一句指令地址,然后PC寄存器等于调用函数的地址。原创 2024-04-15 19:59:38 · 185 阅读 · 1 评论 -
栈的概念及作用
栈也是一块内存空间,CPU的SP寄存器会指向当前栈的存储位置,它可以用于函数调用局部变量,多任务系统保存现场。原创 2024-04-15 21:11:05 · 139 阅读 · 1 评论 -
FreeRTOS任务管理
任务就是一个函数,这个函数里执行的是一个死循环,如果任务不是死循环在任务退出之间任务需要“自杀”否则会出问题。这个函数不能有返回值(void)原创 2024-04-16 22:09:26 · 856 阅读 · 0 评论 -
同步互斥与通信(劣质版)
然后任务B也调用LCD_PrintString,任务B执行到第4行时发现bCanUse为1并把它减为0,执行到第5行代码时发现条件成立可以进入if语句块使用LCD,然后任务B也被切换出去了;注:我们在使用全局变量实现同步互斥时,不要让编译器去优化这个全局变量,如果优化这个全局变量在另一个任务中改变,在另一个任务中读取,如果优化的话系统每次都在读取这个变量寄存器的旧值而不会在内存中更新数值。这能否实现万无一失的互斥操作呢?要想实现真正的同步互斥并不简单,我们需要用队列,互斥量,信号量,任务通知这几个技能。原创 2024-04-18 21:16:31 · 654 阅读 · 1 评论 -
FreeRTOS队列
有缺陷的环形缓冲区。原创 2024-04-19 23:34:13 · 418 阅读 · 1 评论 -
FreeRTOS信号量
1.1理解信号量有这么一个场景,我需要爬翠华山,我要进翠华山我得要有门票,景区门票数量为信号量,游客为任务,如果只剩下一张门票,而有多个人,那只能有一个人可以上山。人关心门票长什么样吗?只关心门票的数量。通过上面的例子我们就可以实现互斥的操作。好多个任务都想用这个临界资源怎么办,我根据信号量只让一个任务使用。1.2信号量和队列的区别1、信号量不需要存储数据只记录个数,不需要环形Buffer。2、信号量没有写等待链表只有读等待链表发送信号量(信号量增加)为什么不需要等待?原创 2024-04-22 21:13:45 · 1030 阅读 · 0 评论 -
FreeRTOS互斥量
待补充~~~原创 2024-04-25 18:16:55 · 1034 阅读 · 1 评论 -
FreeRTOS事件组
在我们之前的队列,信号量,互斥量的学习中,我们每次写入数据时只能去唤醒一个任务,那怎样写数据的时候可以唤醒多个任务呢?-----事件组。原创 2024-04-26 12:00:41 · 732 阅读 · 1 评论 -
FreeRTOS任务通知
在之前的队列,信号量,互斥量,事件组的学习中我们想要发送“消息”给别的任务我们需要先创建一个“中间的信号基站”(环形buffer,计数值,二进制整数),并且发起通知的任务并不知道要通知给谁,接收通知的任务也不知道是谁发起的通知。而任务通知不需要创建“中间信号基站”,通过FreeRTOS可以直接进行通知。并且发起通知的任务可以知道发给谁,接收通知的任务也可以知道是谁发起的。原创 2024-04-27 18:12:30 · 891 阅读 · 0 评论 -
FreeRTOS软件定时器
说明本文章基于百问网RTOS教程文档。原创 2024-04-29 22:09:57 · 767 阅读 · 0 评论 -
FreeRTOS为什么要区分任务函数和中断函数?
在我们之前的学习中,队列,信号量,互斥量,事件组,任务通知,它们都有两套函数,在任务中使用或在中断中使用。原创 2024-05-06 11:38:19 · 760 阅读 · 0 评论 -
FreeRTOS资源管理
在使用临界资源时,没有先后要求,需要严格的读取时序图是我们的管理方式为,在中断中我们就先关闭中断,在任务中我们就暂停调度器,无需使用队列,信号量,互斥量,事件组,任务通知来实现互斥。原创 2024-05-06 20:55:59 · 890 阅读 · 0 评论 -
FreeRTOS优化系统
原理:计算一个周期内任务运行占用的时间比,我们Tick中断的计数值Count,但是对于CPU来讲这1ms太慢了,并且Tick中断作为计算任务运行时间太不精准了。在FreeRTOS中在给任务分配栈后,栈里面的内容全部会初始化为0xA5,我们会去调用一个函数,这个函数会从栈底向栈顶遍历直到这个存储空间的值不为0xA5,我们就将这个地址减去栈底地址,就得到了这个任务剩余栈空间大小。configASSERT(x)中,如果x为假,表示发生了很严重的错误,必须停止系统的运行。我们要使用到串口工具,来打印任务栈的信息。原创 2024-05-07 17:47:50 · 1028 阅读 · 0 评论 -
FreeRTOS知识导图
原创 2024-05-09 11:39:07 · 101 阅读 · 0 评论