UCOS-II 是一款嵌入式操作系统,被广泛应用于各种嵌入式设备中。与之相比,Linux 是一款开源的操作系统,也被广泛应用于各种计算机系统中。在红帽相关的领域,UCOS-IILinux 都起到重要的作用。 首先,我们来看看UCOS-II。作为一款专门为嵌入式系统而设计的操作系统,UCOS-II 具有优秀的实时性和高效性。它可以帮助开发人员更好地管理嵌入式系统的资源,提高系统的稳定性和可靠性
原创 2024-05-16 10:18:18
54阅读
IDE: MDK V4+ MCU: LPC17x
转载 2015-08-16 20:23:00
138阅读
2评论
主要包含在C源文件OS_CORE.C中。1. uC/OS-II任务调度(1) uC/OS-II调度算法      uC/OS-II采用基于优先级的调度算法,总是选择当前处于就绪状态的优先级最高的任务进行调度。uC/OS-II是可抢占性的强实时性OS,在完成中断后允许进行新的任务调度。      uC/OS-II有两种调度方式:任务级任务调
转载 精选 2013-11-28 00:05:30
1100阅读
1点赞
1评论
1. memPart基本原理    uC/OS-II根据需要将内存空间分成多个内存分区,每个内存分区由具有相同大小的内存块(Block)组成。主要包含在C源文件OS_MEM.C中。OS_EXT OS_MEM OSMemTbl[OS_MAX_MEM_PART];OS_EXT OS_MEM *OSMemFreeList;memPart控制块结构体:  typedef struct
转载 精选 2013-11-28 00:08:12
397阅读
1点赞
1评论
1. uC/OS-II文件结构2. uC/OS-II组成部分    uC/OS-II大致可以分成系统核心(包含任务调度)、任务管理、时间管理、多任务同步与通信、内存管理、CPU移植等部分。    (1) 核心部分(OSCore.c) :uC/OS-II处理核心,包括初始化、启动、中断管理、时钟中断、任务调度及事件处理等用于系统基本维持的函数。  
转载 精选 2013-11-28 00:03:58
920阅读
1点赞
1评论
1. C可执行代码结构    (1)代码段.text:存放CPU执行的机器指令,通常.text是可共享且只读的。    (2)数据段.data:.rodata(常量数据)、.rwdata(已初始化全局变量、静态变量)。    (3)未初始化数据段.bss:未初始化的全局变量、静态变量。    (4)栈.stack:存放
转载 精选 2013-11-28 00:06:16
868阅读
1点赞
1评论
1. 应用开发步骤    (1) 包含uC/OS-II的总头文件includes.h;    (2) 定义任务栈的大小和任务栈;    (3) 分配任务优先级;    (4) 实现任务功能;    (5) 调用OSInit()函数初始化uC/OS-II的数据结构;    (6)
转载 精选 2013-11-28 00:09:00
455阅读
1点赞
1评论
1. 消息邮箱Mbox      Mbox用于多任务间单一消息的传递,uC/OS-II使用ECB管理Mbox的基本信息,OSEventPtr指向创建Mbox时指定的内存空间。事件的创建由具体的事件管理程序实现。主要包含在C源文件OS_MBOX.C中。OS_EVENT *OSMboxCreate(void *msg);void *OSMboxPend(OS_EVENT
转载 精选 2013-11-28 00:07:24
1298阅读
1点赞
1评论
μC/OS-Ⅱ总是运行进入就绪态任务中优先级最高的那一个。确定哪个任务优先级最高, 下面该哪个任务运行了的工作是由调度器(Scheduler)完成的。任务级的调度是由函数 OSSched()完成的。中断级的调度是由另一个函数OSIntExt() 完成的,这个函数将在以后描 述。OSSched() 的代码如下: void OS_Sched (void) { #if OS_CRITICAL...
原创 2021-08-05 14:27:14
194阅读
在真正开始分析源代码前,先来看使用uC/OS-II的三个例子 1)使用信号量 Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ -->#define TASK_STK_SIZE 512 /* 每个任务堆...
原创 2021-08-05 14:32:42
281阅读
每个任务被赋予不同的优先级等级,从0 级到最低优先级OS_LOWEST_PR1O,包括0 和 OS_LOWEST_PR1O 在内。当μC/OS-Ⅱ初始化的时候,最低优先级OS_LOWEST_PR1O 总是被赋给空闲任务idle task 。注意,最多任务数目OS_MAX_TASKS 和最低优先级数是没有关系的。用户应用程序可以只有10 个任务,而仍然可以有32 个优先级的级别(如果用户将最低优先级...
原创 2021-08-05 14:27:16
73阅读
内核结构 1, 临界区,OS_ENTER_CRITICAL和OS_EXIT_CRITICAL 为了处理临界区代码,必须关中断,等处理完毕后,再开中断。关中断可以避免其他任务或中断进入临界区代码。uC/OS-II定义了这两个宏来实现,但注意一条:调用uC/OS-II功能函数时,中断应该总是开着的。 1)当OS_CRITICAL_METHOD= = 1时,简单实现如下: Code ...
原创 2021-08-05 14:27:20
471阅读
1点赞
下载地址:http://www.micrium.com/ 它的特点: 1)开源, 2)可移植性,绝大部分代码用C写,硬件相关部分用汇编写, 3可固化, 4)可剪裁,这通过条件编译实现,使用#define语句定义所需要的功能。 5)可剥夺性(总是运行就绪条件下优先级最高的任务)
原创 2021-08-05 14:07:43
541阅读
首先来了解下实时系统的基本概念: 1) 临界区,共享资源,任务(类似于进程),任务切换,任务调度,可剥夺型内核,可重入函数,动态优先级调度, 2) 如何处理优先级反转问题。这个问题描述如下:有三个任务,优先级1高于2,2高于3,一开始1和2处于挂起,3在运行,3要使用某个共享资源,就P它的互斥信号量,3得到信号量后开始使用这个共享资源。过一段时间后,1等待的事件发生后剥夺了3的CPU使用权,于...
原创 2021-08-05 14:27:18
153阅读
 uC/OS-II操作系统移植 ---------------------------------------------------------Author   :tiger-johnWebSite  :blog.csdn.net/tigerjbEmail    :jibo.tiger@gmail.com编译环境:K
原创 2011-01-14 22:06:00
476阅读
uC/OS-II的任务切换归根到底都是由以下三个函数引起的:OSStart();OSIntExit();OS_Sched();一、OSStart():OSStart()函数是uC/OS-II任务调度的引导函数,它调用更底层的函数OSStartHighRdy()来完成最初的任务切换;OSStartHighRdy()唯一地在OSStart()函数中被调用。OSStart()函数代码如下:/******
转载 精选 2013-11-28 00:21:14
1451阅读
在任务调度器的实现上,μC/OS-II和RT-Thread都采用了位图调度(bitmap scheduling),任务优先级的值越小则代表具有越高的优先级,主要区别在于实现形式,是采用多级队列的形式,还是纯位图的形式。在位图调度下,每当需要进行调度时,从最低位向最高位查找出第一个置 1 的位的所在位
转载 2018-03-07 15:18:00
105阅读
2评论
函数大致用途OS_TASK.C是uC/OS-II有关任务管理的文件,它定义了一些函数:建立任务、删除任务、改变任务的优先级、挂起和恢复任务
原创 2022-06-27 22:59:15
322阅读
1 概述 这是一个针对RT-Thread国产操作系统的μCOS-II操作系统兼容层,可以让基于美国Micriμm公司的μCOS-II操作系统的项目快速、无感地迁移到RT-Thread操作系统上。在兼容层的设计、编写上尊重原版μC/OS-II,保证原版μC/OS-II的原汁原味。 uCOS-II兼容层的设计和编写融合了uCOS-III兼容层的编写经验,同时与uCOS-III兼容层进行交叉检查,确保
转载 2021-07-02 13:54:09
464阅读
1. 信号量的理解 (1)uc/os-ii的信号量是由两个部分组成:一部分是16位的无符号整型信号量的计数值(0~65535);另一部分是等待该信号量的任务组成的等待任务表。(另外参考事件控制块ECB) (2)信号量可以是2值的变量(称为二值信号量),也可以是计数式的。根据信号量的值,内核跟踪那些等待信号量的任务。 (3)建立信号量的工作必须在任务级代码中或者多任务启动之前完成。 (4)
转载 2007-12-07 11:44:36
6997阅读
1点赞
4评论
  • 1
  • 2
  • 3
  • 4
  • 5