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

📄 pmic.cpp

📁 i.mx27 soc for wince 6.0
💻 CPP
字号:
//-----------------------------------------------------------------------------
//
//  Copyright (C) 2005, Motorola Inc. All Rights Reserved
//
//------------------------------------------------------------------------------
/*---------------------------------------------------------------------------
* Copyright (C) 2006, Freescale Semiconductor, Inc. All Rights Reserved.
* THIS SOURCE CODE, AND ITS USE AND DISTRIBUTION, IS SUBJECT TO THE TERMS
* AND CONDITIONS OF THE APPLICABLE LICENSE AGREEMENT 
*--------------------------------------------------------------------------*/

#include <windows.h>
#include "ceddk.h"

#include "pmic_adc.h"
#include "pmic_audio.h"

//-----------------------------------------------------------------------------
// Global Variables
HANDLE hPMI;

#ifdef DEBUG

// Debug zone bit positions
#define ZONEID_ERROR           0
#define ZONEID_WARN            1
#define ZONEID_INIT            2
#define ZONEID_FUNC            3
#define ZONEID_INFO            4

// Debug zone masks
#define ZONEMASK_ERROR         (1 << ZONEID_ERROR)
#define ZONEMASK_WARN          (1 << ZONEID_WARN)
#define ZONEMASK_INIT          (1 << ZONEID_INIT)
#define ZONEMASK_FUNC          (1 << ZONEID_FUNC)
#define ZONEMASK_INFO          (1 << ZONEID_INFO)

// Debug zone args to DEBUGMSG
#define ZONE_ERROR             DEBUGZONE(ZONEID_ERROR)
#define ZONE_WARN              DEBUGZONE(ZONEID_WARN)
#define ZONE_INIT              DEBUGZONE(ZONEID_INIT)
#define ZONE_FUNC              DEBUGZONE(ZONEID_FUNC)
#define ZONE_INFO              DEBUGZONE(ZONEID_INFO)

DBGPARAM dpCurSettings = {
    _T("PMIC"),
    {
        TEXT("Errors"), TEXT("Warnings"), TEXT("Init"), TEXT("Func"),
        TEXT("Info"), TEXT(""), TEXT(""), TEXT(""),
        TEXT(""),TEXT(""),TEXT(""),TEXT(""),
        TEXT(""),TEXT(""),TEXT(""),TEXT("")
    },
    ZONEMASK_ERROR | ZONEMASK_WARN // ulZoneMask
};

#endif  // DEBUG

extern PMIC_STATUS PmicConvityInit(void);
extern void PmicConvityDeinit(void);

//------------------------------------------------------------------------------
//
// Function: InitPMICSys
//
// This function initializes PMIC subsystems.
//
// Parameters:
//          none.
// Returns:
//              none.
//------------------------------------------------------------------------------
void InitPMICSys(void)
{
    if (PmicADCInit()!=PMIC_SUCCESS)
    {
        ERRORMSG(1, (_T("InitPMICSys: PmicADCInit failed.\r\n")));
    }

    if (PmicAudioDriverInit() != PMIC_SUCCESS)
    {
        ERRORMSG(1, (_T("InitPMICSys: PmicAudioDriverInit failed.\r\n")));
    }
    PmicConvityInit();
}


//------------------------------------------------------------------------------
//
// Function: DeinitPMICSys
//
// This function deinitializes PMIC subsystems.
//
// Parameters:
//          none.
// Returns:
//              none.
//------------------------------------------------------------------------------
void DeinitPMICSys(void)
{
    PmicADCDeinit();

    PmicAudioDriverDeinit();
    PmicConvityDeinit();
}

//-----------------------------------------------------------------------------
//
// Function: DllEntry
//
// This is the entry and exit point for the PMIC DDK module.  This
// function is called when processed and threads attach and detach from this
// module.
//
// Parameters:
//      hInstDll
//           [in] The handle to this module.
//
//      dwReason
//           [in] Specifies a flag indicating why the DLL entry-point function
//           is being called.
//
//      lpvReserved
//           [in] Specifies further aspects of DLL initialization and cleanup.
//
// Returns:
//      TRUE if the PMIC is initialized; FALSE if an error occurred during
//      initialization.
//
//-----------------------------------------------------------------------------
extern "C"
BOOL WINAPI
DllEntry(HANDLE hInstDll, DWORD dwReason, LPVOID lpvReserved)
{
    switch (dwReason)
    {
        case DLL_PROCESS_ATTACH:
            DEBUGREGISTER((HMODULE)hInstDll);
            DEBUGMSG(ZONE_INIT,
                     (_T("***** DLL PROCESS ATTACH TO PMIC SDK *****\r\n")));

            DisableThreadLibraryCalls((HMODULE) hInstDll);

            hPMI = CreateFile(TEXT("PMI1:"),
                              GENERIC_READ | GENERIC_WRITE,
                              FILE_SHARE_READ | FILE_SHARE_WRITE,
                              NULL,
                              OPEN_EXISTING,
                              FILE_FLAG_RANDOM_ACCESS,
                              NULL);
            if ((hPMI == NULL) || (hPMI == INVALID_HANDLE_VALUE))
            {
                ERRORMSG(TRUE, (_T("Failed in createFile() for PMI1:\r\n")));
                return FALSE;
            }

            InitPMICSys();
            break;

        case DLL_PROCESS_DETACH:
            if ((hPMI != NULL) && (hPMI != INVALID_HANDLE_VALUE))
            {
                CloseHandle(hPMI);
            }
            DeinitPMICSys();

            DEBUGMSG(ZONE_INIT,
                     (_T("***** DLL PROCESS DETACH FROM PMIC SDK *****\r\n")));
            break;
    }

    // return TRUE for success
    return TRUE;
}

⌨️ 快捷键说明

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