logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

嵌入式实时操作系统uC/os-II(二十一)-互斥锁和死锁

在编程中,引入了对象互斥锁的概念,来保证共享数据操作的完整性。每个对象都对应一个可称为“互斥锁”的标记,这个标记用来保证在任一时刻,只能有一个任务(线程)访问该对象(任务之间访问到相同的函数、相同的全局变量)。某个任务得到互斥锁后,就可以访问共享资源,其他任务等待该任务释放互斥锁才能访问。while(1)加锁访问共享资源解锁(立即)....加锁访问共享资源解锁(立即)....

#stm32#单片机
嵌入式实时操作系统uC/os-II(九)-任务中断

uC/OS-II的中断中断的定义:任务在运行过程中,应内部或外部异步事件的请求中止当前任务,而去处理异步事件所要的任务过程叫做中断。中断服务子程序:应中断请求而运行的程序。中断向量:中断服务子程序的入口地址。uC/OS-II响应中断的过程:系统接收到中断请求后,如果这时CPU处于中断允许状态(即中断是开放的),系统就会中止正在运行的当前任务,而按照中断向量的指向转而去运行中断服务子程序;当中断服务

#嵌入式
嵌入式实时操作系统uC/os-II(四)-任务控制块

任务控制块uC/OS-II用来记录任务堆栈指针、任务的当前状态、任务的优先级等一些与任务管理有关的属性的表叫做任务控制块。系统通过任务控制块来感知和管理任务的,没有任务控制块的任务不能被系统承认和管理。任务控制块结构的定义如下:typedef struct os_tcb {OS_STK *OSTCBStkPtr; /* Pointer to current top of stack 指向任务堆栈栈

#操作系统
嵌入式实时操作系统(二十五)-实时性

RTOS(实时操作系统)的实时性体现在对事件的快速响应和时间可控性。其实现依赖于五个核心机制:1)基于优先级的任务调度器确保高优先级任务优先执行;2)中断管理快速响应硬件事件;3)任务间通信机制保证数据一致性;4)资源管理避免竞争;5)内置定时器实现准时响应。这些机制共同保障了RTOS在嵌入式系统中的高效稳定运行。

#stm32
嵌入式实时操作系统uC/os-II(十八)-动态内存管理

内存控制块uC/OS-II操作系统以分区为单位来管理动态内存,而任务以内存块为单位来获得和释放动态内存。内存分区和内存块的定义在内存中定义一个内存分区及其内存块的方法非常简单,只要定义一个二维数组即可。例如:INT16U IntMemBuf[10][10];就定义了一个用来存储INT16U类型的数据,有10个内存块,每个内存块长度为10的内存分区。真正可以动态分配的内存区,如图8-1(a)所示。只

#操作系统
嵌入式实时操作系统uC/os-II(二十)-深入剖析任务的创建和优先级

在uC/OS-II中,优先级用于决定任务之间的执行顺序。高优先级越高获得CPU时间越多,低优先级任务在执行时可能需要等待。合理地设置任务优先级对于实现系统功能和满足实时性要求至关重要。任务是实时操作系统中独立执行的最小单元,它拥有自己的程序代码、堆栈和数据集。根据不同的项目需求,创建任务时可以创建为静态和动态任务。静态任务在系统初始化是就已定义,而动态任务则可以在系统运行过程中创建和销毁。TCB和

#单片机
嵌入式实时操作系统uC/os-II(二十二)-多个线程喂狗问题

假如有三个线程ABC(优先级A>B>C),那么线程中的喂狗时间一致么?

#stm32#单片机
嵌入式实时操作系统uC/os-II(八)-任务的初始化和启动

uC/OS-II的初始化函数OSInit()将对uC/OS-II的所有全局变量和数据结构(就绪链表、事件链表)进行初始化,同时创建空闲任务OSTaskIdle,并赋之以最低的优先级别和永久的就绪态。图2-17 uC/OS-II 初始化后的数据结构由上图可...

#操作系统
嵌入式实时操作系统uC/os-II(十一)-事件控制块和事件处理函数

事件控制块的结构等待任务列表对于事件来说,当其被占用时,会导致其他请求该事件的任务因暂时得不到该事件的服务而处于等待状态。对于这些等待任务具有两方面的管理功能,一是要对等待事件的所有任务进行记录并排序;二是应该允许等待任务有一个等待时限,即当等待任务认为等不及时可以退出对事件的请求。对于等待事件任务的记录,uC/OS-II又使用了与任务就绪表类似的位图,即定义一个INT8U类型的数组OSEvent

#操作系统#链表
嵌入式实时操作系统uC/os-II(十六)-信号量集

信号量定义uC/OS-II提供了可处理多个信号量的信号量集。其实意图如图7-1所示。图7-1 信号量集的示意图从图中可以看到,信号量实质上就是一个多输入、多输出的组合逻辑。其输入为其他任务发出的多个信号,而输出则是多个输入逻辑运算的结果。目前,uC/OS-II信号量集可以对信号量进行”与(AND或ALL)”和”或(OR或ANY)”两...

#嵌入式
    共 37 条
  • 1
  • 2
  • 3
  • 4
  • 请选择