
uCOSII
IvyOnion
这个作者很懒,什么都没留下…
展开
-
ucosii关于PC的中断基础知识
原创 2013-05-24 14:05:38 · 1358 阅读 · 0 评论 -
启动ucosii之五OSStart()
函数原型来自OS_CORE.C//该函数由SStart()函数调用,功能是运行优先级最高的就绪任务,在调用OSStart()之前,用户必须先调用OSInit(),并且已经至少创建了一个任务.//OSStartHighRdy()默认指针OSTCBHighRdy指向优先级最高就绪任务的任务控制块(OS_TCB)(在这之前OSTCBHighRdy已由OSStart()设置好了).void原创 2013-05-24 14:43:17 · 11649 阅读 · 2 评论 -
启动ucosii之四OSTaskCreate()
函数原型来自OS_TASK.C/*********************************************************************************************************** CREATE A TASK**************原创 2013-05-24 14:23:21 · 5129 阅读 · 0 评论 -
启动ucosii之一OSInit()
第一步: OSInit();//初始化uCOS_II.该函数位于OS_CORE.C,主要工作:函数原型位于OS_CORE.COS_InitMisc(); /* 基础参数初始化 Initialize miscellaneous(混杂的,各种各样的) variables */OS_InitRdyList(); /* 初始化任务就绪表 Initialize the Ready List *原创 2013-05-24 16:30:01 · 4650 阅读 · 0 评论 -
启动ucosii之二PC_DOSSaveReturn()
以下函数原型来自PC.Cvoid PC_DOSSaveReturn (void){#if OS_CRITICAL_METHOD == 3 /* Allocate storage for CPU status register */ OS_CPU_SR cpu_sr;//OS_CPU.H typedef uns原创 2013-05-24 13:54:22 · 2231 阅读 · 4 评论 -
启动ucosii之七PC_SetTickRate(OS_TICKS_PER_SEC)
/*uCOS-II定义频率,以改变钟节拍的速率.在DOS下,每秒产生18.20648次时钟节拍,或每隔54.925ms一次.这是因为82C54定时器芯片没有初始化,而使用默认值65535的结果.如果初始化为58659,那么时钟节拍的速率就会精确地为20.000Hz*/void PC_SetTickRate (INT16U freq){#if OS_CRITICAL_ME原创 2013-05-24 16:38:35 · 3097 阅读 · 0 评论 -
启动ucosii之九OSTimeDlyHMSM(hours,minutes,seconds,milli)
//延迟指定时间长度原型出自OS_TIME.CINT8U OSTimeDlyHMSM (INT8U hours, INT8U minutes, INT8U seconds, INT16U milli){ INT32U ticks; INT16U loops; if (hours > 0 || minutes > 0 || seconds > 0 ||原创 2013-05-24 14:45:17 · 2603 阅读 · 0 评论 -
启动ucosii之八OSStatInit()
原型出自内核OS_CORE.C//统计任务的初始化#if OS_TASK_STAT_EN > 0void OSStatInit (void){#if OS_CRITICAL_METHOD == 3 /* Allocate storage for CPU status register */ OS_CPU_原创 2013-05-24 14:40:20 · 5589 阅读 · 0 评论 -
启动ucosii之六PC_VectSet(0x08,OSTickISR)
原型来自PC.Cvoid PC_VectSet (INT8U vect, void (*isr)(void)){#if OS_CRITICAL_METHOD == 3 /* Allocate storage for CPU status register */ OS_CPU_SR cpu_sr;#endif原创 2013-05-24 14:32:55 · 3327 阅读 · 0 评论 -
启动ucosii之三PC_VectSet(uCOS,OSCtxSw)
原型来自PC.CPC_VectSet(uCOS,OSCtxSw);//vect向量号,一个内部中断(软中断)向量号//参数2-中断处理函数.即中断号为0x80的中断处理函数void PC_VectSet (INT8U vect, void (*isr)(void)){#if OS_CRITICAL_METHOD == 3 /* Al原创 2013-05-24 14:18:05 · 4156 阅读 · 2 评论 -
启动之OS_CPU_C
任务堆栈结构的初始化在uC/OS-II中,任务是一个无限循环,任务之间也不会互相调用,但是uC/OS-II总是执行优先级最高的任务,假定当前有一个更高优先级的任务进入就绪状态,为了保证原来低优先级任务的完整性,uC/OS-II为每个任务建立了任务堆栈,就相当于函数调用时保存返回地址和参数一样,用来保存当前任务的状态,保证任务切换能和函数调用一样正确.只不过函数调用时函数堆栈的操作过程是编译器自原创 2013-05-24 14:47:13 · 1627 阅读 · 1 评论 -
PC下简单任务之uCOSII启动脉络
#include "includes.h"#define TASK_STK_SIZE 512 //任务堆栈长度//typedef unsigned int OS_STK;定义在OS_CPU.h中OS_STK TaskStartStk[TASK_STK_SIZE]; //定义任务堆栈区-大小为2*512=1024byte=1kINT16S key;原创 2013-05-24 13:42:29 · 1199 阅读 · 0 评论