📄 oemgps.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 + -