在uC/OSII中,OSInit();是一个重要的函数,它在OS应用中的voidmain();函数中首先被调用,是OS运行--的第一个函数。它完成各初始变量的初始化,建立任务空闲键表OSTCBFreeList,建立事件空闲键表OSEventFreeList.创建一个空闲任务OS_TaskIdle等。 OSInit ( ); 原形如下:VoidOSInit(void) { OS_InitMisc( );//完成一般变量初始化 OS_InitRdyList();//就绪列表初始化 OS_InitTCBList();//空闲任务键表OSTCBFreeList建立 OS_InitEventList();//事件空闲键表OSEventFreeList建立。 OS_FlagInit( );//其它相关功能参数初始化。 OS_MemInit( ); OS_QInit( ); OS_InitTaskIdle();//创建空闲任务OS_TaskIdle. OS_InitTaskStat( ); OSInitHookEnd( ); } OSTaskCreate()是创建任务的一种函数,另外一种是OSTaskCreateExt(),可以创建扩展的任务。OSTaskCreate()有4个参数,第一个:要创建的任务函数,第二个:传递给任务的指针,第三个:任务堆栈的栈顶的指针,第四个:任务的优先级.这四个参数是创建普通任务所必须的。调用成功OSTaskCreate()后,将返回OS_NO_ERR。 INT8UOSTaskCreate ( void(*task)(void*pd),指向任务的指针; ); 在调用启动任务函数OSStart(),必须已经创建了一个任务,任务可在调用函数OSStart(),启动任务之前来创建,也可在任务中来创建。OSStart()函数是uC/OS-II任务调度的引导函数,它调用更底层的函数OSStartHighRdy()来完成最初的任务切换。 voidOSStart (void) OSStartHighRdy()函数需要用户移植实现,是由汇编来完成,主要的工作是:OSRunning= TRUE;调用OSTaskSwHook()函数;设置处理器的堆栈指针寄存器为 OSTCBHighRdy->OSTCBStkPtr;恢复所有处理器的寄存器内容(不包括堆栈指针寄存器和PC寄存器);恢复PC寄存器并开始执行PC指向的指令。OSTCBHighRdy是一个指向处于就绪状态的优先级最高的任务的TCB的指针。OSTCBStkPtr是指向当前任务堆栈栈顶的指针。 |
关于OSInit、OSStart、OSTaskCreate函数的理解 ucosiii ostaskcreate
更多阅读
关于乳房、乳沟和乳头的那些笑话 00后乳沟小学生
关于乳房、乳沟和乳头的那些笑话课堂上,漂亮女老师严肃地给小朋友解释:“乳”就是“小”的意思。比如
转载 关于历史市场的回顾、当前市场的判断和把握周期性投资机会 把握机会的名言
原文地址:关于历史市场的回顾、当前市场的判断和把握周期性投资机会作者:重庆大学金镝关于历史市场的回顾、当前市场的判断和把握周期性投资机会(作者:飞跃山丘) 一、何谓周期性 “很少有事物是直线发展的。事物有进有退,有盛有衰。法则
left函数的使用方法 sumif函数的使用方法
left函数的使用方法——简介在excel中left函数可以给我们提供很多方便,平时也经常用到。该函数相对而言比较简单,本文就介绍下left函数怎么用。left函数的使用方法——工具/原料office excelleft函数的使用方法——方法/步骤left函
陕西省高级人民法院关于适用刑法有关条款数额、情节标准的意见 刑法九数额较大估计
博主杜亚民说明:《陕西省高级人民法院关于适用刑法有关条款数额、情节标准的意见》于2013年1月1日起施行后,此前陕西省高级人民法院颁布的关于适用刑法有关条款数额、情节标准的意见当然废止。与最高法院司法解释不一致的,以最高法院司
转载 辨伪影视小说中关于雍正蒸人、炸人的问题 瓷器辨伪
我真的很想对那些乱评乱写雍正的人说评价历史人物也同样要个客观公正同样是要凭良心负责任的励精图治一世不容易雍正狠是狠但雍正那是对官狠几时见他对百姓狠过?看看雍正的悦心集就能知道他为人处世的准则了个人认为二月河笔下的雍正