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

📄 jwl-gtf_tcb.h

📁 基于arm核的RTOS
💻 H
字号:
/********************************************************************************************************
*                                                JWL-GTF						*
*                                           实时多任务操作系统						*
*					     								*
*      				              作者:JWL-GTF			                        *
*  					     日期:2004/03/18                                            *
*					 修改日期:2004/04/01						*
*                                       								*
*                                       功能说明:任务的相关块的定义					*
*********************************************************************************************************/
#include "JWL-GTF.H"

/*调度器是否调度*/
jwl_gtf_u8	jwl_gtf_TaskSchEnable;					/*为0则调度,否则不能调度*/

/*任务ID号*/
jwl_gtf_u16	jwl_gtf_IDNext;						/*下一个任务ID号*/

/*最大任务数*/
jwl_gtf_u16	jwl_gtf_Task_Max=jwl_gtf_MaxTask;			/*最大任务数*/

/*任务是否可相同的优先级*/
#define	jwl_gtf_SchPolicy	jwl_gtf_BitSchEnable			/*调度策略*/

/*同优先级任务处理方式*/
#if jwl_gtf_SchPolicy==jwl_gtf_MulSchEnable
jwl_gtf_bool	jwl_gtf_MulSchMethod=jwl_gtf_TaskFIFO;			/*相优先级任务处理规则*/
#endif

/*超时时间相同等待方式*/
bool_gtf_bool	jwl_gtf_TaskWaitMethod=jwl_gtf_TaskWaitFIFO;		/*等待方式*/

/*所有无事件被挂任务是否可以取消*/
#define jwl_gtf_ResumeAllTask	jwl_gtf_True				/*可以取消*/

/*JWL-GTF 任务块*/
typedef struct
{
	jwl_gtf_u16   	jwl_gtf_TaskName[jwl_gtf_NameMaxLen];		/*任务名字长度*/
	jwl_gtf_u8   	jwl_gtf_TaskID;					/*任务ID号,是由系统分配,且唯一的*/
	jwl_gtf_u8   	jwl_gtf_TaskPro;				/*任务优先级*/
	jwl_gtf_bool	jwl_gtf_TaskStatus;				/*任务状态*/
	jwl_gtf_u16	jwl_gtf_TimeOut;				/*超时时间*/
	jwl_gtf_s8	jwl_gtf_RetCode;				/*唤醒时返回码*/
	
#if jwl_gtf_SchPolicy==jwl_gtf_MulSchEnable
	jwl_gtf_u16	jwl_gtf_MulTaskC;				/*同优先级运行时间计数*/
	jwl_gtf_List	*jwl_gtf_SameProiLink;				/*同优先级链表指针*/
#endif
	jwl_gtf_List	*jwl_gtf_Link;					/*所有任务链接指针,按优先级的高低顺序排列*/
	jwl_gtf_List	*jwl_gtf_WaitTLink;				/*超时链表*/
#if  jwl_gtf_ResumeAllTask==jwl_gtf_True
	jwl_gtf_List    *jwl_gtf_HupUpLink;				/*非事件挂起队列指针*/
#endif
	
#if Mutex||ConVar
	jwl_gtf_List	*jwl_gtf_EvenLink;				/*事件链表*/
#endif
	
#if	Mutex
	jwl_gtf_Mutex	*jwl_gtf_Mutex;					/*互斥指针*/
#endif

#if	ConVar
	jwl_gtf_ConVar	*jwl_gtf_ConVar;				/*信号量指针*/
#endif

	jwl_gtf_void	(*jwl_gtf_task)(jwl_gtf_void *);		/*进程入口函数*/
	jwl_gtf_void    *jwl_gtf_param;					/*进程入口参数,没有参数为jwl_gtf_NULL*/
	jwl_gtf_void	*jwl_gtf_PrivateDate;				/*任务私有数据指针*/
	jwl_gtf_reg	*jwl_gtf_Taskstack;				/*任务堆栈*/
}jwl_gtf_TaskCB;


/*空闲态任务指针*/
jwl_gtf_TaskCB	*jwl_gtf_TaskFree;					/*空闲态链表指针*/

/*当前运行任务指针*/
jwl_gtf_TaskCB	*jwl_gtf_TaskRun;					/*运行任务指针*/

/*优先级任务指针*/
jwl_gtf_TaskCB	*jwl_gtf_TaskRDFirst;					/*态链表指针头*/
jwl_gtf_TaskCB	*jwl_gtf_TaskRDMiddle;					/*态链表中间指针*/
jwl_gtf_TaskCB	*jwl_gtf_TaskRDLast;					/*态链表尾部指针*/

/*就绪态线程数目*/
jwl_gtf_u8	jwl_gtf_ReadyCounter;					/*就绪态计数,在jwl_gtf_TaskRDMiddle前插入加1,否则减1*/

#if  jwl_gtf_ResumeAllTask==jwl_gtf_True
/*强制挂起链表*/
jwl_gtf_TaskCB	*jwl_gtf_HupLink;					/*强制挂起,不是事件挂起*/
#endif

/*超时链表*/
jwl_gtf_TaskCB	*jwl_gtf_TOutLink;					/*超时链表*/

⌨️ 快捷键说明

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