




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、C/OS-II任务及其任务管理任务及其任务管理本章主要讲述本章主要讲述C/OS-II的任务的任务C/OS-II任务的构成任务的构成任务的创建任务的创建任务的调度任务的调度任务的延时和取消延时任务的延时和取消延时任务的挂起和恢复任务的挂起和恢复任务的删除任务的删除一、一、C/OS-II的任务的任务任务任务是在是在C/OS-II嵌入式操作系统下进行软件设计嵌入式操作系统下进行软件设计的一个重要概念。的一个重要概念。 一个任务也称作一个进程,是一个一个任务也称作一个进程,是一个“可执行的程序可执行的程序单元单元”。每个任务都有一个任务控制块,记录任务。每个任务都有一个任务控制块,记录任务的信息(如的
2、信息(如优先级、状态等)优先级、状态等),有它自己的存储,有它自己的存储CPU寄存器值的寄存器值的堆堆栈栈。基于基于C/OS-II应用程序一般是由一个个任务构成。应用程序一般是由一个个任务构成。二、二、C/OS-II的任务的构成的任务的构成任务主要由三个部分组成:任务主要由三个部分组成:u任务代码(任务函数)任务代码(任务函数)u任务堆栈任务堆栈任务控制块任务控制块C/OS-II任务构成任务构成任务代码任务代码C/OS-II下的任务代码一般定义为一个下的任务代码一般定义为一个任务函数任务函数,函数的主体通常是一个无限的循环函数的主体通常是一个无限的循环void MyTask(void *pda
3、ta) while (1) 用户代码;用户代码; 示例:示例:void MyTask(void *pdata) pdata = pdata; while(1) printf(M); Beep(1950, 20); OSTimeDly(OS_TICKS_PER_SEC); 任务堆栈任务堆栈每一个任务都有其相应的任务堆栈。每一个任务都有其相应的任务堆栈。任务堆栈主要用于在任务切换是保存现场(将寄存任务堆栈主要用于在任务切换是保存现场(将寄存器的值保存到堆栈)和恢复现场(将堆栈中数据加器的值保存到堆栈)和恢复现场(将堆栈中数据加载到寄存器中)。载到寄存器中)。一般定义了一个任务,同时需要定义该任务的
4、任务一般定义了一个任务,同时需要定义该任务的任务堆栈:堆栈: OS_STK MyTaskStkTaskStkSize;堆栈的增长方向堆栈的增长方向由由OS_STK_GROWTH确定(在确定(在OS_CPU.h定义)定义)OS_STK_GROWTH=0 意味堆栈从下往上长,则意味堆栈从下往上长,则开始时栈顶位置为下标为开始时栈顶位置为下标为0的元素的元素OS_STK_GROWTH=1 意味堆栈从上往下长,则意味堆栈从上往下长,则开始时栈顶位置为下标为开始时栈顶位置为下标为TaskStkSize-1的元素的元素任务控制块任务控制块任务控制快任务控制快(Task Control Block,TCB)
5、就相就相当于是一个任务的身份证,没有任务控制块当于是一个任务的身份证,没有任务控制块的任务是不能被系统承认和管理的。的任务是不能被系统承认和管理的。任务控制块任务控制块用来记录任务的用来记录任务的堆栈指针、任务堆栈指针、任务状态、优先级状态、优先级等一些与任务管理有关的属性。等一些与任务管理有关的属性。任务控制块结构的主要成员typedef struct os_tcb /在在ucos_ii.h中定义中定义 OS_STK *OSTCBStkPtr; /指向任务堆栈栈顶的指针指向任务堆栈栈顶的指针 struct os_tcb *OSTCBNext;/指向后一个任务控制块的指针指向后一个任务控制块的
6、指针 struct os_tcb *OSTCBPrev; /指向前一个任务控制块的指针指向前一个任务控制块的指针 INT16U OSTCBDly; /任务等待的时限(节拍数)任务等待的时限(节拍数) INT8U OSTCBStat;/任务的当前状态标志任务的当前状态标志 INT8U OSTCBPrio; /任务的优先级别任务的优先级别 OS_TCB;任务的优先级任务的优先级C/OS_II 把任务的优先权分为把任务的优先权分为64个优先级别,每个优先级别,每一个级别都用一个数字来表示。数字一个级别都用一个数字来表示。数字0表示任务的表示任务的优先级别最高,优先级别最高,数字越大则表示任务的优先级
7、别越数字越大则表示任务的优先级别越低低 可以在可以在OS_CFG.H中修改中修改OS_LOWEST_PRIO(表表示最低优先级别的常数示最低优先级别的常数),来确定可供使用的优先,来确定可供使用的优先级别为:级别为:0,1,2,OS_LOWEST_PRIO,共,共OS_LOWEST_PRIO+1个。个。OS_LOWEST_PRIO:赋给空闲任务:赋给空闲任务OS_LOWEST_PRIO-1:赋给统计任务(:赋给统计任务( 。如果应用程序中还使用了统计任务,系统则如果应用程序中还使用了统计任务,系统则会把优先级别)会把优先级别)0,1,2,OS_LOWEST_PRIO-2: 用户用户任务可以使用
8、的优先级别,共任务可以使用的优先级别,共OS_LOWEST_PRIO-1个个任务的状态及其转换正在运行的任务,需要等待一段时间或需要等待一个事件发生再运行时,该任务就会把CPU的使用权让给别的任务而使任务进入等待状态。 任务在没有被配备任务控制块或被剥夺了任务控制块时的状态叫做任务的睡眠状态 系统为任务配备了任务控制块且在任务就绪表中进行了就绪登记,这时任务的状态叫做就绪状态。 处于就绪状态的任务如果经调度器判断获得了CPU的使用权,则任务就进入运行状态 一个正在运行的任务一旦响应中断申请就会中止运行而去执行中断服务程序,这时任务的状态叫做中断服务状态 任务状态:休眠、就绪、执行、等待、中断任
9、务状态:休眠、就绪、执行、等待、中断R RU UN NN NI IN NG GR RE EA AD DY YO OS ST Ta as sk kC Cr re ea at te e( () )O OS ST Ta as sk kC Cr re ea at te eE Ex xt t( () )T Ta as sk k i is s P Pr re ee em mp pt te ed dO OS SM MB Bo ox xP Pe en nd d( () )O OS SQ QP Pe en nd d( () )O OS SS Se em mP Pe en nd d( () )O OS ST Ta
10、 as sk kS Su us sp pe en nd d( () )O OS ST Ti im me eD Dl ly y( () )O OS ST Ti im me eD Dl ly yH HM MS SM M( () )O OS SM MB Bo ox xP Po os st t( () )O OS SQ QP Po os st t( () )O OS SQ QP Po os st tF Fr ro on nt t( () )O OS SS Se em mP Po os st t( () )O OS ST Ta as sk kR Re es su um me e( () )O OS ST
11、 Ti im me eD Dl ly yR Re es su um me e( () )O OS ST Ti im me eT Ti ic ck k( () )O OS ST Ta as sk kD De el l( () )D DO OR RM MA AN NT TW WA AI IT TI IN NG GO OS SS St ta ar rt t( () )O OS SI In nt tE Ex xi it t( () )O OS S_ _T TA AS SK K_ _S SW W( () )O OS ST Ta as sk kD De el l( () )O OS ST Ta as sk
12、 kD De el l( () )I In nt te er rr ru up pt tO OS SI In nt tE Ex xi it t( () )I IS SR R三、任务的创建三、任务的创建任务创建的工作就是:初始化任务堆栈,给任务分任务创建的工作就是:初始化任务堆栈,给任务分配一个配一个任务控制块任务控制块,初始化其相关属性,并通过,初始化其相关属性,并通过TCB把把任务代码任务代码、任务堆栈任务堆栈关联起来形成一个完整关联起来形成一个完整的任务。的任务。用户定义了任务函数,但用户定义了任务函数,但C/OS_II不会理会这些代不会理会这些代码,这些代码也不会运行码,这些代码也不会运
13、行(休眠状态休眠状态)。任务创建)。任务创建后,它就可以接受后,它就可以接受C/OS_II的管理和调度。的管理和调度。 创建任务创建任务OSTaskCreate( )函数如下:函数如下: INT8U OSTaskCreate ( void (*task)(void *pd),/指向任务的指针指向任务的指针 void *pdata,/传递给任务的参数传递给任务的参数 OS_STK *ptos,/指向任务堆栈栈顶的指针指向任务堆栈栈顶的指针 INT8U prio/任务的优先级任务的优先级) 返回值:返回值:OSTaskCreate()的返回值为下述之一:()的返回值为下述之一: OS_NO_ERR
14、:函数调用成功。:函数调用成功。 OS_PRIO_EXIST:具有该优先级的任务已经存:具有该优先级的任务已经存在。在。 OS_PRIO_INVALID:参数指定的优先级大于:参数指定的优先级大于OS_LOWEST_PRIO。 OS_NO_MORE_TCB:系统中没有:系统中没有OS_TCB可以可以分配给任务了。分配给任务了。示例示例1.1void MyTask(void *pdata) pdata = pdata; while(1) printf(M); Beep(1950, 20); OSTimeDly(OS_TICKS_PER_SEC); 示例示例1.1根据函数函数根据函数函数MyTas
15、k和其任务堆栈和其任务堆栈MyTaskStk定定义一个优先级为义一个优先级为5的任务:的任务:OSTaskCreate(MyTask, 0, &MyTaskStkTaskStkSize-1, 5);1、修改示例程序、修改示例程序1.1,每秒输出一行字符串,每秒输出一行字符串“Hello!ucOS/II!” 2、修改示例程序、修改示例程序1.1,循环播放两只老虎歌,循环播放两只老虎歌曲。曲。想一想想一想 打开例打开例1.1 开始行动吧!开始行动吧!任务函数任务函数pdata参数的应用参数的应用问题:如果需要在创建一个任务的时候项该任务传问题:如果需要在创建一个任务的时候项该任务传递一些数
16、据如何解决?比如创建一个串口发送任务递一些数据如何解决?比如创建一个串口发送任务时,需要向该任务传递波特率,以便初始化串口发时,需要向该任务传递波特率,以便初始化串口发送速率,怎么办?送速率,怎么办?示例:示例: 系统提供的空闲任务 在多任务系统运行时,系统经常会在某个时间内无用户任务可运行而处于所谓的空闲状态,为了使CPU在没有用户任务可执行的时候有事可做,C/OS-II提供了一个叫做空闲任务OSTaskIdle( )的系统任务 C/OS-II规定,一个用户应用程序必须使用这个空闲任务,而且这个任务是不能用软件来删除的 系统提供的另一个任务 统计任务C/OS-II的另一个系统任务是统计任务O
17、STaskStat( )。这个统计任务每秒计算一次CPU在单位时间内被使用的时间,并把计算结果以百分比的形式存放在变量OSCPUsage中,以便应用程序通过访问它来了解CPU的利用率,所以这个系统任务OSTaskStat( )叫做统计任务 多任务多任务多任务系统,简单地说,就是能用一个处理多任务系统,简单地说,就是能用一个处理器器并发(注意,不是同时!并发(注意,不是同时! )地运行多个任地运行多个任务的系统。务的系统。并发并发:由多个任务轮流地占用处理器这个资:由多个任务轮流地占用处理器这个资源。且在占用这个资源期间,并不一定能够源。且在占用这个资源期间,并不一定能够把任务运行完毕。把任务运
18、行完毕。任务的切换任务的切换任务切换任务切换就是当前运行任务进入就绪、等待或休眠就是当前运行任务进入就绪、等待或休眠状态,而优先级最高的就绪任务投入运行。状态,而优先级最高的就绪任务投入运行。现场保护:现场保护:对于当前运行任务,需将对于当前运行任务,需将CPU寄存器内寄存器内容(任务当前状态)保存在该任务的堆栈之中。容(任务当前状态)保存在该任务的堆栈之中。现场恢复现场恢复:对于将要执行的任务,需要从该任务的:对于将要执行的任务,需要从该任务的堆栈中将其状态重新装入堆栈中将其状态重新装入CPU的寄存器,并开始任的寄存器,并开始任务的运行。务的运行。任务调度和切换的时机任务调度和切换的时机 新
19、任务被创建(休眠新任务被创建(休眠-就绪)就绪) 运行任务删除自身)(运行运行任务删除自身)(运行-休眠)休眠) 处于等待状态的任务被唤醒(等待处于等待状态的任务被唤醒(等待-就绪)就绪) 由于异步事件发生,在中断服务程序中唤醒一个或几个任由于异步事件发生,在中断服务程序中唤醒一个或几个任务(等待务(等待-就绪)就绪) 正在运行的任务需要等待某个事件的发生而进入等待状态正在运行的任务需要等待某个事件的发生而进入等待状态(运行(运行-等待等待) 正在运行的任务调用延时函数或挂起函数而自愿进入等待正在运行的任务调用延时函数或挂起函数而自愿进入等待状态(运行状态(运行-等待等待) 。任务状态:休眠、
20、就绪、执行、等待、中断任务状态:休眠、就绪、执行、等待、中断R RU UN NN NI IN NG GR RE EA AD DY YO OS ST Ta as sk kC Cr re ea at te e( () )O OS ST Ta as sk kC Cr re ea at te eE Ex xt t( () )T Ta as sk k i is s P Pr re ee em mp pt te ed dO OS SM MB Bo ox xP Pe en nd d( () )O OS SQ QP Pe en nd d( () )O OS SS Se em mP Pe en nd d( ()
21、 )O OS ST Ta as sk kS Su us sp pe en nd d( () )O OS ST Ti im me eD Dl ly y( () )O OS ST Ti im me eD Dl ly yH HM MS SM M( () )O OS SM MB Bo ox xP Po os st t( () )O OS SQ QP Po os st t( () )O OS SQ QP Po os st tF Fr ro on nt t( () )O OS SS Se em mP Po os st t( () )O OS ST Ta as sk kR Re es su um me e(
22、 () )O OS ST Ti im me eD Dl ly yR Re es su um me e( () )O OS ST Ti im me eT Ti ic ck k( () )O OS ST Ta as sk kD De el l( () )D DO OR RM MA AN NT TW WA AI IT TI IN NG GO OS SS St ta ar rt t( () )O OS SI In nt tE Ex xi it t( () )O OS S_ _T TA AS SK K_ _S SW W( () )O OS ST Ta as sk kD De el l( () )O OS
23、 ST Ta as sk kD De el l( () )I In nt te er rr ru up pt tO OS SI In nt tE Ex xi it t( () )I IS SR R任务调度任务调度调度是内核的主要职责之一。调度是内核的主要职责之一。调度就是决定将调度就是决定将CPU资源分配给哪个就绪任务。资源分配给哪个就绪任务。基于优先级的调度法指基于优先级的调度法指CPU分配给优先级最高的就分配给优先级最高的就绪任务。绪任务。然而究竟何时让高优先级任务掌握然而究竟何时让高优先级任务掌握CPU的使用权,的使用权,还要看内核是非占先式的还是占先式的内核。还要看内核是非占先式的还是
24、占先式的内核。非抢先式非抢先式 (Non-Preemptive)调度调度低优先级任务低优先级任务高优先级任务高优先级任务(1)(2)(3)(4)(5)(6)(7)某种事件或中断服务程序使某种事件或中断服务程序使高优先级任务就绪高优先级任务就绪低优先级任务释放低优先级任务释放CPU使用权使用权时间时间非抢先式调度非抢先式调度要求每个任务自我放弃要求每个任务自我放弃CPU 的的所有权。所有权。某个事件或中断服务可以使一个高优先级任某个事件或中断服务可以使一个高优先级任务由挂起状态变为就绪状态。但之后控制权务由挂起状态变为就绪状态。但之后控制权还是回到原来的那个任务,直到该任务主动还是回到原来的那个
25、任务,直到该任务主动放弃放弃CPU的使用权时,高优先级的任务才能的使用权时,高优先级的任务才能获得获得CPU的使用权。的使用权。非抢先式调度的非抢先式调度的最大缺陷最大缺陷在于其响应高优先级的任在于其响应高优先级的任务慢,任务已经进入就绪态,但还不能运行,也许务慢,任务已经进入就绪态,但还不能运行,也许要等很长时间,直到当前运行任务释放要等很长时间,直到当前运行任务释放CPUCPU。内核。内核的任务级响应时间是不确定的,不知道什么时候最的任务级响应时间是不确定的,不知道什么时候最高优先级的任务才能拿到高优先级的任务才能拿到CPUCPU的控制权,完全取决的控制权,完全取决于应用程序什么时候释放于
26、应用程序什么时候释放CPUCPU。抢先式(抢先式(preemptive)调度)调度低优先级任务低优先级任务高优先级任务高优先级任务(1)(2)(3)(4)(5)(6)某种事件或中断服务程序使某种事件或中断服务程序使高优先级任务就绪高优先级任务就绪高优先级任务得到高优先级任务得到CPU使用权使用权TIME当系统响应时间很重要时,要使用抢先式内核。最当系统响应时间很重要时,要使用抢先式内核。最高优先级的任务一旦就绪,总能得到高优先级的任务一旦就绪,总能得到CPU的控制权。的控制权。当一个运行着的任务使一个比它优先级高的任务进当一个运行着的任务使一个比它优先级高的任务进入了就绪状态,当前任务的入了就
27、绪状态,当前任务的CPU使用权就被剥夺,使用权就被剥夺,那个高优先级的任务立刻得到了那个高优先级的任务立刻得到了CPU的控制权。的控制权。如果是中断服务子程序使一个高优先级的任务进入如果是中断服务子程序使一个高优先级的任务进入就绪态,中断完成时,中断了的任务被挂起,优先就绪态,中断完成时,中断了的任务被挂起,优先级高的那个任务开始运行。级高的那个任务开始运行。使用抢先式内核时,应用程序不应使用不可使用抢先式内核时,应用程序不应使用不可重入函数。如果调用不可重入函数时,低优重入函数。如果调用不可重入函数时,低优先级的任务先级的任务CPUCPU的使用权被高优先级任务剥的使用权被高优先级任务剥夺,夺
28、,不可重入函数中的数据有可能被破坏。不可重入函数中的数据有可能被破坏。可重入函数可重入函数可以被一个以上的任务调用,而不必担心数可以被一个以上的任务调用,而不必担心数据的破坏。可重入函数任何时候都可以被中据的破坏。可重入函数任何时候都可以被中断,一段时间以后又可以运行,而相应数据断,一段时间以后又可以运行,而相应数据不会丢失。可重入函数只使用局部变量,即不会丢失。可重入函数只使用局部变量,即变量保存在变量保存在CPU寄存器中或堆栈中。寄存器中或堆栈中。一个不可重入函数的例子(为什么?)一个不可重入函数的例子(为什么?)int Temp;void swap (int *x,int*y) Temp
29、=*x; *x=*y; *y=Temp;不可重入函数的数据被中断破坏多任务示例:例多任务示例:例1_2任务一:任务一:void MyTask(void *pdata) while(1) printf(This is MyTask!n); Beep(1950, 20); OSTimeDly(OS_TICKS_PER_SEC*5); 任务二:任务二:void YourTask(void *pdata) while(1) printf(This is YourTask!n); Beep(4000, 20); OSTimeDly(OS_TICKS_PER_SEC*3); 例例1.2 实现实现MyTas
30、k和和YourTask任任务切换在务切换在 哪条语句实现的?哪条语句实现的? 想一想想一想 打开例打开例1.2 开始找吧!开始找吧!做一做做一做尝试修改例尝试修改例1.2程序,增加一个任务程序,增加一个任务HerTask,在,在该任务中输出字符串该任务中输出字符串”This is her task!” 打开例打开例1.2 开始行动吧!开始行动吧!四、任务延时和取消延时四、任务延时和取消延时所谓任务延时,就是由任务自身暂时中止这个任务所谓任务延时,就是由任务自身暂时中止这个任务的运行一段时间,并进入等待状态。的运行一段时间,并进入等待状态。 C/OS_II提供提供的系统函数的系统函数OSTime
31、Dly ()用与挂起一个任务。用与挂起一个任务。所谓任务取消延时,就是将一个延时的任务恢复进所谓任务取消延时,就是将一个延时的任务恢复进入就绪状态。入就绪状态。 C/OS_II提供的系统函数提供的系统函数OSTimeDlyResume()用于取消一个任务的延时。用于取消一个任务的延时。等待状态等待状态就绪状态就绪状态运行状态运行状态OSTimeDly()OSTimeDlyResume()OS_TASK_SW()任务任务CPU使用权被剥夺使用权被剥夺 任务延时函数:任务延时函数: INT8U OSTimeDly (INT16U ticks) 注:如果传递给注:如果传递给OSTimeDly函数的参
32、数函数的参数ticks的值的值为时钟节拍数。为时钟节拍数。 注:只能是运行的任务主动延时进入等待状态。注:只能是运行的任务主动延时进入等待状态。 取消延时函数:取消延时函数: INT8U OSTimeDlyResume (INT8U prio)示例示例void MyTask(void *pdata) INT16U i,j; while(1) printf(This is MyTask!n); Beep(1950, 20); n+; for(i=0;i2000;i+) for(j=0;j50000;j+); OSTimeDly(OS_TICKS_PER_SEC*5); void YourTask
33、(void *pdata) INT16U i,j; while(1) printf(This is YourTask!n); Beep(4000, 20); m+; for(i=0;i3000;i+) for(j=0;j=3) printf(取消任务取消任务MyTask的延时的延时!n); m = 0; OSTimeDlyResume(5); OSTimeDlyResume(5) 恢复恢复优先级为优先级为5的任务的任务MyTask,MyTask进入就绪状态,由进入就绪状态,由于其优先级高过当前任务于其优先级高过当前任务YourTask,所以通过任务,所以通过任务调度进入运行状态调度进入运行状态
34、 五、任务的挂起和恢复五、任务的挂起和恢复所谓挂起任务,就是由一个任务自身或其他任务中所谓挂起任务,就是由一个任务自身或其他任务中止该任务的运行状态或就绪状态,并进入等待状态。止该任务的运行状态或就绪状态,并进入等待状态。 C/OS_II提供的系统函数提供的系统函数OSTaskSuspend()用于挂用于挂起一个任务。起一个任务。所谓恢复任务,就是将一个挂起的任务恢复进入就所谓恢复任务,就是将一个挂起的任务恢复进入就绪状态。绪状态。 C/OS_II提供的系统函数提供的系统函数OSTaskResume()用于恢复一个挂起的任务。用于恢复一个挂起的任务。等待状态等待状态就绪状态就绪状态运行状态运行
35、状态OSTaskSupend()OSTaskResume()OS_TASK_SW()任务任务CPU使用权被剥夺使用权被剥夺挂起任务函数:挂起任务函数: INT8U OSTaskSuspend (INT8U prio)注:如果传递给注:如果传递给OSTaskSuspend函数的参数函数的参数prio的的值为值为OS_PRIO_SELF ,则表示挂起任务自身。,则表示挂起任务自身。恢复任务函数:恢复任务函数: INT8U OSTaskResume (INT8U prio)示例示例void MyTask(void *pdata) while(1) printf(This is MyTask!n);
36、Beep(1950, 20); n+; /通过空循环进行延时通过空循环进行延时 if(n=10) printf(MyTask Suspended!n); n = 0; OSTaskSuspend(OS_PRIO_SELF); void YourTask(void *pdata) while(1) printf(This is YourTask!n); Beep(4000, 20); m+; /通过空循环进行延时通过空循环进行延时 if(m=10) printf(MyTask Resumed!n); m = 0; OSTaskResume(5); OSTaskResume(5) 恢复优恢复优先级
37、为先级为5的任务的任务MyTask,MyTask进入就绪状态,由进入就绪状态,由于其优先级高过当前任务于其优先级高过当前任务YourTask,所以通过任务,所以通过任务调度进入运行状态调度进入运行状态 思考题思考题如何通过任务的挂起和恢复实现两个任务的交替执如何通过任务的挂起和恢复实现两个任务的交替执行?比如实现播放两只老虎任务和播放生日快乐任行?比如实现播放两只老虎任务和播放生日快乐任务的交替执行,以达到务的交替执行,以达到一唱一和一唱一和的效果?的效果?六、任务删除六、任务删除所谓删除一个任务,就是把任务置于休眠状态,具所谓删除一个任务,就是把任务置于休眠状态,具体的做法就是,把当初分配给该任务的任务控制块体的做法就是,把当初分配给该任务的任务控制块从任务控制块链表中删除,并归还给空任务控制块从任务控制块链表中删除,并归还给空任务控制块链表,然后就绪任务表中把该任务的就绪状态位置链表,然后就绪任务表中把该任务的就绪状态位置0.删除一个任务,并不是说任务的代码被删除了,只删除一个任务,并不是说任务的代码被删除了,只是任务的代码不能被是任务的代码不能被C/OS_II的内核管理和调用。的内核管理和调用。休眠状态休眠状态就绪状态就绪状态OSTaskCreate()OSTaskDelete()运行状态运行状态OSTaskDelete(OS_PRIO_SELF
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 营销业务办理管理办法
- 营销员培训管理办法
- 衣服陈列摆放管理办法
- 装修样式管理办法细则
- 中信证券授权管理办法
- 电机原材料管理办法
- 营地建设安全管理办法
- 胭脂虫生态管理办法
- 聘用教练员管理办法
- 管理办法里管理原则
- 第46届世界技能大赛贵州省选拔赛美容技术文件
- T-BSRS 128-2024 核医学放射性废液快速处理技术要求
- 北京利达主机JB-QB-LD128E(Q)
- 《血小板功能障碍与血栓形成》课件
- 《融资攻略》课件
- TCTBA 005-2024 TCECA-G 0326-2024 合同能源管理招标规范 轨道交通
- 火灾救援中的心理辅导与应对策略
- 《陕西省分布的国家重点保护野生植物名录》
- 2025年国网数科控股公司招聘高校毕业生37人(第一批)高频重点提升(共500题)附带答案详解
- 食管肿瘤护理查房
- 项目质量保证措施及进度保证措施
评论
0/150
提交评论