📄 taskmain.c
字号:
/*******************************************************************************
*
* file name : main.c
*
* Copyright (C) SEIKO EPSON CORP. 2001
*
* This file implement PDA CELLULAR SYSTEM TASK
*
* Revision History
*
* 2001/05/23 Leon Zhong Start
* 2001/10/9 Pessia New taskmain()
********************************************************************************/
#include <string.h>
#include <hardware\drball\m68328.h>
#include <kernel\ros33\ros33.h>
#include <sys\systsk.h>
#include <sys\taskdsp.h>
#include <sys\sysusr.h>
#include <sys\lmalloc.h>
#include <sys\systmr.h>
DWORD sys_stk[ STACK_SIZE*4 ];
//DWORD tmr_stk[ STACK_SIZE ];
DWORD uart_stk[ STACK_SIZE*4 ];
DWORD at_stk[ STACK_SIZE*4 ];
DWORD idle_stk[ STACK_SIZE ];
extern BYTE array_memory[Heapsize];
extern void AsixTaskInit( void );
extern void StartService( TASKDESCRIPTIONLIST *desplst );
extern void InitialLCD( void );
extern void InitROM( void );
extern void InitUart( void );
extern void Idle( void );
extern void SysDevTableInit( void );
extern void Systask( void );
//extern void timer_task( void );
extern TASKDESCRIPTIONLIST TimerTskDespLst;
extern TASKDESCRIPTIONLIST UartServerDespLst;
extern TASKDESCRIPTIONLIST AtServerDespLst;
extern TASKDESCRIPTIONLIST PhoneAlarmTskDespLst;
extern TASKDESCRIPTIONLIST AppointAlarmTskDespLst;
extern TASKDESCRIPTIONLIST SMSAlarmTskDespLst;
extern TASKDESCRIPTIONLIST SysAlarmTskDespLst;
extern TASKDESCRIPTIONLIST AudioSvrTskDespLst;
extern BYTE SystemStart;
void idle_task( void )
{
extern void idle_process( void );
int i = 0;
while(1) {
#ifndef SIM_ON_PC
// if( SystemStart )
// idle_process();
// asm("halt");
i = i ? i-- : i++;
#else
Idle();
#endif
}
}
void taskmain()
{
unsigned long i;
memset( array_memory, 0xcc, Heapsize );
#if ENABLE_SYSMSG_STATISTIC
memset( gSysMsgSta, 0, sizeof(SYSMSG_STAT) * MLBX_NUM );
#endif
#if ENABLE_SYSFLG_STATISTIC
memset( gSysFlgSta, 0, sizeof(SYSFLG_STAT) * FLG_NUM );
#endif
#if ENABLE_SYSCALL_STATISTIC
memset( gSyscallSta, 0, sizeof(SYSCALL_STAT) * 63 );
#endif
sys_ini();
#ifndef SIM_ON_PC
timer_ini();
/* start running rtc */
init_rtc();
set_rtc(RTCIENR_SAM3);
run_rtc();
#endif
/* initial gloable arrays */
SysTcbTableInit();
// Initial LCD
InitialLCD( );
InitUart();
/* Init table of device manage table */
SysDevTableInit();
InitROM();
/* create system and service task */
vcre_tsk( SYSTASK_ID, Systask, SYSTASK_PRI, (DWORD)&sys_stk[STACK_SIZE] );
gSysTcbTbl[SYSTASK_ID-1].status = DORMANT;
vcre_tsk( IDLETASK_ID, idle_task, IDLETASK_PRI, (DWORD)&idle_stk[STACK_SIZE] );
gSysTcbTbl[IDLETASK_ID-1].status = DORMANT;
/* create all application task and initial systcb table */
AsixTaskInit();
sta_tsk(IDLETASK_ID, 0); /* start idle task */
gSysTcbTbl[IDLETASK_ID-1].status = RUNNING;
sta_tsk(SYSTASK_ID, 0); /* start system task */
gSysTcbTbl[SYSTASK_ID-1].status = RUNNING;
StartService( &SysAlarmTskDespLst ); // start system alarm service task
StartService( &TimerTskDespLst ); // start timer task
StartService( &UartServerDespLst ); // start uart service task
StartService( &AudioSvrTskDespLst ); // start audio service task
StartService( &AtServerDespLst ); // start AT service task
//StartService( &PhoneAlarmTskDespLst ); // start phone alarm service task
//StartService( &AppointAlarmTskDespLst ); // start phone alarm service task
//StartService( &SMSAlarmTskDespLst ); // start sms alarm service task
sys_sta();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -