uCos
文章平均质量分 70
dingyuanpu
QQ:d-y-p@qq.com
展开
-
uc/os整体把握
uc/os整体把握 μC/OS 和μC/OS-II 是专门为计算机的嵌入式应用设计的, 绝大部分代码是用C语言编写的。CPU 硬件相关部分是用汇编语言编写的、总量约200行的汇编语言部分被压缩到最低限度,为的是便于移植到任何一种其它的CPU 上。用户只要有标准的ANSI 的C交叉编译器,有汇编器、连接器等软件工具,就可以将μC/OS-II嵌人到开发的产品中。μC/OS-II 具有执行效转载 2009-05-17 20:50:00 · 863 阅读 · 0 评论 -
任务控制块
任务控制块 一旦任务建立了,任务控制块OS--_TCBs将被赋值。任务控制块是一个数据结构,当任务的CPU使用权被剥夺时,μC/OS-Ⅱ用它来保存该任务的状态。当任务重新得到CPU使用权时,任务控制块能确保 任务从当时被中断的那一点丝毫不差地继续执行。OS--_TCBs全部驻留在RAM中。读者将会注意到笔者在组织这个数据结构时,考虑到了各成员的逻辑分组。任务建立的时候,OS--_T转载 2009-05-17 20:58:00 · 4153 阅读 · 0 评论 -
任务管理
任务管理 一、建立任务:OSTaskCreate、OSTaskCreateExt 1、参数:void (*task)( void *pd):用指向函数的指针做函数参数。指向任务代码 *pdata:指向非强制性数据区域的指针,当任务优先运行时传递参数给任务(详) *ptos:指向任务顶部的指针,如果配置常数OS_STK_原创 2009-05-17 20:57:00 · 985 阅读 · 0 评论 -
内核解读
/****************************************************************************************************** uC/OS-II*转载 2009-05-17 20:56:00 · 853 阅读 · 1 评论 -
内存管理
内存管理 在rtos中调用malloc和free函数是非常危险的,因为这样会出现内存碎片,再者由于内存管理算法上的原因,这两个函数的执行时间不确定,在uc中,系统把内存按分区管理,每个分区中包含整数个大小相同的内存块,对malloc和free函数做了改进,以确定执行时间。每个分区又划分成相等的若干块,根据任务所需内存的大小去寻找分区,找到后分配,释放时回到所属分区,这样解决了内存碎片问原创 2009-05-17 20:54:00 · 867 阅读 · 0 评论 -
堆栈详解
堆栈详解转一:总体把握 堆栈就是这样一种数据结构。它是在内存中开辟一个存储区域,数据一个一个顺序地存入(也就是“压入——push”)这个区域之中。有一个地址指针总指向最后一个压入堆栈的数据所在的数据单元,存放这个地址指针的寄存器就叫做堆栈指示器。开始放入数据的单元叫做“栈底”。数据一个一个地存入,这个过程叫做“压栈”。在压栈的过程中,每有一个数据压入堆栈,就放在和前一个单元相连的后转载 2009-05-17 20:52:00 · 2335 阅读 · 4 评论 -
内核结构
内核结构 1、 uc是怎样处理临界段代码的? Uc/os在处理临界段代码时必须先关中断,等处理完毕后再开中断,关中断的时间是实时内核的重要指标。 进入和退出临界段宏指令为: OS_ENTER_CRITICAL(); OS_EXIT_CRITICAL() 在不同的处理器在OS_CPU.H文件中进行了不同的定义,具体用哪种,取决于用户打算移植到的处理器性能及所原创 2009-05-17 20:55:00 · 689 阅读 · 0 评论 -
就续表之我见
就续表之我见 理解三个变量:OSRdyGrp、OSRdyTbl[]、OSMapTbl[] 所谓就绪表,就是定义了两个变量,OSRdyGrp是组向量,它就是一个八位二进制数(如:10000100),OSRdyTbl[]是位向量,它就是一个有八个元素的数组,每个元素也是一个八位二进制数(如:01100100),OSMapTbl[]是uc为加快运算速度定义的一个数组,每个元素也是原创 2009-05-17 20:53:00 · 1107 阅读 · 0 评论 -
信号量管理
信号量管理 信号量是什么? 信号量像一把钥匙,任务要运行下去就得先拿到这把钥匙,如果信号量被别的任务占用,那么申请信号量的任务就得挂起 为什么使用信号量? 能够控制共享资源的使用权,能标志事件的发生,在多任务系统中普遍使用 信号量是怎么使用的? 一般的说对信号量只能实施三种操做:初始化(initi原创 2009-05-17 21:02:00 · 2277 阅读 · 0 评论 -
事件控制块
事件控制块 任务或中断服务子程序可以通过ecb向另外的任务发信号。事件:信号!!!控制块:数据结构!!!事件等待列表,类似于就绪表。当一个事件发生后,处于事件等待列表中的优先级最高的任务得到该事件 一. 事件控制块ECB数据结构:typedef struct{ INT8U OSEventType; //事件类型 INT8U OSEventGr转载 2009-05-17 21:01:00 · 2335 阅读 · 0 评论 -
任务的五种状态(uc/os)
任务的五种状态(uc/os) 1、 睡眠:任务只以代码的形式存在,没交给操作系统管理,即没有分配任务控制块和任务 堆栈 2、 就绪:任务全副武装,并在就绪表中登了记 3、 运行:获得了cup的使用权 4、 等待(挂起):正在运行的任务,需要等待一个事件的发生在运行,cpu使用权被剥夺,自己处于等待状态 5、 中断服务:正在运行的任务原创 2009-05-17 20:59:00 · 15690 阅读 · 0 评论 -
uC/OS-II在ARM系统上的移植与实现
uC/OS-II在ARM系统上的移植与实现 摘要:使用ARM公司提供的ADS 开发工具,将uC/ OS - II 移植到ARM 处理器上,并将移植结果应用在跑马灯和数码管的实现上,运行正常,表明移植成功.关键词:uC/ OS - II ;ARM;移植0 引言 在开发嵌入式系统时,一般选择基于ARM 和uC/ OS - II 的嵌入式开发平台,因为ARM 微处理器具有处理速度快、转载 2009-05-17 21:03:00 · 1824 阅读 · 0 评论 -
时钟中断技术
时钟中断技术1 系统中断与时钟节拍1.1 系统中断 中断是一种硬件机制,用于通知CPU有个异步事件发生了。中断一旦被系统识别,CPU则保存部分(或全部)现场(context),即部分(或全部)寄存器的值,跳转到专门的子程序,称为中断服务子程序(ISR)。中断服务子程序做事件处理,处理完成后执行任务调度,程序回到就绪态优先级最高的任务开始运行(对于可剥夺型内核)。 中断使得CPU转载 2009-05-17 21:00:00 · 1478 阅读 · 0 评论