uC/OS-II
文章平均质量分 73
AnthonyZimmer
这个作者很懒,什么都没留下…
展开
-
uCOS II内核调度分析
一. 内核概述: 多任务系统中,内核负责管理各个任务,或者说为每个任务分配CPU时间,并且负责任务之间的通讯。内核提供的基本服务是任务切换。之所以使用实时内核可以大大简化应用系统的设计,是因为实时内核允许将应用分成若干个任务,由实时内核来管理它们。内核本身也增加了应用程序的额外负荷,代码空间增加ROM的用量,内核本身的数据结构增加了RAM的用量。但更主要的是,每个任务要有自己的栈空间,这转载 2013-11-19 19:05:06 · 498 阅读 · 0 评论 -
uCOS II就绪表(Ready List)分析
3.0 就绪表(Ready List) 每个任务被赋予不同的优先级等级,从0级到最低优先级OS_LOWEST_PR1O,包括0和OS_LOWEST_PR1O在内(见文件OS_CFG.H)。当uCOS II初始化的时候,最低优先级OS_LOWEST_PR1O总是被赋给空闲任务idle task。注意,最多任务数目OS_MAX_TASKS和最低优先级数是没有关系的。用户应用程序可以只有10个转载 2013-11-19 19:02:31 · 528 阅读 · 0 评论 -
【求助】uC/OS-II中的一些疑问
1、关于OSStartHighRdy(): OSStart()用以启动OS,将CPU控制权交给OS,并选择当前系统中最高优先级的就绪任务执行(OS第一次执行任务);OSStartHighRdy()用以“恢复”第一个被执行的任务的上下文。 问:在任务第一次被调度执行前,任务栈中存有任务的上下文信息吗? 在OSTaskCreate()创建转载 2013-11-19 18:42:50 · 506 阅读 · 0 评论 -
【专题】uC/OS-II内核架构解析(7)---uC/OS-II应用开发
1. 应用开发步骤 (1) 包含uC/OS-II的总头文件includes.h; (2) 定义任务栈的大小和任务栈; (3) 分配任务优先级; (4) 实现任务功能; (5) 调用OSInit()函数初始化uC/OS-II的数据结构; (6) 创建用户任务,启动uC/OS-II;2. 编写任务函数 用户任务函数必须是无限转载 2013-11-19 18:32:54 · 602 阅读 · 0 评论 -
【专题】uC/OS-II内核架构解析(1)---嵌入式RTOS
1. 嵌入式系统基本模型2. RTOS设计原则 采用各种算法和策略,始终保持系统行为的可预测性。即在任何情况下,在系统运行的任何时刻,OS的资源配置策略都能为争夺资源(包括CPU、内存、网络带宽等)的多个实时任务合理地分配资源,使每个实时任务的实时性要求都能得到满足。3. GPOS与RTOSGPOS:注重每次执行的平均响应时间,而不是某次特定执行的转载 2013-11-19 18:19:04 · 584 阅读 · 0 评论 -
【专题】uC/OS-II内核架构解析(6)---uC/OS-II内存管理
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 struc转载 2013-11-19 18:31:31 · 550 阅读 · 0 评论 -
【专题】uC/OS-II内核架构解析(5)---uC/OS-II通信与同步
1. 消息邮箱Mbox Mbox用于多任务间单一消息的传递,uC/OS-II使用ECB管理Mbox的基本信息,OSEventPtr指向创建Mbox时指定的内存空间。事件的创建由具体的事件管理程序实现。主要包含在C源文件OS_MBOX.C中。OS_EVENT *OSMboxCreate(void *msg);void *OSMboxPend(OS_EVENT *pevent转载 2013-11-19 18:30:22 · 590 阅读 · 0 评论 -
【专题】uC/OS-II内核架构解析(4)---uC/OS-II任务管理
1. C可执行代码结构 (1)代码段.text:存放CPU执行的机器指令,通常.text是可共享且只读的。 (2)数据段.data:.rodata(常量数据)、.rwdata(已初始化全局变量、静态变量)。 (3)未初始化数据段.bss:未初始化的全局变量、静态变量。 (4)栈.stack:存放函数参数、局部变量及任务切换时的上下文转载 2013-11-19 18:28:30 · 554 阅读 · 0 评论 -
【专题】uC/OS-II内核架构解析(3)---uC/OS-II系统核心
主要包含在C源文件OS_CORE.C中。1. uC/OS-II任务调度(1) uC/OS-II调度算法 uC/OS-II采用基于优先级的调度算法,总是选择当前处于就绪状态的优先级最高的任务进行调度。uC/OS-II是可抢占性的强实时性OS,在完成中断后允许进行新的任务调度。 uC/OS-II有两种调度方式:任务级任务调度、中断级任务调度。转载 2013-11-19 18:26:45 · 713 阅读 · 0 评论 -
【专题】uC/OS-II内核架构解析(2)---uC/OS-II基本介绍
1. uC/OS-II文件结构2. uC/OS-II组成部分 uC/OS-II大致可以分成系统核心(包含任务调度)、任务管理、时间管理、多任务同步与通信、内存管理、CPU移植等部分。 (1) 核心部分(OSCore.c) :uC/OS-II处理核心,包括初始化、启动、中断管理、时钟中断、任务调度及事件处理等用于系统基本维持的函数。 (2)转载 2013-11-19 18:21:06 · 511 阅读 · 0 评论 -
UC/OS II多任务切换例程
#include "config.h"#define TaskStkLengh 64 OS_STK TaskStk [TaskStkLengh]; OS_STK TaskStk1 [TaskStkLengh];OS_STK TaskStk2 [TaskStkLengh];OS_EVENT *TASK1;转载 2013-11-19 19:08:48 · 461 阅读 · 0 评论