- 博客(10)
- 收藏
- 关注
原创 Freertos官网实时调度任务示例
9.在 t6 处发生按键事件,但在 vKeyHandlerTask 完成按键处理之前,发生了定时事件。6.在 t4 处, vControlTask 完成了控制周期的处理,并且直到下一次定时事件的发生前不能重新开始运行, 进入阻塞态。1.起初,两个任务都不能运行:vControlTask 等待合适的时间来开始新的控制周期, 而 vKeyHandlerTask 则在等待按键操作。RTOS 会自行创建一个任务,即空闲任务, 仅当没有其他任务能够执行时,该任务才会执行。2.在时间 t1 处,发生按键事件。
2024-08-02 13:34:43
340
原创 有关freertos中的队列、信号量和事件标志组多任务使用场景的一个简单示例
队列用于在任务间传递数据,信号量用于同步任务的执行顺序,而事件标志组则用于通知任务某些事件的发生。假设我们有一个简单的系统,其中包含一个读取传感器数据的任务 (SensorTask) 和一个处理数据的任务 (ProcessingTask)。我们将使用队列、信号量和事件标志组来实现任务间的通信。任务同步:用于同步任务的执行顺序,例如当一个任务完成某项操作后通知另一个任务继续执行。状态通知:当需要在任务间传递多个事件的状态时,可以使用事件标志组。任务间通信:用于实现任务间的同步通信,如传感器数据的收集和处理。
2024-08-01 10:28:21
951
原创 PendSV 中断
任务切换:在某些情况下,如上下文切换,PendSV中断可以被用来暂时悬置其他中断,从而允许更高级别的中断服务程序先执行,之后再回到PendSV中断继续执行剩余的任务切换流程。优先级调整:为了避免PendSV中断被更高优先级的中断打断,导致任务切换的不确定性,可以将PendSV中断的优先级调整为较低的数值,比如15。优先级设置:PendSV中断的优先级通常是最低的,这意味着它在所有中断中被优先处理,以确保任务的快速切换。
2024-02-22 15:53:04
1120
1
原创 linux指令
Linux是一种自由和开放源代码的类UNIX操作系统,该操作系统的内核由林纳斯托瓦兹在1991年首次发布,之后,在加上用户空间的应用程序之后,就成为了Linux操作系统。说明: cp指令用于复制文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则它会把前面指定的所有文件或目录复制到此目录中。head 与 tail 就像它的名字一样的浅显易懂,它是用来显示开头或结尾某个数量的文字区块,head 用来显示档案的开头至标准输出中,而 tail 想当然尔就是看档案的结尾。
2024-01-24 09:48:58
344
1
原创 Cotex-M MSP和PSP 指针
MSP:主堆栈指针,当程序复位后(开始运行后),一直到第一次任务切换完成前,使用的都是MSP,即:main函数运行时用的是MSP,运行OSStartHighRdy,运行PendSV程序,用的都是MSP。此时MSP就指向了该堆栈的首地址。Cortex-M3内核有两个堆栈指针:MSP-主堆栈指针和PSP-进程堆栈指针,在任何一个时刻只能有一个堆栈指针起作用,也就是说任何一个时刻只能使用一个堆栈指针,要么使用MSP,要么使用PSP。何为堆栈指针,其实就是普通的指针,只是他们指向两个不同的堆栈。
2024-01-19 10:33:48
482
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人