📄 ap_start.c
字号:
/*
*******************************************************************************
* ACTOS AP
* start ap of sdk 3.0
*
* (c) Copyright, Actions Co,Ld.
* All Right Reserved
*
* File: AP_Start.c
* By : wurui
* Version: 1> v1.00 first version 2005-9-19 8:28
*
* $Id: AP_Start.c,v 1.10 2005/12/30 01:01:53 wurui Exp $
*******************************************************************************
*/
#include "declare.h"
int IdleCtr = 0;
void GUI_Task();
void GUI_Idle();
char RTCSchTimer;
OS_EVENT *GUIToMainWindow = 0;
OS_EVENT *GUIToEBookWindow = 0;
OS_EVENT *Engine_In = 0;
OS_EVENT *Engine_Out = 0;
/*void TaskMessageSender(OS_EVENT *MessageAccepter,msg_t *message)
{
INT8U err;
err = MYOSQPost(MessageAccepter,message);
}*/
void cbBackgroundWin(WM_MESSAGE* pMsg)
{
switch (pMsg->MsgId)
{
case WM_PAINT:
GUI_SetBkColor(GUI_LIGHTBLUE);
GUI_Clear();
break;
}
WM_DefaultProc(pMsg);
}
void main()
{
#ifndef WIN32
OS_ENTER_CRITICAL();
output8(REG27_MASTER_IRQ_ENABLE,input8(REG27_MASTER_IRQ_ENABLE)&0x0df); //usb退出时,没关rtc中断
TM_Init();
IRQ_intercept((int)&KeyISR,IRQ_KEY);
RTCSchTimer = SetSystemTimer(&RTCSchISR, 1);/////////////////////////////////////////////////////
OSInit();
DRV_Install(DRV_KY,0);
DRV_Install(DRV_UI,0);
DRV_Install(DRV_GUI,0);
DRV_Install(DRV_FS,0);
// DRV_Install(DRV_STG,0); // nor flash.
DRV_Install(DRV_SDRAM,0);
// DRV_Install(DRV_IDE,0);
GetSysMsg();
#endif
FS_Init();
GUI_Init();
GUI_SetFont(&GUI_DUMMY);
GUI_SetColor(GUI_RED);
GUI_SetBkColorIndex(GUI_LIGHTBLUE);
WM_SetCallback(WM_HBKWIN, cbBackgroundWin);
#ifdef WIN32
//打开字库文件
if (OpenHZ("D:\\sdk_i_80h\\tools\\hzk16")==-1)
{
GUI_DispStringAt("open FONT err",10,10);
}
if (OpenRES("D:\\sdk_i_80h\\tools\\UI30.RES") == -1)
{
GUI_DispStringAt("open RES err",10,10);
}
#else
{
char string[13];
string[0] = 'U';
string[1] = 'I';
string[2] = '3';
string[3] = '0';
string[4] = '.';
string[5] = 'R';
string[6] = 'E';
string[7] = 'S';
string[8] = 0;
if (OpenRES(string) == -1)
{
string[0] = 'o';
string[1] = 'p';
string[2] = 'e';
string[3] = 'n';
string[4] = ' ';
string[5] = 'R';
string[6] = 'E';
string[7] = 'S';
string[8] = ' ';
string[9] = 'e';
string[10] = 'r';
string[11] = 'r';
string[12] = 0;
GUI_DispStringAt(string,10,10);
}
}
#endif
//GUIToMainWindow = MYOSQCreate((msg_t *)0,MAXQUEUELENGTH);
//GUIToEBookWindow = (OS_EVENT*)MYOSQCreate(ComMsg3,MAXQUEUELENGTH);
//GUIToMusicWindow = MYOSQCreate((msg_t *)0,MAXQUEUELENGTH);
//GUIToMainWindow = (OS_EVENT*)OSQCreate(ComMsg1,9);
//GUIToMusicWindow = (OS_EVENT*)OSQCreate(ComMsg2,9);
//GUIToEBookWindow = (OS_EVENT*)OSQCreate(ComMsg3,9);
//WM_SetCallback(WM_HBKWIN, cbBackgroundWin); /* Set callback for background window */
#ifdef WIN32
CREATE_TASK(&aTCB[3], "GUI_Idle", GUI_Idle, 7, Stack_3);
CREATE_TASK(&aTCB[2], "GUI_TASK", GUI_Task, 1, Stack_2);
MainTaskCreate();
EBookTaskCreate();
//MusicTaskCreate();
//PlayTaskCreate();
#else
OSTaskCreate((void(*)(void *))(long)GUI_Idle, (void *)0x0000, (void *)IDLE_SPACE, IDEL_PRIO, IDLE_ID);
OSTaskCreate((void(*)(void *))(long)GUI_Task, (void *)0x0000, (void *)GUI_SPACE, GUI_PRIO, GUI_ID);
MainTaskCreate();
//OSTaskCreate((void(*)(void *))(long)test, (void *)0x0000, (void *)PLAYER_ENGINE_SPACE, PLAYER_ENGINE_PRIO, PLAYER_ENGINE_ID);
#endif
DRV_Install(DRV_IDE,0);
OS_EXIT_CRITICAL();
OSStart();
}
void GUI_Idle()
{
while(1)
{
enable_interrupt();
IdleCtr ++;
OS_Sched();
}
}
void GUI_Task()
{
int speed = 0;
#ifndef WIN32
output8(REG27_MASTER_IRQ_ENABLE,input8(REG27_MASTER_IRQ_ENABLE)|0x20);
#endif
//enable_interrupt();
//Enable_RTC_INT();
while(1)
{
GUI_Exec(); /* Do the background work ... Update windows etc.) */
//FB_UpdateScreen();
#ifndef WIN32
speed++;
#endif
OSTimeDly(5);
}
}
void DelGUITask()
{
INT8U err;
for(;;)
{
err = OSTaskDel(GUI_PRIO);
if(err == OS_NO_ERR || err == OS_TASK_DEL_ERR)
break;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -