2007年11月22日

uC/OS-II源码分析(四)

摘要: 内核结构 1, 临界区,OS_ENTER_CRITICAL和OS_EXIT_CRITICAL 为了处理临界区代码,必须关中断,等处理完毕后,再开中断。关中断可以避免其他任务或中断进入临界区代码。uC/OS-II定义了这两个宏来实现,但注意一条:调用uC/OS-II功能函数时,中断应该总是开着的。 1)当OS_CRITICAL_METHOD= = 1时,简单实现如下: Code ... 阅读全文

posted @ 2007-11-22 22:34 Phinecos(洞庭散人) 阅读(5031) 评论(0) 推荐(0) 编辑

uC/OS-II源码分析(三)

摘要: 首先来了解下实时系统的基本概念: 1) 临界区,共享资源,任务(类似于进程),任务切换,任务调度,可剥夺型内核,可重入函数,动态优先级调度, 2) 如何处理优先级反转问题。这个问题描述如下:有三个任务,优先级1高于2,2高于3,一开始1和2处于挂起,3在运行,3要使用某个共享资源,就P它的互斥信号量,3得到信号量后开始使用这个共享资源。过一段时间后,1等待的事件发生后剥夺了3的CPU使用权,于... 阅读全文

posted @ 2007-11-22 21:11 Phinecos(洞庭散人) 阅读(3473) 评论(0) 推荐(0) 编辑

uC/OS-II源码分析(二)

摘要: 在真正开始分析源代码前,先来看使用uC/OS-II的三个例子 1)使用信号量 Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ -->#define TASK_STK_SIZE 512 /* 每个任务堆... 阅读全文

posted @ 2007-11-22 19:37 Phinecos(洞庭散人) 阅读(11178) 评论(5) 推荐(1) 编辑

uC/OS-II源码分析(一)

摘要: 下载地址:http://www.micrium.com/ 它的特点: 1)开源, 2)可移植性,绝大部分代码用C写,硬件相关部分用汇编写, 3可固化, 4)可剪裁,这通过条件编译实现,使用#define语句定义所需要的功能。 5)可剥夺性(总是运行就绪条件下优先级最高的任务), 6)多任务(可以管理64个任务,其中保留8个给uC/OS-II,因此用户最多可有56个任务,每个任务优先级不同,也就意味... 阅读全文

posted @ 2007-11-22 16:49 Phinecos(洞庭散人) 阅读(7769) 评论(3) 推荐(3) 编辑

导航