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

📄 taskdsp.c

📁 一个操作系统源代码 用于嵌入式设备 在Vc++环境下仿真 成功移植到多款处理器上
💻 C
字号:
#include <string.h>
#include <sys\taskdsp.h>
#include <sys\sysusr.h>
#include <sys\devmng.h>
#include <sys\gpc.h>


#define LCDWIDTH		PHY_LCD_W
#define LCDHEIGHT		PHY_LCD_H

TASKDESCRIPTION	gTskDspTbl[TASKNUM];/* Global Task Description Table */

extern void AsixShell(void);
extern void shell_task(void);

/********************************************************************************
 *	Function Name: 	SysTableInit	
 *	Param in:		void
 *  Result code:	void
 *	Description:	initial two gloable arrays : gTskDspTbl & gDevUseTbl
 ********************************************************************************/	
void SysTableInit(void)
{
	int i;
	
	memset(gTskDspTbl, 0, sizeof(TASKDESCRIPTION)*TASKNUM);
	
	for(i=0;i<TASKNUM;i++)
	{
		if(i < TASKNUM-1)
			gTskDspTbl[i].next = &gTskDspTbl[i+1];
		if( i>0 )
			gTskDspTbl[i].prev = &gTskDspTbl[i-1];
	}
	gTskDspTbl[TASKNUM-1].next = NULL;
	gTskDspTbl[0].prev = NULL;
	
/* Global Task Description Table */	
	/* Systask */
	gTskDspTbl[SYSTASK_ID-1].scr_w = 0;
	gTskDspTbl[SYSTASK_ID-1].scr_h = 0;
	gTskDspTbl[SYSTASK_ID-1].pri = SYSTASK_PRI;
	gTskDspTbl[SYSTASK_ID-1].entry = Systask;
			
	/* Timer Task */
	gTskDspTbl[TIMERTASK_ID-1].scr_w = 0;
	gTskDspTbl[TIMERTASK_ID-1].scr_h = 0;
	gTskDspTbl[TIMERTASK_ID-1].pri = TIMERTASK_PRI;
	gTskDspTbl[TIMERTASK_ID-1].entry = timer_task;

	/* SRUART Task */
//	gTskDspTbl[SRUART_TASK_ID-1].scr_w = 0;
//	gTskDspTbl[SRUART_TASK_ID-1].scr_h = 0;
//	gTskDspTbl[SRUART_TASK_ID-1].pri = PSST_PRI;
//	gTskDspTbl[SRUART_TASK_ID-1].entry = SRUART_task;

	/* SWUART Task */
//	gTskDspTbl[SWUART_TASK_ID-1].scr_w = 0;
//	gTskDspTbl[SWUART_TASK_ID-1].scr_h = 0;
//	gTskDspTbl[SWUART_TASK_ID-1].pri = PSST_PRI;
//	gTskDspTbl[SWUART_TASK_ID-1].entry = SWUART_task;
		
	/* Shell Task */
	gTskDspTbl[SHELL_ID-1].scr_w = PHY_LCD_W;
	gTskDspTbl[SHELL_ID-1].scr_h = PHY_LCD_H;
	gTskDspTbl[SHELL_ID-1].pri = SHELL_PRI;
	gTskDspTbl[SHELL_ID-1].entry = AsixShell;//shell_task;
	gTskDspTbl[SHELL_ID-1].name = "shell";
	
/*	// Task A
	gTskDspTbl[TASKA_ID-1].scr_w = PHY_LCD_W;
	gTskDspTbl[TASKA_ID-1].scr_h = PHY_LCD_H;
	gTskDspTbl[TASKA_ID-1].pri = TASKA_PRI;
	gTskDspTbl[TASKA_ID-1].entry = a_task;
	gTskDspTbl[TASKA_ID-1].name = "taska";
		
	// Task B
	gTskDspTbl[TASKB_ID-1].scr_w = PHY_LCD_W;
	gTskDspTbl[TASKB_ID-1].scr_h = PHY_LCD_H;
	gTskDspTbl[TASKB_ID-1].pri = TASKB_PRI;
	gTskDspTbl[TASKB_ID-1].entry = b_task;
	gTskDspTbl[TASKB_ID-1].name = "taskb";
			
	// Task C 
	gTskDspTbl[TASKC_ID-1].scr_w = PHY_LCD_W;
	gTskDspTbl[TASKC_ID-1].scr_h = PHY_LCD_H;
	gTskDspTbl[TASKC_ID-1].pri = TASKC_PRI;
	gTskDspTbl[TASKC_ID-1].entry = c_task;
	gTskDspTbl[TASKC_ID-1].name = "taskc";
*/			
	/* Idle Task  */
	gTskDspTbl[IDLETASK_ID-1].scr_w = 0;
	gTskDspTbl[IDLETASK_ID-1].scr_h = 0;
	gTskDspTbl[IDLETASK_ID-1].pri = IDLETASK_PRI;
	gTskDspTbl[IDLETASK_ID-1].entry = idle_task;	
			
/* Global Device Use Table */
	/* LCD Screen */
	/* Keyboard */
	/* Touch Panel */
		/* because the three devices are only owned by Current Screen Owner, 
		 * we do not init them.											 */
	
	/* AT */
		/* now, no task use this device, so it will not be initialed. */
	
}

⌨️ 快捷键说明

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