nt9856x/code/application/source/cardv/SrcCode/System/SysMain.h
2023-03-28 15:07:53 +08:00

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