📄 main.c
字号:
//---------------------------------------------------------------------------------
//
// Copyright (C) SEIKO EPSON CORP. 2004
//
// GROUP : SEE LSI
// FILE : main.c
// MODULE :
// Function description :
// Revision history :
// Date userName Description
// 2004/05/24 David.ji start
//
// Notes :
//
//---------------------------------------------------------------------------------
//---------------------------------------------------------------------------------
// Include files (#include)
//---------------------------------------------------------------------------------
#include "ros33.h" // ROS header
#include "sysGUI.h"
#include "comFS.h"
#include "usbfw_if.h"
#include "main.h"
//---------------------------------------------------------------------------------
// static variables
//---------------------------------------------------------------------------------
static UB MainTsk_Stack[STACK_SIZE];
static UB IdleTsk_Stack[STACK_SIZE];
//---------------------------------------------------------------------------------
// Function prototypes
//---------------------------------------------------------------------------------
INT main();
extern void fnGUI_Main();
extern void fnGuiTM_Init();
extern char* gSpkParams;
extern T_FS_FILECTL stFileCtl;
extern unsigned char ubPlayerStatus;
//---------------------------------------------------------------------------------
// Function name : idle_task
// Function description :
//
//
// Return value :void
//
// Global variable :void
//---------------------------------------------------------------------------------
T_MSG IdleMsg;
void idle_task()
{
T_MSG_DATA MsgData;
MsgData.taskId = ID_Tsk_Idle;
do
{
asm("pushn %r0
ld.w %r0, %psr
xand %r0, 0xff
xoor %r0, 0x410
ld.w %psr, %r0
popn %r0"
);
if( ubPlayerStatus == PY_PLAY)
{
if (!SpkIsRunning(gSpkParams))
{
*(volatile unsigned char*)0x402dd |= 0x04;
free(stFileCtl.pFileData);
ubPlayerStatus = PY_IDLE;
}
}
asm("pushn %r0
ld.w %r0, %psr
xand %r0, 0xff
xoor %r0, 0x10
ld.w %psr, %r0
popn %r0"
);
if(g_UsbIFReq.ubReqFlg == USBFW_FLAG_ON)
{
if (g_UsbIFReq.ubReqCmd == USBFW_CMD_ATTACH)
{
MsgData.command = USB_ATTACH;
memcpy((UB*)IdleMsg.msgcont,(UB*)&MsgData,10);
IdleMsg.pNxt = NULL;
fsnd_msg(ID_MBX_GuiMain, &IdleMsg);
}
else
if(g_UsbIFReq.ubReqCmd == USBFW_CMD_DETACH)
{
MsgData.command = USB_DETACH;
memcpy((UB*)IdleMsg.msgcont,(UB*)&MsgData,10);
IdleMsg.pNxt = NULL;
fsnd_msg(ID_MBX_GuiMain, &IdleMsg);
}
}
}
while(1);
}
//---------------------------------------------------------------------------------
// Function name :main
// Function description :test all the function of GPC33_SEE
//
// Parameters
// Input :void
// Output :void
// I/O :void
//
// Return value :void
//
// Global variable :void
//---------------------------------------------------------------------------------
INT main(){
sys_ini();
//start gui timer
fnGuiTM_Init();
// create task
vcre_tsk(ID_Tsk_GuiMain, fnGUI_Main, 1, (UW)&(MainTsk_Stack[STACK_SIZE]));
vcre_tsk(ID_Tsk_Idle, idle_task, 8, (UW)&(IdleTsk_Stack[STACK_SIZE]));
/* Start task */
sta_tsk(ID_Tsk_GuiMain, 0);
sta_tsk(ID_Tsk_Idle, 0);
/*start system*/
sys_sta();
return 1;
}
//********************************************************************
// Send Message to Mailbox and set the flag GUI_EVENTID (1)
// [Parameters]
// ID mbxid MailboxID
// T_MSG *pk_msg Start Address of Message Packet
// [Return Parameters]
// ER ercd ErrorCode
//********************************************************************
ER fsnd_msg(ID mbxid, T_MSG* pk_msg)
{
int er;
er = snd_msg(mbxid, pk_msg);
if( er== E_OK)
set_flg(GUI_EVENTID, 0x1000);
return er;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -