📄 app_dol1function.c
字号:
case 0xf1:
//patch4.3@richie@je0531
//patch4.4@richie@isp
//path from fix address
if (ArgBuf[0] == 0xffff04f1) return FALSE;
if (G_ucISPCheck1 == 0x55)
{
G_ucISPCheck2 = 0xAA;
//patch4.4@richie@isp begin
printf("ARGS %lx,%lx,%lx,%x \n",ArgBuf[0], ArgBuf[1], ArgBuf[2], (USHORT)ArgBuf[3]);
//display messages
L2_CtrlScreen(1);
L2_SetColorPalette(8,0,0,255);
UI_ClearFOSD(25, 8, 0x08);
UI_PrintOSDString("ISP..Wait..", 3, 0, UI_MENU_BG_COLOR_ON | UI_MENU_TITLE_TEXT_COLOR);
//if (ArgBuf[0] == 0xffff04f1) ArgBuf[0] = 0x00000000;
////UI_PrintOSDString("Dram.", 0, 1, UI_MENU_BG_COLOR_ON | UI_MENU_TITLE_TEXT_COLOR);
////UI_PrintOSDULong(ArgBuf[0] + 0x10000, 5, 1, UI_MENU_BG_COLOR_ON | UI_MENU_TITLE_TEXT_COLOR);
////UI_PrintOSDString("Rom .", 0, 2, UI_MENU_BG_COLOR_ON | UI_MENU_TITLE_TEXT_COLOR);
////UI_PrintOSDULong(ArgBuf[1], 5, 2, UI_MENU_BG_COLOR_ON | UI_MENU_TITLE_TEXT_COLOR);
////UI_PrintOSDString("SecA.", 0, 3, UI_MENU_BG_COLOR_ON | UI_MENU_TITLE_TEXT_COLOR);
////UI_PrintOSDULong(ArgBuf[2], 5, 3, UI_MENU_BG_COLOR_ON | UI_MENU_TITLE_TEXT_COLOR);
UI_PrintOSDString("Size.", 0, 4, UI_MENU_BG_COLOR_ON | UI_MENU_TITLE_TEXT_COLOR);
UI_PrintOSDULong((ULONG)((ULONG)((USHORT)ArgBuf[3]) * (ULONG)256), 5, 4, UI_MENU_BG_COLOR_ON | UI_MENU_TITLE_TEXT_COLOR);
//patch4.4@richie@isp end
L1_DownloadISP(ArgBuf[0], ArgBuf[1], ArgBuf[2], (USHORT)ArgBuf[3]);
}
break;
case 0xf2:
L1_UploadFromDRAM(ArgBuf[0], ArgBuf[1]);
break;
case 0xf3:
L1_DownloadToDRAM(ArgBuf[0], ArgBuf[1]);
break;
case 0xf4:
//PRINT_APP("UploadFromFlash: ArgBuf[0] = %lx, ArgBuf[1] = %lx\n", ArgBuf[0], ArgBuf[1]);
//L2_FlashMode(3,1,2);
//L2_CFInit(1,0x07,0x04);
//L2_CFReset(1);
L1_UploadFromFlash(ArgBuf[0], ArgBuf[1]);
break;
case 0xf5:
//PRINT_APP("DownloadToFlash: ArgBuf[0] = %lx, ArgBuf[1] = %lx\n", ArgBuf[0], ArgBuf[1]);
//L2_FlashMode(3,1,2);
//L2_CFInit(1,0x07,0x04);
//L2_CFReset(1);
L1_DownloadToFlash(ArgBuf[0], ArgBuf[1]);
break;
//patch4.4@yichang@badpixel begin
#if (NANDF_OPTION == 1 && CARD_OPTION == 1)
case 0xf6:
L1_BadPixelDRAMToNAND();
break;
#endif
//patch4.4@yichang@badpixel end
default:
break;
}
return L2K_SUCCESS;
}
//-----------------------------------------------------------------------------
//App_DoL1Function_OSD
//-----------------------------------------------------------------------------
/*
routine description:
Do specified OSD L1 Function
arguments:
L1_FuncID - L1 Function ID
ArgBuf - Pointer to the argument buffer
return value:
0x00 - success
*/
UCHAR App_DoL1Function_OSD(UCHAR L1_FuncID, ULONG *ArgBuf) USING_0
{
ULONG Temp0 = ArgBuf[0];
switch(L1_FuncID)
{
case 0x00:
L1_SimUpLoadFOSD((UCHAR)ArgBuf[0]);
break;
case 0x01:
L1_SimDownLoadFOSD((UCHAR)ArgBuf[0]);
break;
case 0x02:
L1_GOSDEnter();
break;
case 0x03:
L1_GOSDExit();
break;
case 0x04:
L1_GOSDShiftR();
break;
case 0x05:
L1_GOSDShiftL();
break;
default :
break;
}
return L1K_SUCCESS;
}
//-----------------------------------------------------------------------------
//App_DoL1Function_FileSystem
//-----------------------------------------------------------------------------
/*
routine description:
Do specified FileSystem L1 Function
arguments:
L1_FuncID - L1 Function ID
ArgBuf - Pointer to the argument buffer
return value:
0x00 - success
*/
UCHAR App_DoL1Function_FileSystem(UCHAR L1_FuncID, ULONG *ArgBuf)
{
switch(L1_FuncID)
{
case 0x00:
L1_DeleteImage();
break;
case 0x01:
L1_LockImage((UCHAR)ArgBuf[0]);
break;
case 0x02:
L1_ReadImage((UCHAR)ArgBuf[0]);
break;
case 0x03:
L1_WriteImage((UCHAR)ArgBuf[0]);
break;
default:
break;
}
return L2K_SUCCESS;
}
//-----------------------------------------------------------------------------
//App_DoL1Function_Storage (07)
//-----------------------------------------------------------------------------
/*
routine description:
Do specified Storage L1 Function
arguments:
L1_FuncID - L1 Function ID
ArgBuf - Pointer to the argument buffer
return value:
0x00 - success
*/
UCHAR App_DoL1Function_Storage(UCHAR L1_FuncID, ULONG *ArgBuf) USING_0
{
UCHAR ByteData;
#if (SD)
UCHAR error;
#endif
switch(L1_FuncID)
{
case 0x00:
L1_ReadNandID(&ByteData,&ByteData);
//PRINT_APP("L1 0700 finish\n");
break;
case 0x01:
L1_EraseNandBlock((UCHAR)ArgBuf[0],ArgBuf[1],&ByteData);
//PRINT_APP("L1 0701 finish\n");
break;
case 0x02:
L1_DMAWrNAND((UCHAR)ArgBuf[0],(UCHAR)ArgBuf[1],ArgBuf[2],(UCHAR)ArgBuf[3],(USHORT)ArgBuf[4]);
//PRINT_APP("L1 0702 finish\n");
break;
case 0x03:
L1_DMARdNAND((UCHAR)ArgBuf[0],(UCHAR)ArgBuf[1],ArgBuf[2],(UCHAR)ArgBuf[3],(USHORT)ArgBuf[4]);
//PRINT_APP("L1 0703 finish\n");
break;
case 0x04:
//L1_DRAMtoNAND(ArgBuf[0], ArgBuf[1], ArgBuf[2]);
L1_DRAMtoNAND(0, 0x514000, 0xa000);
case 0x05:
L1_NANDtoDRAM(0, 0x500000, 0x400); // phanton.pcm
break;
#if (CFAIDE)
case 0x10:
L1_DMAWrCFIDE((UCHAR)ArgBuf[0],(UCHAR)ArgBuf[1],(UCHAR)ArgBuf[2],(UCHAR)ArgBuf[3],(UCHAR)ArgBuf[4],ArgBuf[5],(USHORT)ArgBuf[6]);
//PRINT_APP("L1 0710 finish\n");
break;
case 0x11:
L1_DMARdCFIDE((UCHAR)ArgBuf[0],(UCHAR)ArgBuf[1],(UCHAR)ArgBuf[2],(UCHAR)ArgBuf[3],(UCHAR)ArgBuf[4],ArgBuf[5],(USHORT)ArgBuf[6]);
//PRINT_APP("L1 0711 finish\n");
break;
#endif
#if (CFAMEM)
case 0x12:
L1_DMAWrCFMEM((UCHAR)ArgBuf[0],(UCHAR)ArgBuf[1],(UCHAR)ArgBuf[2],(UCHAR)ArgBuf[3],(UCHAR)ArgBuf[4],ArgBuf[5],(USHORT)ArgBuf[6]);
//PRINT_APP("L1 0712 finish\n");
break;
case 0x13:
L1_DMARdCFMEM((UCHAR)ArgBuf[0],(UCHAR)ArgBuf[1],(UCHAR)ArgBuf[2],(UCHAR)ArgBuf[3],(UCHAR)ArgBuf[4],ArgBuf[5],(USHORT)ArgBuf[6]);
//PRINT_APP("L1 0713 finish\n");
break;
#endif
#if (SD)
case 0x30:
error = 0;
if(L1_SDIdentification(512)!=0) error =1;
if(L1_SDCheckState()!=0) error =1;
if(L1_SDSetBusMode(1)!=0) error =1;
if(L1_SDEraseData(0 , 0x4000000)!=0) error =1;
//PRINT_APP("L1 0730 is finish\n");
break;
case 0x31:
error = 0;
L2_SetDRAMDMA(0);
if(L1_DMAWrSD(0,0,3735,512)!=0) error =1;
//PRINT_APP("L1 0731 is finish\n");
break;
case 0x32:
error = 0;
L2_SetDRAMDMA(1000000);
if(L1_DMARdSD(0,0,3735,512)!=0) error =1;
//PRINT_APP("L1 0732 is finish\n");
break;
#endif
case 0x80: // NAND init & erase
//PRINT_APP("L1 0780 finish\n");
break;
#if (CFA)
case 0x90: // CFIDE reset
L2_FlashMode(3,1,1);
L2_CFInit(1,0x09,0x09);
L2_CFReset(1);
//PRINT_APP("L1 0790 finish\n");
break;
#endif
#if (CFAIDE)
case 0x91:
L2_SetDRAMDMA(ArgBuf[0]);
L1_DMAWrCFIDE(0,(UCHAR)ArgBuf[1],(UCHAR)ArgBuf[2],(UCHAR)ArgBuf[3],(UCHAR)ArgBuf[4],ArgBuf[5],ArgBuf[6]);
//PRINT_APP("L1 0791 finish\n");
break;
case 0x92:
L2_SetDRAMDMA(ArgBuf[0]);
L1_DMARdCFIDE(0,(UCHAR)ArgBuf[1],(UCHAR)ArgBuf[2],(UCHAR)ArgBuf[3],(UCHAR)ArgBuf[4],ArgBuf[5],ArgBuf[6]);
//PRINT_APP("L1 0792 finish\n");
break;
#endif
#if (CFAMEM)
case 0xA0: // CFMEM reset
L2_FlashMode(4,1,1);
L2_CFInit(0,0x09,0x09);
L2_CFReset(0);
//PRINT_APP("L1 07A0 finish\n");
break;
case 0xA1:
L2_SetDRAMDMA(ArgBuf[0]);
L1_DMAWrCFMEM(0,(UCHAR)ArgBuf[1],(UCHAR)ArgBuf[2],(UCHAR)ArgBuf[3],(UCHAR)ArgBuf[4],ArgBuf[5],ArgBuf[6]);
//PRINT_APP("L1 07A1 finish\n");
break;
case 0xA2:
L2_SetDRAMDMA(ArgBuf[0]);
L1_DMARdCFMEM(0,(UCHAR)ArgBuf[1],(UCHAR)ArgBuf[2],(UCHAR)ArgBuf[3],(UCHAR)ArgBuf[4],ArgBuf[5],ArgBuf[6]);
//PRINT_APP("L1 07A2 finish\n");
break;
#endif
case 0xf0:
//PRINT_APP("L1 07F0 finish\n");
break;
case 0xff:
break;
default:
break;
}
return L2K_SUCCESS;
}
//-----------------------------------------------------------------------------
//App_DoL1Function_Test
//-----------------------------------------------------------------------------
//L1 function test
//this test procedure should be gone through completely before
//each firmware release
UCHAR App_DoL1Function_Test(UCHAR L1_FuncID, ULONG *ArgBuf) USING_0
{
ULONG Temp0=ArgBuf[0];
switch(L1_FuncID)
{
case 0x00:
L1_Demo();
break;
case 0x01:
L1_PCcamPower();
break;
//patch5.0@richie@sdram mapping begin
case 0x02:
// L1_CapturePower();
break;
case 0x03:
// L1_CDSPPower();
break;
case 0x04:
// L1_CompressPower();
break;
case 0x05:
// L1_DeCompressPower();
break;
//patch5.0@richie@sdram mapping end
case 0x06:
L1_PreviewPower();
break;
case 0x07:
L1_UpLoadPower();
break;
case 0x08:
L1_DnLoadPower();
break;
case 0x10:
//patch5.0@richie@sdram mapping marked
//L1_DoCDSP2();
break;
default:
break;
}
return L2K_SUCCESS;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -