⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ucos.txt

📁 在51上运行的小的OS系统
💻 TXT
字号:
OSTimeDly(OS_TICKS_PER_SEC);	// 延时1秒

TargetInit ();			// 目标板初始化

OSTaskCreate (Task0,(void *)0, &TaskStk[TaskStkLengh - 1], 2);

OS_EVENT *PWMBox;
PWMBox = OSMboxCreate((void *)0);		// 创建邮箱	
msg = OSMboxPend(PWMBox, 0, &err);	// 接收TaskKey1发来的消息
err = OSMboxPost(PWMBox, (void*)&PWMData);	// 向TaskPWM发送消息


 OSTaskSuspend(OS_PRIO_SELF);               //挂起
 OSTaskResume(3);	                    //唤醒
 
 OSTaskDel ( 3 );  要删除的任务。OS_PRIO_SELF为删除自己


1) OSTaskCreate函数 

  这个函数应该至少再main函数内调用一次,在OSInit函数调用之后调用。作用就是创建一个任务。目前有四个参数,分别是任务的入口地址,任务的参数,任务堆栈的首地址和任务的优先级。调用本函数后,系统会首先从TCB空闲列表内申请一个空的TCB指针,然后将会根据用户给出参数初始化任务堆栈,并在内部的任务就绪表内标记该任务为就绪状态。最后返回,这样一个任务就创建成功了。 

2) OSTaskSuspend函数 

  这个函数很简单,一看名字就该明白它的作用,它可以将指定的任务挂起。如果挂起的是当前任务的话,那么还会引发系统执行任务切换先导函数OSShed来进行一次任务切换。这个函数只有一个参数,那就是指定任务的优先级。那为什么是优先级呢?事实上在系统内部,优先级除了表示一个任务执行的先后次序外,还起着分别每一个任务的作用,换句话说,优先级也就是任务的ID。所以uC/OS-II不允许出现相同优先级的任务。 

3) OSTaskResume函数 

  这个函数和上面的函数正好相反,它用于将指定的已经挂起的函数恢复成就绪状态。如果恢复任务的优先级高于当前任务,那么还为引发一次任务切换。其参数类似OSTaskSuspend函数,为指定任务的优先级。需要特别说明是,本函数并不要求和OSTaskSuspend函数成对使用。

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -