ucos-ii的知识点4

11、。 uC/OS-III 内核需要 1K 到 4K 之间的 RAM , 加上每个任务自己所需的堆栈空间。 至少有 4K 大小 RAM 的处理器才有可能成功移植 uC/OS-III 。  
12、: uC/OS-III 允许多个任务拥有相同的优先级。 当多个相同优
先级的任务就绪时, 并且这个优先级是目前最高的uC/OS-III 会分配用户定义的时间片给每个任务去运行。 每个任务可以定义不同的时间片

13、uC/OS-III 保护临界段可以通过锁定调度器代替关中断。 因此关中断的时间会非常少。这样就使 uC/OS-III 可以响应一些非常快的中断源了。  
14、 uC/OS-III 允许用户在运行时配置内核。特别的,所有的内核对象如任务、堆栈、信号量、事件标志组、消息队列、 消息、 互斥信号量、 内存分区、 软件定时器等都是在运行时分配的 , 以免在编译时的过度分配。

5、uC/OS-III 对任务数量、任务大小、优先级数量无限制。每一个任务需要有自己的堆栈空间。实际上, 任务的数量和大小限制于处理器能提供的内存大小。  
16、uC/OS-III 支持任何数量的任务、信号量、 互斥信号量、 事件标志组、 消息队列、 软件定时器、 内存分区。 用户在运行时分配所有的内核对象。

17、互斥信号量用于资源管理。它是一个内置优先级的特殊类型信号量, 用于消除优先级反转。 互斥信号量可以被嵌套,因此,任务可申请同一个互斥信号量多达 250 次。当然, 互斥信号量的占有者需要释放同等次数。  
18、: uC/OS-III 允许任务停止自身或者停止另外的任务。 停止一个任务意味着这个任务将不再执行直到被其他的任务复。 停止可以被嵌套到 250 级。 换句话说, 一个任务可以停止另外的任务多 250 次。 当然, 这个任务必须被恢复同等次数才有资格再次获得 CPU 。

19、可以定义任意数量的一次性的、周期性的、或者两者兼有的软件定时器。 定时器是倒计时的, 执行用户定义的行为一直到计数减为 0 。 每一个定时器可以有自己的行为, 如果一个定时器是周期性的,计数减为 0 时会自动重装计数值并执行用户定义的行为

时间: 2024-12-20 12:17:42

ucos-ii的知识点4的相关文章

uCOS 在 NIOS II 上的移植

工具:Quartus II 器件:EP4CE15F17C8 1.File->New Project Wizard: 2.点击两个Next,进入Family&Device Settings,选择器件 3.Finish,建立工程完毕,点击Tools->SOPC Builder,输入名字后,OK 4.修改clk_0为100MHz 5.component library中搜索nios,双击Nios II Processer 6.Finish 7.搜索epcs,双击epcs Serial...F

uC/OS II 任务切换原理

今天学习了uC/OS II的任务切换,知道要实现任务的切换,要将原先任务的寄存器压入任务堆栈,再将新任务中任务堆栈的寄存器内容弹出到CPU的寄存器,其中的CS.IP寄存器没有出栈和入栈指令,所以只能引发一次中断,自动将CS.IP寄存器压入堆栈,再利用中断返回,将新任务的任务断点指针弹出到CPU的CS.IP寄存器中,实现任务切换.虽然明白个大概,但是其中的细节却有点模糊,为什么调用IRET中断返回指令后,弹入CPU的CS.IP寄存器的断点指针是新任务的断点指针,而不是当前任务的,UCOS II是如

单片机的非OS的事件驱动

单片机的非OS的事件驱动 Part 1 前言 很多单片机项目恐怕都是没有操作系统的前后台结构,就是main函数里用while无限循环各种任务,中断处理紧急任务.这种结构最简单,上手很容易,可是当项目比较大时,这种结构就不那么适合了,编写代码前你必须非常小心的设计各个模块和全局变量,否则最终会使整个代码结构杂乱无序,不利于维护,而且往往会因为修改了某部分代码而莫名其妙的影响到其他功能,而使调试陷入困境. 改变其中局面的最有效措施当然是引入嵌入式操作系统,但是大多数的操作系统都是付费的(特别是商业项

DSP-BIOS使用入门

从环境说到搭建第一个工程 请注意,此文默认读者已经对DSP及CCS V3.3环境有一定的了解了,知道cmd文件的配置,知道新建工程,编译并连接仿真器下载!如果你对这些还都不熟悉,请先熟悉这些!当然,最好要有操作系统的基本概念--任务.调度.中断! 第一个问题:DSP/BIOS(好吧,我们一般这样写)是什么? 是TI公司专门为DSP开发的嵌入式实时操作系统,既然是TI公司为自己的DSP开发的--官方的,当然性能是杠杠的了(当然,我还在入门,这点也是道听途说,没有实际体会).既然说到实时操作系统,那

智能家居系统-软件设计

1 智能家居远程控制系统的软件实现 1.1 基于uC/OS-II的中央控制器的软件设计 1.1.1 uC/OS-II系统移植 本设计使用uC/OS-II操作系统,uC/OS-II是一个源码公开.可移植.可固化.可剪裁和抢占式的实时多任务操作系统,uC/OS-II的大部分源码是用标准ANSI C编写,并且编程规范,可读性很高,内核中只有少量的与硬件相关的代码使用汇编语言编写,总共200余行,移植非常方便[37].uC/OS-II软件体系结构如图5-1所示.移植工作主要包括以下几个方面的内容: 1)

嵌入式学习步骤及方法(精典)

嵌入式门槛虽然较高,但也跟其他事物一样,并不是牢不可破.只要我们用心去对待,冬雪终将化去,春风定会吹来.具体步骤如下: 1.<C语言>第二版 谭浩强 : <C程序设计语言>第二版 徐宝文译 机械工业出版社 你能区分开指针数组和数组指针吗?你知道函数指针吗? 你能区分开定义一个变量时系统给它分配的空间与用malloc()函数给一个变量分配的空间有什么不一样吗? 2.<数据结构>C语言版 黄国愉.叶乃青编 清华大学出版社 你能合上书本,用C语言实现书中的单链表.双链表数据结

OSMboxPend() 等待消息时遇到的问题

首先根据书中讲解的实例代码(标准实例来源于UCOS ii经典教程 邵贝贝) 1 OS_EVENT *CommMbox; 2 3 void CommTask(void *pdata) 4 { 5 INT8U err; 6 void *msg; 7 8 pdata = pdata; //防止编译器报错 9 10 for(;;) 11 { 12 msg = OSMboxPend(CommMbox, 10, &err) 13 14 if(OS_ERR_NONE == err) 15 { 16 /***正

lwip移植到stm32上-enc28j60,103mcu(2)

前面小玩了一下ucos和lwip,但是都还不是真正的网络多任务,真正的网络多任务应该是什么样子的呢?应该是有一个专门的任务负责网络的通讯,他负责将数据发送出去,将数据接收回来,而其他的需要用到网络的任务与这个任务通讯,这才是能够极大提升网络效率的办法,lwip支持这种办法,不过移植起来就比较磨人了 首先第一步是修改lwip的配置文件,如下 #define NO_SYS 0 //使用UCOS操作系统 改了这个之后会发现卧槽一下子缺了好多东西,实际上是这样,lwip使用一系列的宏和方法封装了一个操作

嵌入式学习(转)

嵌入式系统无疑是当前最热门最有发展前途的IT应用领域之一.嵌入式系统用在一些特定专用设备上,通常这些设备的硬件资源(如处理器.存储器等)非常有限,并且对成本很敏感,有时对实时响应要求很高等.特别是随着消费家电的智能化,嵌入式更显重要.像我们平常常见到的手机.PDA.电子字典.可视电话.VCD/DVD/MP3 Player.数字相机(DC).数字摄像机(DV).U-Disk.机顶盒(Set Top Box).高清电视(HDTV).游戏机.智能玩具.交换机.路由器.数控设备或仪表.汽车电子.家电控制

北京大学软件与微电子学院嵌入式系统工程系

关于嵌入式系统方向(集成电路方向也可参考) 嵌入式系统无疑是当前最热门最有发展前途的IT应用领域之一.嵌入式系统用在一些特定专用设备上,通常这些设备的硬件资源(如处理器.存储器等)非常有限,并且对成本很敏感,有时对实时响应要求很高等.特别是随着消费家电的智能化,嵌入式更显重要.像我们平常常见到的手机.PDA.电子字典.可视电话. VCD/DVD/MP3 Player.数字相机(DC).数字摄像机(DV).U-Disk.机顶盒(Set Top Box).高清电视(HDTV).游戏机.智能玩具.交换