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

📄 main.c

📁 ST5100 driver files for ST chipset
💻 C
📖 第 1 页 / 共 4 页
字号:
		else
		{         
	        STTBX_Report((STTBX_REPORT_LEVEL_INFO, "STPCCRD_Close(%s)=OK",
	                      "STPCCRD_MOD_A", GetErrorText(ST_ErrorCode)));
	    }
	}

	if (ST_ErrorCode == ST_NO_ERROR)
	{
	    OpenParams.ModName = STPCCRD_MOD_B;
	    ST_ErrorCode = STPCCRD_Open("STPCCRD_0", &OpenParams, &Handle);
	    if (ST_ErrorCode != ST_NO_ERROR)
	    {
	        STTBX_Report((STTBX_REPORT_LEVEL_ERROR, "STPCCRD_Open(%s)=%s",
	                      "STPCCRD_Open", GetErrorText(ST_ErrorCode)));
	    }
		else
		{         
	        STTBX_Report((STTBX_REPORT_LEVEL_INFO, "STPCCRD_Open(%s)=OK",
	                      "STPCCRD_MOD_B", GetErrorText(ST_ErrorCode)));
	    }
 	}
 	         
	if (ST_ErrorCode == ST_NO_ERROR)
	{
	    ST_ErrorCode = STPCCRD_Close(Handle);
	    if (ST_ErrorCode != ST_NO_ERROR)
	    {
	        STTBX_Report((STTBX_REPORT_LEVEL_ERROR, "STPCCRD_Close(%s)=%s",
	                      "STPCCRD_Close", GetErrorText(ST_ErrorCode)));
	    }
		else
		{         
	        STTBX_Report((STTBX_REPORT_LEVEL_INFO, "STPCCRD_Close(%s)=OK",
	                      "STPCCRD_MOD_B", GetErrorText(ST_ErrorCode)));
	    }
	}

	if (ST_ErrorCode == ST_NO_ERROR)
	{
	    TermParams.ForceTerminate = TRUE;
	    ST_ErrorCode = STPCCRD_Term("STPCCRD_0", &TermParams);
	    if (ST_ErrorCode != ST_NO_ERROR)
	    {
	        STTBX_Report((STTBX_REPORT_LEVEL_ERROR, "STPCCRD_Term(%s)=%s",
	                      "STPCCRD_Term", GetErrorText(ST_ErrorCode)));
	    }
		else
		{         
	        STTBX_Report((STTBX_REPORT_LEVEL_INFO, "STPCCRD_Term()=OK",
	                      GetErrorText(ST_ErrorCode)));
	    }
	}

    return ST_ErrorCode;
} /* Stpccrd_Test () */

#endif
#if 0//7710_s
/*------------------------------------------------------------------------------
 * Function : Stsmart_Test
 *            Test STSMART driver basic API
 * Input    : N/A
 * Output   : N/A
 * Return   : Error Code
 * -------------------------------------------------------------------------- */
ST_ErrorCode_t Stsmart_Test(void)
{
    /* Parameters, buffers, and structures */
    ST_ErrorCode_t          ST_ErrorCode;
	STSMART_InitParams_t 	SmartInitParams[2];
	STUART_InitParams_t 	UartInitParams[2];
	ST_DeviceName_t 		UartDeviceName[2]={"UART_0","UART_1"};
	ST_DeviceName_t 		SmartDeviceName[2]={"SMART_0","SMART_1"};
    STSMART_OpenParams_t    OpenParams;
    STSMART_Handle_t        Handle[2];
    STSMART_TermParams_t 	TermParamsSC;
	STUART_TermParams_t 	TermParamsUA;
	int i;


    /* Set UART initialization params */
    UartInitParams[0].UARTType = STUART_ISO7816;
    UartInitParams[0].DriverPartition = (ST_Partition_t *)system_partition;
    UartInitParams[0].BaseAddress = (U32 *)ASC_0_BASE_ADDRESS;
    UartInitParams[0].InterruptNumber = ASC_0_INTERRUPT;
    UartInitParams[0].InterruptLevel = ASC_0_INTERRUPT_LEVEL;
    UartInitParams[0].ClockFrequency = ST_ClockInfo.CommsBlock;
    UartInitParams[0].SwFIFOEnable = TRUE;
    UartInitParams[0].FIFOLength = 256;
    strcpy(UartInitParams[0].RXD.PortName, "PIO_0");
    UartInitParams[0].RXD.BitMask = ASC_0_RXD_BIT;
    strcpy(UartInitParams[0].TXD.PortName, "PIO_0");
    UartInitParams[0].TXD.BitMask = ASC_0_TXD_BIT;
    strcpy(UartInitParams[0].RTS.PortName, "");
    UartInitParams[0].RTS.BitMask = PIO_BIT_NOT_USED;
    strcpy(UartInitParams[0].CTS.PortName, "");
    UartInitParams[0].CTS.BitMask = PIO_BIT_NOT_USED;
    UartInitParams[0].DefaultParams = NULL;

    UartInitParams[1].UARTType = STUART_ISO7816;
    UartInitParams[1].DriverPartition = (ST_Partition_t *)system_partition;
    UartInitParams[1].BaseAddress = (U32 *)ASC_1_BASE_ADDRESS;
    UartInitParams[1].InterruptNumber = ASC_1_INTERRUPT;
    UartInitParams[1].InterruptLevel = ASC_1_INTERRUPT_LEVEL;
    UartInitParams[1].ClockFrequency = ST_ClockInfo.CommsBlock;
    UartInitParams[1].SwFIFOEnable = TRUE;
    UartInitParams[1].FIFOLength = 256;
    strcpy(UartInitParams[1].RXD.PortName, "PIO_1");
    UartInitParams[1].RXD.BitMask = ASC_1_RXD_BIT;
    strcpy(UartInitParams[1].TXD.PortName, "PIO_1");
    UartInitParams[1].TXD.BitMask = ASC_1_TXD_BIT;
    strcpy(UartInitParams[1].RTS.PortName, "");
    UartInitParams[1].RTS.BitMask = PIO_BIT_NOT_USED;
    strcpy(UartInitParams[1].CTS.PortName, "");
    UartInitParams[1].CTS.BitMask = PIO_BIT_NOT_USED;
    UartInitParams[1].DefaultParams = NULL;

    strcpy(SmartInitParams[0].UARTDeviceName, UartDeviceName[0]);
    SmartInitParams[0].DeviceType = STSMART_ISO;
    SmartInitParams[0].DriverPartition = (ST_Partition_t *)system_partition;
    SmartInitParams[0].BaseAddress = (U32 *)SMARTCARD0_BASE_ADDRESS;
    strcpy(SmartInitParams[0].ClkGenExtClk.PortName, "PIO_0");
    SmartInitParams[0].ClkGenExtClk.BitMask = PIO_BIT_2;
    strcpy(SmartInitParams[0].Clk.PortName, "PIO_0");
    SmartInitParams[0].Clk.BitMask = PIO_BIT_3;
    strcpy(SmartInitParams[0].Reset.PortName, "PIO_0");
    SmartInitParams[0].Reset.BitMask = PIO_BIT_4;
    strcpy(SmartInitParams[0].CmdVcc.PortName, "PIO_0");
    SmartInitParams[0].CmdVcc.BitMask = PIO_BIT_5;
    strcpy(SmartInitParams[0].CmdVpp.PortName, "");
    SmartInitParams[0].CmdVpp.BitMask = PIO_BIT_NOT_USED;
    strcpy(SmartInitParams[0].Detect.PortName, "PIO_0");
    SmartInitParams[0].Detect.BitMask = PIO_BIT_7;
    SmartInitParams[0].ClockSource = STSMART_CPU_CLOCK;
    SmartInitParams[0].ClockFrequency = ST_ClockInfo.CommsBlock;
    SmartInitParams[0].MaxHandles = 32;
    strcpy(SmartInitParams[0].EVTDeviceName, "EVT_BACK");

    strcpy(SmartInitParams[1].UARTDeviceName, UartDeviceName[1]);
    SmartInitParams[1].DeviceType = STSMART_ISO;
    SmartInitParams[1].DriverPartition = (ST_Partition_t *)system_partition;
    SmartInitParams[1].BaseAddress = (U32 *)SMARTCARD1_BASE_ADDRESS;
    strcpy(SmartInitParams[1].ClkGenExtClk.PortName, "PIO_1");
    SmartInitParams[1].ClkGenExtClk.BitMask = PIO_BIT_2;
    strcpy(SmartInitParams[1].Clk.PortName, "PIO_1");
    SmartInitParams[1].Clk.BitMask = PIO_BIT_3;
    strcpy(SmartInitParams[1].Reset.PortName, "PIO_1");
    SmartInitParams[1].Reset.BitMask = PIO_BIT_4;
    strcpy(SmartInitParams[1].CmdVcc.PortName, "PIO_1");
    SmartInitParams[1].CmdVcc.BitMask = PIO_BIT_5;
    strcpy(SmartInitParams[1].CmdVpp.PortName, "");
    SmartInitParams[1].CmdVpp.BitMask = PIO_BIT_NOT_USED;
    strcpy(SmartInitParams[1].Detect.PortName, "PIO_1");
    SmartInitParams[1].Detect.BitMask = PIO_BIT_7;
    SmartInitParams[1].ClockSource = STSMART_CPU_CLOCK;
    SmartInitParams[1].ClockFrequency = ST_ClockInfo.CommsBlock;
    SmartInitParams[1].MaxHandles = 32;
    strcpy(SmartInitParams[1].EVTDeviceName, "EVT_BACK");


	for (i=0; i<2; i++)
	{
	    ST_ErrorCode = STUART_Init(UartDeviceName[i], &UartInitParams[i]);
	    if (ST_ErrorCode != ST_NO_ERROR)
	    {
	        STTBX_Report((STTBX_REPORT_LEVEL_ERROR, "STUART_Init(%s)=%s",
	                      UartDeviceName[i], GetErrorText(ST_ErrorCode)));
	    }
		else
		{         
	        STTBX_Report((STTBX_REPORT_LEVEL_INFO, "STUART_Init(%s)=OK",
	                      UartDeviceName[i], GetErrorText(ST_ErrorCode)));
	    }

		ST_ErrorCode = STSMART_Init(SmartDeviceName[i], &SmartInitParams[i]);
	    if (ST_ErrorCode != ST_NO_ERROR)
	    {
	        STTBX_Report((STTBX_REPORT_LEVEL_ERROR, "STSMART_Init(%s)=%s",
	                      SmartDeviceName[i], GetErrorText(ST_ErrorCode)));
	    }
		else
		{         
	        STTBX_Report((STTBX_REPORT_LEVEL_INFO, "STSMART_Init(%s)=OK",
	                      SmartDeviceName[i], GetErrorText(ST_ErrorCode)));
	    }

		OpenParams.NotifyFunction = NULL;
	    OpenParams.BlockingIO = TRUE;

    	/* Open smartcard handles */
		ST_ErrorCode = STSMART_Open(SmartDeviceName[i], &OpenParams, &Handle[i]);
	    if (ST_ErrorCode != ST_NO_ERROR)
	    {
	        STTBX_Report((STTBX_REPORT_LEVEL_ERROR, "STSMART_Open(%s)=%s",
	                      SmartDeviceName[i], GetErrorText(ST_ErrorCode)));
	    	break;
	    }
		else
		{         
	        STTBX_Report((STTBX_REPORT_LEVEL_INFO, "STSMART_Open(%s)=OK",
	                      SmartDeviceName[i], GetErrorText(ST_ErrorCode)));
	    }
	          
	    ST_ErrorCode = STSMART_Close(Handle[i]);
	    if (ST_ErrorCode != ST_NO_ERROR)
	    {
	        STTBX_Report((STTBX_REPORT_LEVEL_ERROR, "STSMART_Close(%s)=%s",
	                      SmartDeviceName[i], GetErrorText(ST_ErrorCode)));
			break;
	    }
		else
		{         
	        STTBX_Report((STTBX_REPORT_LEVEL_INFO, "STSMART_Close(%s)=OK",
	                      SmartDeviceName[i], GetErrorText(ST_ErrorCode)));
	    }

	    TermParamsSC.ForceTerminate = TRUE;
		TermParamsUA.ForceTerminate = TRUE;

	    ST_ErrorCode = STSMART_Term(SmartDeviceName[i], &TermParamsSC);
	    if (ST_ErrorCode != ST_NO_ERROR)
	    {
	        STTBX_Report((STTBX_REPORT_LEVEL_ERROR, "STSMART_Term(%s)=%s",
	                      SmartDeviceName[i], GetErrorText(ST_ErrorCode)));
			break;
	    }
		else
		{         
	        STTBX_Report((STTBX_REPORT_LEVEL_INFO, "STSMART_Term(%s)=OK",
	                      SmartDeviceName[i], GetErrorText(ST_ErrorCode)));
	    }

		ST_ErrorCode = STUART_Term(UartDeviceName[i], &TermParamsUA);
	    if (ST_ErrorCode != ST_NO_ERROR)
	    {
	        STTBX_Report((STTBX_REPORT_LEVEL_ERROR, "STUART_Term(%s)=%s",
	                      UartDeviceName[i], GetErrorText(ST_ErrorCode)));
			break;
	    }
		else
		{         
	        STTBX_Report((STTBX_REPORT_LEVEL_INFO, "STUART_Term(%s)=OK",
	                      UartDeviceName[i], GetErrorText(ST_ErrorCode)));
	    }
	}    

    return ST_ErrorCode;
} /* Stsmart_Test () */
#endif
#if 0 // EXT_SHARE

/*------------------------------------------------------------------------------
 * Function : Stpod_Test
 *            Test STPOD driver basic API
 * Input    : N/A
 * Output   : N/A
 * Return   : Error Code
 * -------------------------------------------------------------------------- */
ST_ErrorCode_t Stpod_Test(void)
{
    /* Parameters, buffers, and structures */
    ST_ErrorCode_t            ST_ErrorCode;
    STPOD_InitParams_t        STPOD_InitParams;
    STPOD_TermParams_t        STPOD_TermParams;
    STPOD_OpenParams_t        STPOD_OpenParams;
    STPOD_Handle_t            STPODHandle;
	ST_DeviceName_t  		  PODDeviceName = "STPOD";
	U32						  i;

	STPOD_InitParams.DeviceType		   = STPOD_DEVICE_STI7710;		   /* for mb391 */
 /* STPOD_InitParams.DeviceType		   = STPOD_DEVICE_STIDTV7710;*/	   /* for idtv board */
    STPOD_InitParams.Partition_p       = (ST_Partition_t *)NcachePartition;
    STPOD_InitParams.InterruptLevel    = EXTERNAL_2_INTERRUPT_LEVEL;
    STPOD_InitParams.InterruptNumber   = EXTERNAL_2_INTERRUPT;
    strcpy(STPOD_InitParams.EVTDeviceName, "EVT_BACK");
	/* following is for idtv only, dummy for other devices */
	/* there are 2xPIOs for POD on idtv board */
	for (i = 0; i < 2; i++)       
    {
        strcpy((char *)STPOD_InitParams.PioInfo[i].PioDeviceName, (char *)PIO_GET_DEVICENAME(i));
    }    

    ST_ErrorCode = STPOD_Init(PODDeviceName, &STPOD_InitParams);
    if (ST_ErrorCode != ST_NO_ERROR)
    {
		if (ST_ErrorCode == ST_ERROR_BAD_PARAMETER) 
		{
	        STTBX_Report((STTBX_REPORT_LEVEL_ERROR, "STPOD_Init()=%s",
	                      "ST_ERROR_BAD_PARAMETER"));
		}
		else if (ST_ErrorCode == STPOD_ERROR_FPGA) 
		{
	        STTBX_Report((STTBX_REPORT_LEVEL_ERROR, "STPOD_Init()=%s",
	                      "STPOD_ERROR_FPGA"));
		}
		else if (ST_ErrorCode == STPOD_ERROR_EVENT_REGISTER) 
		{
	        STTBX_Report((STTBX_REPORT_LEVEL_ERROR, "STPOD_Init()=%s",
	                      "STPOD_ERROR_EVENT_REGISTER"));
		}
		else if (ST_ErrorCode == STPOD_ERROR_READ_NO_DATA) 
		{
	        STTBX_Report((STTBX_REPORT_LEVEL_ERROR, "STPOD_Init()=%s",
	                      "STPOD_ERROR_READ_NO_DATA"));
		}
		else if (ST_ErrorCode == STPOD_ERROR_NO_MODULE) 
		{
	        STTBX_Report((STTBX_REPORT_LEVEL_ERROR, "STPOD_Init()=%s",
	                      "STPOD_ERROR_NO_MODULE"));
		}
		else if (ST_ErrorCode == STPOD_ERROR_MODULE_BUSY) 
		{
	        STTBX_Report((STTBX_REPORT_LEVEL_ERROR, "STPOD_Init()=%s",
	                      "STPOD_ERROR_MODULE_BUSY"));
		}
		else if (ST_ErrorCode == STPOD_ERROR_WRITE) 
		{
	        STTBX_Report((STTBX_REPORT_LEVEL_ERROR, "STPOD_Init()=%s",
	                      "STPOD_ERROR_WRITE"));
		}
		else if (ST_ErrorCode == STPOD_ERROR_READ) 
		{
	        STTBX_Report((STTBX_REPORT_LEVEL_ERROR, "STPOD_Init()=%s",
	                      "STPOD_ERROR_READ"));
		}
		else if (ST_ErrorCode == STPOD_CIS_ERROR) 
		{
	        STTBX_Report((STTBX_REPORT_LEVEL_ERROR, "STPOD_Init()=%s",
	                      "STPOD_CIS_ERROR"));
		}
		else if (ST_ErrorCode == STPOD_ERROR_RESET) 
		{
	        STTBX_Report((STTBX_REPORT_LEVEL_ERROR, "STPOD_Init()=%s",
	                      "STPOD_ERROR_RESET"));
		}
		else if (ST_ErrorCode == STPOD_INTERNAL_ERROR) 
		{
	        STTBX_Report((STTBX_REPORT_LEVEL_ERROR, "STPOD_Init()=%s",
	                      "STPOD_INTERNAL_ERROR"));
		}
		else if (ST_ErrorCode == STPOD_ERROR_IIR_SET) 
		{
	        STTBX_Report((STTBX_REPORT_LEVEL_ERROR, "STPOD_Init()=%s",
	                      "STPOD_ERROR_IIR_SET"));
		}
		else if (ST_ErrorCode == STPOD_ERROR_BAD_DRIVER) 
		{
	        STTBX_Report((STTBX_REPORT_LEVEL_ERROR, "STPOD_Init()=%s",
	                      "STPOD DEVICE NOT PRESENT"));
		}
		else if (ST_ErrorCode == STPOD_ERROR_EVENT_UNREGISTER) 
		{
	        STTBX_Report((STTBX_REPORT_LEVEL_ERROR, "STPOD_Init()=%s",
	                      "STPOD_ERROR_EVENT_UNREGISTER"));

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -