嵌入式操作系统内核原理和开发(线程状态)从第一篇的os博客以来,谈了很多内容,有中断、切换、调度、内存、互斥和延时等等,但是线程的状态却没有涉及到,今天我们要好好说一说
说到线程的状态,按照一般的说法,主要包括就绪、延时、阻塞、阻塞超时四个状态
如果线程没有死亡的话,那么这几个状态也够用了,但是我们后来发现可能需要对某些线程进行挂起处理,这可能是出现了故障或者是为了调试使用
因此,除了上面的四个状态,我们还要补充对应的四个挂起状态,分别是挂起、延时挂起、阻塞挂起、阻塞延时挂起
说到了线程状态,下面我们就看看常见的线程处理函数有哪些,无外乎线程创建、线程延时、线程挂起、线程恢复和线程删除等等
RAW_U16raw_task_create(RAW_TASK_OBJ*task_obj,RAW_U8*task_name,RAW_VOID*task_arg,RAW_U8task_prio,RAW_U16time_slice,PORT_STACK*task_stack_base,RAW_U32stack_size,RAW_TASK_ENTRYtask_entry,RAW_U8auto_start){#if(RAW_TASK_STACK_CHECK>0)PORT_STACK*p_stack;RAW_U32i;#endifRAW_SR_ALLOC();#if(RAW_TASK_FUNCTION_CHECK>0)if(task_obj==0){returnRAW_NULL_OBJECT;}if(task_prio>=CONFIG_RAW_PRIO_MAX){returnRAW_BYOND_MAX_PRIORITY;}if(task_stack_base==0){returnRAW_NULL_POINTER;}if(task_entry==0){returnRAW_NULL_POINTER;}