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 + -
显示快捷键?