UCOSIII存储管理

betball贝博app RTOS 439 次浏览
很粗糙,几乎没有实用性。 作为一个RTOS操作系统,内存管理是必备的功能,因此UCOSIII也就内存管理能力。通常应用程序可以调用ANSI C编译器的malloc()和free()函数来动态的分配和释放内存,但是在嵌入式事实操作系统中最好不要这么...

UCOSIII同时等待多个贝博betball网页对象

betball贝博app RTOS 463 次浏览
UCOSIII可以等待单个贝博betball网页对象,包括:信号量、互斥信号量、消息队列和事件标志组。 在UCOSIII中允许任务同时等待多个信号量和多个消息队列,也就是说, UCOSIII不支持同时等待多个事件标志组或互斥信号量。 一个任务可以等待...

UCOSIII事件标志组

betball贝博app RTOS 473 次浏览
有时候一个任务需要与多个事件同步,这个时候就需要使用事件标志组。事件标志组与任务之间有两种同步机制:“或”同步和“与”同步。 “或”同步:等待多个事件时,任何一个事件发生 ,任务都被同步,这个就称为“或”同步。 “与”同步:当所有...

UCOSIII任务通信

betball贝博app RTOS 435 次浏览
一个任务或者中断服务程序有时候需要与另一个任务交流信息,这个过程就叫任务间通信。两种途径:全局变量,发布消息。 使用全局变量都必须保证对全局变量的独占访问。消息也可以通过消息队列作为中介发布给任务。 消息包含一下...

UCOSIII内嵌信号量

betball贝博app RTOS 423 次浏览
在UCOSIII中每个任务都有自己的内嵌的信号量,这种功能不仅能够简化代码,而且比使用独立的信号量更有效。任务信号量是直接内嵌在UCOSIII中的,任务信号量相关代码在os_task.c中。 函数名 作用 OSTaskSemPend() 等待一...

UCOSIII优先级反转

betball贝博app RTOS 436 次浏览
在实时系统中是不允许出现这种现象的,这样会破坏任务的预期顺序,导致严重后果。 优先级反转是因为需要的信号量请求不到导致的。本来优先级高,但是信号量被优先级低的任务占用。 解决办法是将需要占用信号量的任务的优先级临...

UCOSIII信号量和互斥信号量

betball贝博app RTOS 432 次浏览
信号量:像是一种上锁机制,代码必须获得对应的钥匙才能继续执行,一旦获得了钥匙,也就意味着该任务具有进入被锁部分代码的权限。只有等对应被锁部分的代码的钥匙被释放才能继续执行。 信号量本身用于控制对共享资源的保护,但是...

UCOSIII软件定时器

betball贝博app RTOS 436 次浏览
通过宏OS_CFG_TME_EN来使能 定时器本质是递减计数器,当计数器减到零时可以出发某种动作的执行,这个动作通过回调函数来实现。 应用程序可以有任意数量的定时器。 定时器的时间分辨率由宏OS_CFG_TMR_TASK_RATE_HZ来定义,相...

UCOSIII的中断和时间管理

betball贝博app RTOS 468 次浏览
UCOSIII的中断服务函数即为在普通的中断服务函数中,具体执行代码的前后添加OSIntEnter();和OSIntExit(); OSIntEnter();函数其实就是记录中断嵌套的个数,UCOSIII最多支持250级中断嵌套。 OSIntExit();中断嵌套次数减1,关闭全...

UCOSIII的内部任务

betball贝博app RTOS 387 次浏览
1.空闲任务:是UCOSIII创建的第一个任务,必须创建,优先级最低,不能调用任何使空闲任务进入等待态的函数。 2.时钟节拍任务:用来跟踪任务延时和任务等待超时,任务函数为OS_TickTask(), 必须创建。优先级用OS_CFG_TICK_TASK_PRI...
Go