uCOS-II
sunrier
分享的知识才是有力量的.
展开
-
OSInit 函数
/************************************************************* FileName : Os_core.c FileFunc : 内核管理文件 Version : V0.1 Author : Sunrier Date : 2011-06-07 Descp翻译 2011-06-07 13:30:00 · 1917 阅读 · 0 评论 -
OS_Sched 函数
//任务调度//uCOS-II总是运行进入就绪态任务中优先级最高的那一个。确定哪个任务优先级最高,下面该哪个任务运行了的工作是//由调度器(Scheduler)完成的。任务级的调度是由函数OSSched()完成的。中断级的调度是由另一个函数OSIntExt()完//成的Scheduling。//注意:1) 这是一个uCOS-II内部函数,你不能在应用程序中使用它// 2翻译 2011-06-19 23:37:00 · 9575 阅读 · 0 评论 -
OS_TaskStat 函数
//统计任务//描述:uCOS-II有一个提供运行时间统计的任务。这个任务叫做OSTaskStat(),如果用户将系统定义常// 数OS_TASK_STAT_EN(见文件OS_CFG.H)设为1,这个任务就会建立。一旦得到了允许,OSTaskStat()// 每秒钟运行一次(见文件OS_CORE.C)计算当前的CPU利用率。换句话说,OSTaskStat()告诉用户翻译 2011-06-19 23:43:00 · 4510 阅读 · 4 评论 -
OSTimeDly 函数
//将一个任务延时若干个时钟节拍//描述:将一个任务延时若干个时钟节拍。如果延时时间大于0,系统将立即进行任务调度。延时时间的长度// 可从0到65535个时钟节拍。延时时间0表示不进行延时,函数将立即返回调用者。延时的具体时间依// 赖于系统每秒钟有多少时钟节拍(由文件OS_CFG.H中的常量OS_TICKS_PER_SEC设定)////附加:调用该函数会使u翻译 2011-06-19 23:46:00 · 17621 阅读 · 4 评论 -
uCOS-II体系结构
今天先来简单介绍下uCOS-II 的体系结构:大概框架如下图所示 uCOS-II体系结构翻译 2011-06-01 21:33:00 · 2592 阅读 · 0 评论 -
uCOS-II的任务介绍3:
任务堆栈:所谓堆栈,就是在存储器中按数据"后进先出(LIFO)"的原则组织的连续存储空间。为了满足任务切换和响应中断时保存CPU寄存器中的内容及存储任务私有数据的需要,每个任务都应该配有自己的堆栈。任务堆栈是任务的重要组成部分。 任务堆栈的创建:为方便定义任务堆栈,在文件OS_CPU.H中专门定义了一个数据类型OS_STK;typedef unsigned int OS_S翻译 2011-06-04 00:33:00 · 2221 阅读 · 0 评论 -
开始学习uCOS-II
搞了几个小时,终于下好了环境,找资源真不容易,跑了下载的一个例子,测试成功,终于搭建好了环境。先在这开个头,晚上回去继续捣鼓。。。。。。 先来介绍下建立uCos-II的环境,首先需要下载uCos-II v2.52压缩包,然后解压下来,SOFTWARE目录下面有三个文件夹,BLOCKS,TO,uCOS-II,,uCOS-II里面主要包含了uCos-ii源码和例程源码。然后把SOFTWA翻译 2011-05-23 14:07:00 · 2654 阅读 · 6 评论 -
uCOS-II的任务介绍2:
用户任务代码的一般结构: 根据嵌入式系统任务的工作特点,任务的执行代码通常是一个无限循环结构,并且在这个循环中可以响应中断,这种结构也叫做超循环结构。 一个用C语言编写的任务(超循环结构的任务示意性代码):void MyTask( void *pdata ){ for(;;) { 可以被中断的用户代码翻译 2011-06-02 23:47:00 · 4800 阅读 · 0 评论 -
uCOS-II的任务介绍1:
从任务的存储结构来看,uCOS-II的任务由三个组成部分构成:任务程序代码,任务堆栈和任务控制块。其中,任务控制块用来保存任务属性;任务堆栈用来保存任务工作环境;任务程序代码是任务的执行部分。 uCOS-II的任务组成uCOS-II的任务有两种:用户任务和系统任务。由应用程序设计者编写的任务,叫做用户;由系统提供的任务叫做系统任务。用户任务是翻译 2011-06-02 21:28:00 · 2289 阅读 · 3 评论 -
模拟uCOS-II
/************************************************************* FileName : testUcosII.c FileFunc : 模拟uCOS-II Version : V0.1 Author : Sunrier Date : 2011-06-07翻译 2011-06-07 11:42:00 · 1092 阅读 · 0 评论 -
OS_MemInit 函数
//初始化内存分区//这个函数是通过uCOS-II初始化内存分区,你的请求不能调用这个函数//初始化内存管理void OS_MemInit (void){#if OS_MAX_MEM_PART == 1 //最多内存块的数目为1时 OSMemFreeList = (OS_MEM *)&OSMemTbl[0]; //内存翻译 2011-06-19 23:24:00 · 2796 阅读 · 0 评论 -
OS_InitTCBList 函数
//初始化空闲TCB链表static void OS_InitTCBList (void){ INT8U i; OS_TCB *ptcb1; OS_TCB *ptcb2; OSTCBList = (OS_TCB *)0; //任务控制块链接表的指针清0翻译 2011-06-19 23:06:00 · 2751 阅读 · 0 评论 -
OS_InitMisc 函数
//初始化部分全局变量(基础参数初始化)static void OS_InitMisc( void ){#if OS_TIME_GET_SET_EN > 0 OSTime = 0L; //系统当前时间(节拍数),清除32位的系统时钟#endif OSInt翻译 2011-06-14 22:20:00 · 2501 阅读 · 0 评论 -
OS_InitRdyList 函数
//初始化任务就绪表static void OS_InitRdyList (void){ INT16U i; //定义一个16位变量i INT8U *prdytbl; //定义一个就绪态最高级任务列表指针 OSRdyGrp = 0x00; //翻译 2011-06-14 22:23:00 · 2095 阅读 · 0 评论 -
OS_InitTaskStat 函数
//创建统计任务#if OS_TASK_STAT_EN > 0static void OS_InitTaskStat (void) {#if OS_TASK_CREATE_EXT_EN > 0 //允许生成OSTaskCreateExt()函数 #if OS_STK_GROWTH == 1 //堆栈生长方向向下 (void)OSTaskCreateEx翻译 2011-06-19 23:28:00 · 2543 阅读 · 0 评论 -
OS_TaskIdle 函数
//空闲任务//描述:这个函数是uCOS-II内部函数,uCOS-II总要建立一个空闲任务,这个任务在没有其它任务进入// 就绪态时投入运行。这个空闲任务永远设为最低优先级,即OS_LOWEST_PRIO.空闲任务不可能// 被应用软件删除。//注意:1)OSTaskIdleHook()可以允许用户在函数中写入自己的代码,可以借助OSTaskIdleHook(),让翻译 2020-07-20 16:13:58 · 8688 阅读 · 0 评论 -
OS_InitEventList 函数
//初始化ECB链表static void OS_InitEventList (void){#if (OS_EVENT_EN > 0) && (OS_MAX_EVENTS > 0) //如果有消息事件,并且最大消息事件数>0#if (OS_MAX_EVENTS > 1) //如果最大消息事件数>1 INT16U i; OS_E翻译 2011-06-19 23:12:00 · 2550 阅读 · 2 评论 -
OS_InitTaskIdle 函数
//创建空闲任务(无条件)static void OS_InitTaskIdle (void){#if OS_TASK_CREATE_EXT_EN > 0 //允许生成OSTaskCreateExt()函数 #if OS_STK_GROWTH == 1 //堆栈生长方向向下 (void)OSTaskCreateExt(OS_TaskIdle, //空闲翻译 2011-06-19 23:27:00 · 2565 阅读 · 0 评论 -
OSTaskCreate 和 OSTaskCreateExt 函数
//建立一个新任务#if OS_TASK_CREATE_EN > 0 //允许生成OSTaskCreate()函数INT8U OSTaskCreate (void (*task)(void *pd), void *pdata, OS_STK *ptos, INT8U prio){#if OS_CRITICAL_METHOD == 3 //中翻译 2011-06-19 23:30:00 · 11473 阅读 · 3 评论 -
OS_TCBInit 函数
//任务控制块初始化//描述:这个函数是uCOS-II内部函数,在建立任务时调用的初始化任务控制块OS_TCB函数,含7个参数,查看OSTaskCreate()和OSTaskCreateExt()//初始化任务控制块TCB(优先级指针,堆栈指针,栈底指针,任务标志符,堆栈容量,扩展指针,选择项)INT8U OS_TCBInit (INT8U prio, OS_STK *ptos, O翻译 2011-06-19 23:33:00 · 5265 阅读 · 0 评论 -
OSInitHookBegin和OSInitHookEnd 函数
//调用钩子函数,可加入用户代码#if OS_CPU_HOOKS_EN > 0 && OS_VERSION > 203void OSInitHookBegin (void){ printf("OSInitHookBegin/n");}#endif//调用钩子函数,可加入用户代码#if OS_CPU_HOOKS_EN > 0 && OS_VERSION >翻译 2011-06-19 23:47:00 · 5565 阅读 · 1 评论 -
uCOS-II的任务介绍4:
任务控制块及任务控制块链表: uCOS-II用来记录任务的堆栈指针,任务的当前状态,任务的优先级别等一些与任务管理有关的属性的表就叫做任务控制块(OS_TCB)。 任务控制块负责把任务代码和任务堆栈进行关联,而使任务控制块,任务代码和任务堆栈成为一个整体,并且系统要通过这个任务控制块来感知和管理一个任务。因此,任务控制块就相当于一个任务的身份证,没有任务控制块的任务是不能翻译 2011-06-04 19:00:00 · 1769 阅读 · 0 评论