300 lines
9.3 KiB
C
Executable File
300 lines
9.3 KiB
C
Executable File
#ifndef _SYS_MODE
|
|
#define _SYS_MODE
|
|
|
|
//#include "PrjInc.h"
|
|
|
|
|
|
extern UINT32 _SECTION(".kercfg_data") USERINIT_FLG_ID;
|
|
extern UINT32 _SECTION(".kercfg_data") USEREXIT_FLG_ID;
|
|
extern UINT32 _SECTION(".kercfg_data") USERPROC2_ID;
|
|
extern UINT32 _SECTION(".kercfg_data") USERPROC3_ID;
|
|
extern UINT32 _SECTION(".kercfg_data") USERPROC4_ID;
|
|
extern UINT32 _SECTION(".kercfg_data") USERPROC5_ID;
|
|
extern UINT32 _SECTION(".kercfg_data") USERPROC6_ID;
|
|
extern UINT32 _SECTION(".kercfg_data") USERPROC7_ID;
|
|
extern UINT32 _SECTION(".kercfg_data") USERPROC8_ID;
|
|
|
|
extern void UserMainProc_InstallID(void) _SECTION(".kercfg_text");
|
|
|
|
extern void SystemInit(void);
|
|
extern void SystemInit2(void);
|
|
extern void SystemInit3(void);
|
|
extern void SystemInit4(void);
|
|
extern void SystemInit5(void);
|
|
extern void SystemInit6(void);
|
|
extern void SystemInit7(void);
|
|
extern void SystemInit8(void);
|
|
|
|
extern void SystemExit(void);
|
|
extern void SystemExit2(void);
|
|
extern void SystemExit3(void);
|
|
extern void SystemExit4(void);
|
|
extern void SystemExit5(void);
|
|
extern void SystemExit6(void);
|
|
extern void SystemExit7(void);
|
|
extern void SystemExit8(void);
|
|
|
|
|
|
|
|
|
|
#if 1
|
|
//--------------------------------------------------------------------------------------
|
|
// Flow: Power On/Off
|
|
//--------------------------------------------------------------------------------------
|
|
//
|
|
//FLG_ID_INIT (flag for control init tasks)
|
|
//
|
|
#define FLGINIT_MASKALL 0xFFFFFFFF
|
|
#define FLGINIT_BEGIN 0x10000000
|
|
#define FLGINIT_BEGIN2 0x20000000
|
|
#define FLGINIT_BEGIN3 0x40000000
|
|
#define FLGINIT_BEGIN4 0x80000000
|
|
#define FLGINIT_BEGIN5 0x01000000
|
|
#define FLGINIT_BEGIN6 0x02000000
|
|
#define FLGINIT_BEGIN7 0x04000000
|
|
#define FLGINIT_BEGIN8 0x08000000
|
|
#define FLGINIT_END 0x00100000
|
|
#define FLGINIT_END2 0x00200000
|
|
#define FLGINIT_END3 0x00400000
|
|
#define FLGINIT_END4 0x00800000
|
|
#define FLGINIT_END5 0x00010000
|
|
#define FLGINIT_END6 0x00020000
|
|
#define FLGINIT_END7 0x00040000
|
|
#define FLGINIT_END8 0x00080000
|
|
/*
|
|
#define FLGINIT_STRGATH 0x00000200
|
|
#define FLGINIT_MODE 0x00000100
|
|
#define FLGINIT_MOUNTPS 0x00000010
|
|
#define FLGINIT_LOADPS 0x00000020
|
|
#define FLGINIT_MOUNTFS 0x00000040
|
|
#define FLGINIT_LOADFS 0x00000080
|
|
#define FLGINIT_MOUNTFWS 0x00000001
|
|
#define FLGINIT_LOADCODE1 0x00000002
|
|
#define FLGINIT_LOADCODE2 0x00000004
|
|
#define FLGINIT_LOADCODE3 0x00000008
|
|
*/
|
|
#define INIT_SETFLAG(flag) \
|
|
{set_flg(USERINIT_FLG_ID, (flag));}
|
|
#define INIT_CLRFLAG(flag) \
|
|
{clr_flg(USERINIT_FLG_ID, (flag));}
|
|
#define INIT_WAITFLAG(flag) \
|
|
{FLGPTN uiInitFlag; wai_flg(&uiInitFlag, USERINIT_FLG_ID, (flag), TWF_ORW);}
|
|
#define INIT_CHKFLAG(flag) kchk_flg(USERINIT_FLG_ID, (flag))
|
|
|
|
|
|
//
|
|
//FLG_ID_EXIT (flag for control init tasks)
|
|
//
|
|
#define FLGEXIT_MASKALL 0xFFFFFFFF
|
|
#define FLGEXIT_BEGIN 0x10000000
|
|
#define FLGEXIT_BEGIN2 0x20000000
|
|
#define FLGEXIT_BEGIN3 0x40000000
|
|
#define FLGEXIT_BEGIN4 0x80000000
|
|
#define FLGEXIT_BEGIN5 0x01000000
|
|
#define FLGEXIT_BEGIN6 0x02000000
|
|
#define FLGEXIT_BEGIN7 0x04000000
|
|
#define FLGEXIT_BEGIN8 0x08000000
|
|
#define FLGEXIT_END 0x00100000
|
|
#define FLGEXIT_END2 0x00200000
|
|
#define FLGEXIT_END3 0x00400000
|
|
#define FLGEXIT_END4 0x00800000
|
|
#define FLGEXIT_END5 0x00010000
|
|
#define FLGEXIT_END6 0x00020000
|
|
#define FLGEXIT_END7 0x00040000
|
|
#define FLGEXIT_END8 0x00080000
|
|
#define EXIT_SETFLAG(flag) \
|
|
{set_flg(USEREXIT_FLG_ID, (flag));}
|
|
#define EXIT_CLRFLAG(flag) \
|
|
{clr_flg(USEREXIT_FLG_ID, (flag));}
|
|
#define EXIT_WAITFLAG(flag) \
|
|
{FLGPTN uiInitFlag; wai_flg(&uiInitFlag, USEREXIT_FLG_ID, (flag), TWF_ORW);}
|
|
|
|
#define SYSTEM_POWERON_NORMAL 0x00
|
|
#define SYSTEM_POWERON_LOWPOWER 0x01
|
|
#define SYSTEM_POWERON_SAFE 0x02
|
|
#define SYSTEM_POWERON_CHARGE 0x03
|
|
|
|
#define SYSTEM_POWEROFF_NORMAL 0x00
|
|
#define SYSTEM_POWEROFF_LOWPOWER 0x01
|
|
#define SYSTEM_POWEROFF_SAFE 0x02
|
|
#define SYSTEM_POWEROFF_CHARGE 0x03
|
|
|
|
#define SYSTEM_PARTIAL_LOAD_DISABLE 0X00
|
|
#define SYSTEM_PARTIAL_LOAD_ENABLE 0X01
|
|
|
|
#endif
|
|
|
|
//////////////////////////////////////////////////////
|
|
|
|
typedef struct _SYS_MODE {
|
|
char *strName;
|
|
void (*pfMode_OnOpen)(void);
|
|
void (*pfMode_OnClose)(void);
|
|
void (*pfMode_OnSleepEnter)(void);
|
|
void (*pfMode_OnSleepLeave)(void);
|
|
void (*pfMode_OnPauseDMA)(void);
|
|
void (*pfMode_OnResumeDMA)(void);
|
|
}
|
|
SYS_MODE;
|
|
|
|
typedef struct _SYS_SUBMODE {
|
|
char *strName;
|
|
void (*pfSubMode_OnOpen)(void);
|
|
void (*pfSubMode_OnClose)(void);
|
|
}
|
|
SYS_SUBMODE;
|
|
|
|
|
|
INT32 System_AddMode(SYS_MODE *pMode);
|
|
INT32 System_AddSubMode(SYS_SUBMODE *pMode);
|
|
SYS_SUBMODE *System_GetSubModeCtrl(void);
|
|
void System_ChangeSubMode(INT32 mode_id);
|
|
void System_Debug_Msg(BOOL bEnable);
|
|
|
|
//////////////////////////////////////////////////////
|
|
|
|
#define SYS_STATE_POWERON 0 //default = SYS_POWERON_NORMAL
|
|
#define SYS_STATE_POWEROFF 1 //default = SYS_POWEROFF_NORMAL
|
|
#define SYS_STATE_CURRMODE 2
|
|
#define SYS_STATE_PREVMODE 3
|
|
#define SYS_STATE_NEXTMODE 4
|
|
#define SYS_STATE_ACTIVE 5
|
|
#define SYS_STATE_SLEEPLEVEL 6
|
|
#define SYS_STATE_CURRSUBMODE 7
|
|
#define SYS_STATE_PREVSUBMODE 8
|
|
#define SYS_STATE_NEXTSUBMODE 9
|
|
#define SYS_STATE_FS 10 // FileSys Status
|
|
#define SYS_STATE_CARD 11 // Card Status
|
|
#define SYS_STATE_MAX 12
|
|
|
|
//SYS_STATE_MODE
|
|
#define SYS_MODE_UNKNOWN ((INT32)-1)
|
|
|
|
//SYS_STATE_POWERON
|
|
#define SYS_POWERON_NORMAL 0x00
|
|
#define SYS_POWERON_LOWPOWER 0x01
|
|
#define SYS_POWERON_SAFE 0x02
|
|
#define SYS_POWERON_CHARGE 0x03
|
|
|
|
//SYS_STATE_POWEROFF
|
|
#define SYS_POWEROFF_NORMAL 0x00
|
|
#define SYS_POWEROFF_LOWPOWER 0x01
|
|
#define SYS_POWEROFF_SAFE 0x02
|
|
#define SYS_POWEROFF_CHARGE 0x03
|
|
#define SYS_POWEROFF_BATTEMPTY 0x04
|
|
#define SYS_POWEROFF_LENSERROR 0x05
|
|
|
|
#define SYS_SUBMODE_NORMAL 0
|
|
|
|
//SYS_STATE_FS
|
|
typedef enum {
|
|
CARD_REMOVED = 0,
|
|
CARD_INSERTED,
|
|
CARD_LOCKED
|
|
} CARD_STATUS;
|
|
|
|
//SYS_STATE_CARD
|
|
typedef enum {
|
|
FS_DISK_ERROR = 0,
|
|
FS_UNKNOWN_FORMAT,
|
|
FS_UNFORMATTED,
|
|
FS_NOT_INIT,
|
|
FS_INIT_OK,
|
|
FS_NUM_FULL
|
|
} FS_STATUS;
|
|
|
|
extern void System_PowerOn(UINT32 pwrOnType);
|
|
extern void System_PowerOff(UINT32 pwrOffType);
|
|
extern void System_ChangeSleep(UINT32 sleep_lv);
|
|
extern void System_ChangeMode(UINT32 mode_id);
|
|
|
|
extern void System_ModeOpen(UINT32 mode_id);
|
|
extern void System_ModeClose(void);
|
|
extern void System_ModeSleepEnter(void);
|
|
extern void System_ModeSleepLeave(void);
|
|
|
|
extern INT32 System_GetState(INT32 state);
|
|
extern void System_SetState(INT32 state, INT32 value);
|
|
|
|
extern void System_ChangeCPUSpeed(int speed_id);
|
|
extern void System_ChangeDMASpeed(int speed_id);
|
|
|
|
//#NT#2016/03/18#Niven Cho -begin
|
|
//#NT#improve the using of gprof
|
|
extern UINT32 System_GetGprofBuffer(UINT32 uiSize);
|
|
//#NT#2016/03/18#Niven Cho -end
|
|
|
|
extern void UserMainProc(void);
|
|
extern void UI_Quit(void);
|
|
extern void UserErrCb(UXUSER_CB_TYPE evt, UINT32 p1, UINT32 p2, UINT32 p3);
|
|
extern void UserCalConsumeFps(UINT32 bEn,UINT32 unit);
|
|
|
|
|
|
|
|
//////////////////////////////////////////////////////
|
|
|
|
extern INT32 System_GetBootFirstMode(void);
|
|
extern void System_OnUsbPreInit(void);
|
|
extern void System_OnPowerPreInit(void);
|
|
|
|
extern void System_OnStrg_DownloadFW(void);
|
|
|
|
extern void System_CPU2_Start(void);
|
|
extern void System_CPU2_Stop(void);
|
|
extern void System_CPU2_WaitReady(void);
|
|
|
|
extern void System_DSP_Start(void);
|
|
extern void System_DSP_WaitReady(void);
|
|
|
|
extern void System_OnTimerInit(void);
|
|
extern void System_OnIPC(void);
|
|
extern void System_OnUctrl(void);
|
|
extern void System_OnStrgInit_EMBMEM(void);
|
|
extern UINT32 System_OnStrgInit_EMBMEM_GetGxStrgType(void);
|
|
extern void System_OnStrgInit_EXMEM(void);
|
|
extern void System_OnStrgInit_FWS(void);
|
|
extern void System_OnStrgInit_FS(void);
|
|
extern void System_OnStrgInit_FS2(void);
|
|
extern void System_OnStrgInit_FS3(void);
|
|
extern void System_OnStrgInit_PS(void);
|
|
extern void System_OnVideoInit(void);
|
|
extern void System_OnVideoInit2(void);
|
|
extern void System_OnVideoInit3(void);
|
|
extern void System_OnAudioInit(void);
|
|
extern void System_OnUsbInit(void);
|
|
extern void System_OnLensInit(void);
|
|
extern void System_OnSensorInit(void);
|
|
extern void System_OnSensorInit2(void);
|
|
extern void System_OnSensorInit3(void);
|
|
extern void System_OnPowerInit(void);
|
|
extern void System_OnInputInit(void);
|
|
extern void System_OnOutputInit(void);
|
|
extern void System_OnBTInit(void);
|
|
|
|
extern void System_OnTimerExit(void);
|
|
extern void System_OnStrgExit_EMBMEM(void);
|
|
extern void System_OnStrgExit_EXMEM(void);
|
|
extern void System_OnStrgExit_FWS(void);
|
|
extern void System_OnStrgExit_FS(void);
|
|
extern void System_OnStrgExit_PS(void);
|
|
extern void System_OnVideoExit(void);
|
|
extern void System_OnAudioExit(void);
|
|
extern void System_OnUsbExit(void);
|
|
extern void System_OnLensExit(void);
|
|
extern void System_OnSensorExit(void);
|
|
extern void System_OnPowerExit(void);
|
|
extern void System_OnInputExit(void);
|
|
extern void System_OnOutputExit(void);
|
|
extern void System_OnBTExit(void);
|
|
extern void System_PS_Format(void);
|
|
extern void System_WaitFS(void);
|
|
extern void System_OnPowerPostExit(void);
|
|
extern UINT32 SysMain_GetTempBuffer(UINT32 uiSize);
|
|
extern UINT32 SysMain_RelTempBuffer(UINT32 addr);
|
|
extern UINT32 System_IsModeChging(void);
|
|
extern UINT32 System_IsModeChgClose(void);
|
|
extern UINT32 System_IsModeChgOpen(void);
|
|
|
|
extern int SysMain_system(const char* pCommand);
|
|
#endif
|