⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 app_dol1function.c

📁 dz3000_51.0.0.4.rar
💻 C
📖 第 1 页 / 共 2 页
字号:
		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 + -