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

📄 oemgps.c

📁 ARM9 OEM CSP FRO MOBILE.
💻 C
字号:
#include <hwregs.h>
#include <memory.h>
#include "bspregmap.h"
#include <pio.h>

#define 	GPS_MEMORY_PHYSICAL_ADDR	0xc0650000
#define 	GPS_MEMORY_VIRTUAL_ADDR		0x8c650000
#define 	GPS_MEMORY_SIZE			0x01000000

#ifdef DEBUG
DBGPARAM dpCurSettings = {
    TEXT("OEMGps"), {
        TEXT("Errors"),TEXT("Warnings"),TEXT("Functions"),TEXT("Initialization"),
            TEXT("Undefined"),TEXT("Undefined"),TEXT("Undefined"),TEXT("Undefined"),
            TEXT("Undefined"),TEXT("Undefined"),TEXT("Undefined"),TEXT("Undefined") },
            1
};
#endif
/*
Function to power on RF module
*/
void OEMGpsRFPowerOn()
{
    v_pOEMDriverGlobals->oemShareRc.ulGpsPwrOpenCount++;

#ifdef ATLASII_HH
    IOW_REG_OR(ULONG,  &(v_pGpioRegs->gpio[1].paden), GPIO25);
    PIO_OUTPUT_ONE (GPIO, GPIO_GROUP(1), GPIO_INDEX(25));       // GPS_RF PWR, Active_High
    PIO_OUTPUT_ENABLE (GPIO, GPIO_GROUP(1), GPIO_INDEX(25)); 
#endif

    RETAILMSG(1,(_T("++OEMGpsRFPowerOn++\r\n")));

}

/*
Function to power off RF module
Note: This function will be called in XXX_PowerDown function
Do NOT call WIN32 API in this function
*/
void OEMGpsRFPowerOff()
{
   v_pOEMDriverGlobals->oemShareRc.ulGpsPwrOpenCount--;

   if ( 0 == v_pOEMDriverGlobals->oemShareRc.ulGpsPwrOpenCount )
   {
#ifdef ATLASII_HH
        PIO_OUTPUT_ZERO (GPIO, GPIO_GROUP(1), GPIO_INDEX(25));       // GPS_RF PWR, Active_High
        PIO_OUTPUT_ENABLE (GPIO, GPIO_GROUP(1), GPIO_INDEX(25)); 
#endif

   }

   RETAILMSG(1,(_T("++OEMGpsRFPowerOff++\r\n")));

}

/*
Function called on COM initialize
*/
BOOL OEMGpsComInit()
{
#ifdef ATLASII_HH
	if(!BspEpioVirtMap(TRUE)) 
	{
		return FALSE;
	}
#endif

    return TRUE;
}

/*
Function called on COM deinitialize
*/
void OEMGpsComDeinit()
{
#ifdef ATLASII_HH
	BspEpioVirtUnMap();
#endif

}

/*
Function called on COM open
*/
BOOL OEMGpsComOpen()
{
    return TRUE;
}

/*
Function called on COM close
*/
void OEMGpsComClose()
{
}

/*
 * Function to get rtc avaiable information
 */
BOOL OEMGpsIsRtcAvaiable()
{
	// if oem's bsp don't support 1024 hz rtc, change return value to FALSE
	return TRUE;
}

/*
 * Function to provide 1024Hz rtc value
 */
unsigned long OEMGpsGetRtcValue()
{
	return v_pDriverGlobals->sharedrc.rtcValueForGbc;
	// if oem's bsp don't support 1024 hz rtc, comment out above line, enable below line
	// and remember to change OEMGpsIsRtcAvaiable() func return value to FALSE
	
	//return 0;
}


/*
 * Function to provide the bsp reserved memory information
 */
void OEMGpsGetReservedMemoryInfo(unsigned long * pPhysicalAddr, unsigned long * pVirtualAddr, unsigned long * pMemSize)
{
	*pPhysicalAddr 	= GPS_MEMORY_PHYSICAL_ADDR;
	*pVirtualAddr	= GPS_MEMORY_VIRTUAL_ADDR;
	*pMemSize	= GPS_MEMORY_SIZE;
}

BOOL
GpsDllEntry(
              HINSTANCE   hinstDll,             /*@parm Instance pointer. */
              DWORD   dwReason,                 /*@parm Reason routine is called. */
              LPVOID  lpReserved                /*@parm system parameter. */
              )
{
    if ( dwReason == DLL_PROCESS_ATTACH )
    {
		DisableThreadLibraryCalls((HMODULE)hinstDll);
    }

    if ( dwReason == DLL_PROCESS_DETACH ) {
    }

    return (TRUE);
}

⌨️ 快捷键说明

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