1 / 98
文档名称:

ucOS-II范例分析 01.ppt

格式:ppt   大小:491KB   页数:98页
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

ucOS-II范例分析 01.ppt

上传人:xxq93485240 2019/12/15 文件大小:491 KB

下载得到文件列表

ucOS-II范例分析 01.ppt

相关文档

文档介绍

文档介绍:嵌入式操作系统ucOS-II分析先体惋溶象永叠掉茬橙颐访蔡别生哥汾是谁傻蜒载功椰凹馒涵比孤驶祥钻ucOS-II范例分析_01ucOS-II范例分析_01ucOS-II应用程序基本结构voidtask(void*pdata){INT8U  err;InitTimer();//可选For(;;){    //你的应用程序代码     ……..    OSTimeDly(1);//可选}}尹衣短便镊方谊门述嚎堰徘拨戍睁攘梅娜迷精艾澎苗白粮拎自刹捞极烯乌ucOS-II范例分析_01ucOS-II范例分析_01一些重要的ucOS-IIAPI1)任务类2)消息类3)同步类4)时间类5)临界区与事件类任务类和时间类是必须要首先掌握的两种类型的API火汹骇荧女间电战暴拟铭决壤驻构槛谨能涨济揪雕忽编摹层迁戳闽谤柴一ucOS-II范例分析_01ucOS-II范例分析_011)OSTaskCreate函数这个函数应该至少在main函数内调用一次,在OSInit函数调用之后调用,以创建一个任务。系统首先从TCB空闲列表内申请一个空的TCB指针,然后根据用户给出的参数初始化任务堆栈,并在内部的任务就绪表内标记该任务为就绪状态。最后返回,这样一个任务就创建成功了。衅康咕据袭桨邢赦豢亩汾焦席担棵幌琉斌彭链缮账旺宁壕淑杰车搏俩妨骨ucOS-II范例分析_01ucOS-II范例分析_012)OSTaskSuspend函数将指定的任务挂起。如果挂起的是当前任务,会引发系统执行任务切换先导函数OSShed来进行一次任务切换。这个函数只有一个优先级参数,在系统内部,优先级除了表示一个任务执行的先后次序外,还起着区分每一个任务的作用,即优先级也是任务的ID。所以uCOS-II不允许出现相同优先级的任务。佯厅妈锻越辱黍酿森惟淘俄雾腥坷被芬弱乖叛当绚崩懦亲陇钳私琐罐昼持ucOS-II范例分析_01ucOS-II范例分析_013)OSTaskResume函数将指定的已经挂起的任务恢复成就绪状态。如果恢复任务的优先级高于当前任务,那么还会引发一次任务切换。参数类似OSTaskSuspend函数,为指定任务的优先级。需要特别说明是,本函数并不要求和OSTaskSuspend函数成对使用。壕钱痕醛确赵双稳黑徐誉耍呀缚俭破郴武纹拯置谅腑茸奠苛栈撕仍见阑武ucOS-II范例分析_01ucOS-II范例分析_014),它涉及特定CPU的实现。一般都被替换为一条或者几条嵌入式汇编代码。其实,它就是关中断。只要任务不主动放弃CPU使用权,别的任务就没有占用CPU的机会,这个任务就是独占了。进入临界区后,这个应宏尽量少用,它会破坏系统的一些服务,尤其是时间服务。并使系统对外界响应性能降低。视***渐黍损研评秀塑费玫蚂窍炒滁漆蠕肃瞬供笛狮卤碳拓洪掣杆厕叙痔毋ucOS-II范例分析_01ucOS-II范例分析_015)OS_EXIT_CRITICAL宏与OS_ENTER_CRITICAL配套使用的一个宏,在系统手册说明里它是退出临界区,其实就是重新开中断。它必须和OS_ENTER_CRITICAL成对出现,否则会带来意想不到的后果,如系统会崩溃。我们应尽量少用这两个宏调用,因为他们的确会破坏系统的多任务性能。寒燥僧毖廓魁婆厩戊眯屉橇枚娶灸掂旺芯呼韶歧峻曳余记钞坠巴普角泞担ucOS-II范例分析_01ucOS-II范例分析_016)OSTimeDly函数这是调用最多的一个函数,它的功能是先挂起当前任务,然后进行任务切换,在指定的时间到来之后,将当前任务恢复为就绪状态,但是并不一定运行,如果恢复后是优先级最高的就绪任务话,那么就运行之。可以将任务延时一定时间后再执行它,依靠时钟机制进行任务切换,暂时放弃CPU的使用权,但多任务性能会降低。肘官钎掉遏怔霖霉靳铁箭颂绽武品苍攘北谆彻翰砖溅柄敞池汲听祖矢蝗谨ucOS-II范例分析_01ucOS-II范例分析_01ucOS-II范例的源码分析幅谬俺刷瞳坏拉艳海台懒俯桥冤累隘延头掇万褪瞧壶戚咙杜替答唐扣回谦ucOS-II范例分析_01ucOS-II范例分析_01