FreeRTOS简单内核实现7 阻塞链表

0、思考与回答0.1、思考一如何处理进入阻塞状态的任务?为了让RTOS支持多优先级,我们创建了多个就绪链表(数组形式),用每一个就绪链表表示一个优先级,对于阻塞状态的任务显然要从就绪链表中移除,但是阻塞状态的任务并不是永久阻塞了,等待一段时间后应该从...

FreeRTOS简单内核实现6 优先级

0、思考与回答0.1、思考一如何实现RTOS内核支持多优先级?因为不支持优先级,所以所有的任务都插入了一个名为pxReadyTasksLists的就绪链表中,相当于所有任务的优先级都是一致的,那如果我们创建一个就绪链表数组,数组下标代表优先级,优...

FreeRTOS简单内核实现4 临界段

@目录0、思考与回答0.1、思考一0.2、思考二0.3、思考三1、关中断1.1、带返回值1.2、不带返回值2、开中断3、临界段4、应用0、思考与回答0.1、思考一为什么需要临界段?有时候我们需要部分代码一旦这开始执行,则不允许任何中断打断,这段代码称为...

FreeRTOS简单内核实现3 任务管理

0、思考与回答0.1、思考一对于Cortex-M4内核的MCU在发生异常/中断时,哪些寄存器会自动入栈,哪些需要手动入栈?会自动入栈的寄存器如下R0-R3:通用寄存器R12:通用寄存器LR(LinkRegister):链接寄存器,保...

FreeRTOS简单内核实现2 双向链表

FreeRTOS的list.c/list.h文件中有3个数据结构、2个初始化函数、2个插入函数、1个移除函数和一些宏函数,链表是FreeRTOS中的重要数据结构...

FreeRTOS 简单内核实现1 前言

为深入理解RTOS内核工作机制,笔者制作了名为“FreeRTOS内核简单实现”的项目专栏,目标为自己动手从0到1编程一个简单的RTOS内核,从而实现任务并行工作的效果...

FreeRTOS

初识FreeRTOS什么是FreeRTOSRTOS(实时操作系统)并不是指某一特定的操作系统,而是指一类操作系统,例如,C/OS,FreeRTOS,RTX,RT-Thread等这些都是RTOS类的操作系统。因此,从FreeRTOS的名字...