main.c

来自「ucosii 系统在s3c210系板上的成功移植 并有建立系统任务的应用示例」· C语言 代码 · 共 119 行

C
119
字号
/*
;************************************************************************************************************
;*				        				北京精仪达盛科技有限公司
;*                                     	     研    发    部
;*
;*                                 	     http://www.techshine.com
;*
;*--------------------------------------------- 文件信息 ----------------------------------------------------                                      
;*
;* 文件名称 : Main.c	
;* 文件功能 : 该文件为S3C2410硬件平台主程序。
;* 补充说明 : 
;*-------------------------------------------- 最新版本信息 -------------------------------------------------
;* 修改作者 : ARM开发小组
;* 修改日期 : 2005/08/1
;* 版本声明 : V1.0.1
;*-------------------------------------------- 历史版本信息 -------------------------------------------------
;* 文件作者 : ARM开发小组
;* 创建日期 : 2004/04/20
;* 版本声明 : v1.0.0
;*-----------------------------------------------------------------------------------------------------------
;*-----------------------------------------------------------------------------------------------------------
;************************************************************************************************************
;*/

#include <string.h>
//#include "includes.h"
//#include "UseTask.h"
#include "ucos_ii.h"
#include "..\INC\config.h"

 #define  TASK_STK_SIZE 1024//256                      /* Size of each task's stacks (# of WORDs) */
#define  NO_TASKS           3                   /* Number of identical tasks */

OS_STK   TaskStk[NO_TASKS][TASK_STK_SIZE];      /* Tasks stacks */
OS_STK   TaskStartStk[TASK_STK_SIZE];

char     TaskData[NO_TASKS];                    /* Parameters to pass to each task */
void TaskStart(void *data);
void TaskStart_Mask1(void *data);        //*data 用来保证数据同步。
void TaskStart_Mask2(void *data);
void TaskStart_Mask3(void *data);
void TaskStart_Mask5(void *data);

void TaskStart(void *data)
{   
#if OS_TASK_STAT_EN  
    OSStatInit();                           /* Initialize uC/OS-II's statistics */
#endif    
    //SysDataInit(); 
    TaskData[0] = '1';
    TaskData[1] = '2';
    TaskData[2] = '3';
    OSTaskCreate(TaskStart_Mask1 , (void *)&TaskData[1], (void *)&TaskStk[1][TASK_STK_SIZE - 1], 2);
    OSTaskCreate(TaskStart_Mask2, (void *)&TaskData[2], (void *)&TaskStk[2][TASK_STK_SIZE - 1], 3);
    //CONSOL_Printf("TaskStart is starting !!!\n");
    while(1)
    {
     //CONSOL_Printf("TaskStart is running !!!\n");
     rGPFDAT ^= 0x90;   // alternately light led
     OSTimeDlyHMSM(0, 0, 0, 200);      /* Wait one second */
    
    };   
}
void TaskStart_Mask1(void *data)                        //备用线程
{     
	uartdma_Task();   
}
void TaskStart_Mask2(void *data)                    //用来执行GUI相关函数和电机控制
{
      //CONSOL_Printf("GUI Task is running !!!\n");  
	  //GUI_Init();
	  //GUI_Task();   	      
}
void TaskStart_Mask3(void *data)                    //用来执行触摸屏和GUI的同步
{
      //Syn_Task();
}
void TaskStart_Mask5(void *data)                   
{ 
    while(1)
    {
       //CONSOL_Printf("Task5 is running !!!\n");
       OSTimeDly(100);
    }
}

/* Global functions */
void APP_vMain (void)
{
        //CONSOL_Printf("APP_vMain is starting !!!\n");  
        OSInit();                               /* Initialize uC/OS-II                                      */
        OSTaskCreate(TaskStart, (void *)0, (void *)&TaskStartStk[TASK_STK_SIZE - 1], 0);
        FRMWRK_vStartTicker(OS_TICKS_PER_SEC);  /* os_cfg.h */
        OSStart();                              /* 启动多任务内核 */
}

void Main(void){

	//Target_Init();
	MMU_Init();
	ChangeClockDivider(1,1);          // 1:2:4    
	ChangeMPllValue(0xa1,0x3,0x1);    // FCLK=202.8MHz  
	Port_Init();
    Isr_Init();
    pISR_IRQ = (U32)UCOS_IRQHandler;		//Reregister IRQ interrupt service
    
    APP_vMain();
    //uartdma_Task();
	Delay(1000);
//*************************************************/
	while(1)
	{
		/*while((rDSTAT0 & 0xfffff) == 0){
		rDMASKTRIG0 = (1<<1); 	//DMA0En
		}*/
	}
}

⌨️ 快捷键说明

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