?? reportdlg.cpp
字號:
// ReportDlg.cpp : implementation file
//
#include "stdafx.h"
#include "EngModeEx.h"
#include "ReportDlg.h"
#include "GpioEditDlg.h"
extern TCHAR strReturnData[256];
//static volatile BULVERDE_GPIO_REG *g_pGPIORegs=NULL;
pGpioNotes pGpioSum[]={ //form gpio9 start
{0, TEXT("PMIC_IRQ"), 0, 0xC, 0x54, 1, 0, 0 ,0 },
{1, TEXT("GPIO_RESET"), 0, 0xC, 0x54, 1, 0, 0 ,0 },
{2, TEXT(""), 0, 0xC, 0x54, 0, 0, 0 ,1 },
{3, TEXT("PWR_SCL"), 0, 0xC, 0x54, 1, 0, 0 ,1 },
{4, TEXT("PWR_SDA"), 0, 0xC, 0x54, 1, 0, 0 ,1 },
{5, TEXT(""), 0, 0xC, 0x54, 0, 0, 0 ,1 },
{6, TEXT(""), 0, 0xC, 0x54, 0, 0, 0 ,1 },
{7, TEXT(""), 0, 0xC, 0x54, 0, 0, 0 ,1 },
{8, TEXT(""), 0, 0xC, 0x54, 0, 0, 0 ,1 },
{9, TEXT("HOOKSWITCH"), 0, 0xC, 0x54, 1, 0, 0 ,0 },
{10, TEXT("BT_DISCONNECT"), 0, 0xC, 0x54, 0, 1, 0 ,0 },
{11, TEXT("LCD SPI兼做WLAN SPI"), 0, 0xC, 0x54, 0, 0, 0 ,0 },
{12, TEXT("COMM_IRQ"), 0, 0xC, 0x54, 1, 0, 0 ,0 },
{13, TEXT("GPIO<13>/BT_WAKEUP"), 0, 0xC, 0x54, 0, 1, 0 ,0 },
{14, TEXT("GPS 總電源開關(guān)"), 0, 0xC, 0x54, 0, 1, 0,0 },
{15, TEXT("GPIO<15>/DOC_LOCK_N"), 0, 0xC, 0x54, 0, 1, 0,0 },//na
{16, TEXT("LCD背光燈開關(guān)"), 0, 0xC, 0x58, 1, 1, 0 ,0 },
{17, TEXT("CIF_DD<6>"), 0, 0xC, 0x58, 0, 0, 0 ,0 },
{18, TEXT("閃光燈控制"), 0, 0xC, 0x58, 0, 1, 0 ,0 },
{19, TEXT("KP_LED_ON"), 0, 0xC, 0x58, 1, 1, 0 ,0 },
{20, TEXT("SPI2 0lcd/1wlan"), 0, 0xC, 0x58, 0, 1, 0 ,0 },
{21, TEXT("GPIO21/DOC_PWRD_N"), 0, 0xC, 0x58, 0, 1, 0 ,0 },
{22, TEXT("SSPSCLK2,兼做WLAN"), 0, 0xC, 0x58, 0, 1, 3 ,0 },
{23, TEXT("CIF_MCLK"), 0, 0xC, 0x58, 0, 1, 0 ,0 },
{24, TEXT("CIF_FV"), 0, 0xC, 0x58, 0, 0, 0 ,0 },
{25, TEXT("CIF_LV"), 0, 0xC, 0x58, 0, 0, 0 ,0 },
{26, TEXT("CIF_PCLK"), 0, 0xC, 0x58, 0, 0, 0 ,0 },
{27, TEXT("CIF_DD<0>"), 0, 0xC, 0x58, 0, 0, 0 ,0 },
{28, TEXT("I2S_BITCLK"), 0, 0xC, 0x58, 1, 1, 1 ,0 },
{29, TEXT("I2S_SDATA_IN"), 0, 0xC, 0x58, 0, 0, 2 ,0 },
{30, TEXT("I2S_SDATA_OUT"), 0, 0xC, 0x58, 0, 1, 1 ,0 },
{31, TEXT("I2S_SYNC"), 0, 0xC, 0x58, 1, 1, 1 ,0 },
{32, TEXT("MMCLK"), 0x4, 0x10, 0x5C, 0, 1, 2 ,0 },
{33, TEXT("WLAN總電源開關(guān)"), 0x4, 0x10, 0x5C, 0, 1, 0 ,0 },
{34, TEXT("FFRXD"), 0x4, 0x10, 0x5C, 1, 0, 1 ,0 },
{35, TEXT("WLAN中斷"), 0x4, 0x10, 0x5C, 0, 1, 0 ,0 },
{36, TEXT("GPIO36/GSM_STATUS"), 0x4, 0x10, 0x5C, 1, 0, 0 ,0 },
{37, TEXT("GPIO37/AUDIOAP_PWR_EN"), 0x4, 0x10, 0x5C, 0, 1, 0 ,0 },
{38, TEXT("GPIO38/APWREN"), 0x4, 0x10, 0x5C, 0, 1, 0 ,0 },
{39, TEXT("FFTXD"), 0x4, 0x10, 0x5C, 1, 1, 2 ,0 },
{40, TEXT("Camera_reset"), 0x4, 0x10, 0x5C, 0, 1, 0 ,0 },
{41, TEXT("USB_ID"), 0x4, 0x10, 0x5C, 0, 1, 0 ,0 },
{42, TEXT("BTRXD"), 0x4, 0x10, 0x5C, 1, 0, 1 ,0 },
{43, TEXT("BTTXD"), 0x4, 0x10, 0x5C, 1, 1, 2 ,0 },
{44, TEXT("BTCTS"), 0x4, 0x10, 0x5C, 0, 0, 1 ,0 },
{45, TEXT("BTRTS"), 0x4, 0x10, 0x5C, 1, 1, 2 ,0 },
{46, TEXT("STD_RXD/兼做GPS串口"), 0x4, 0x10, 0x5C, 1, 0, 2 ,0 },
{47, TEXT("STD_TXD/兼做GPS串口"), 0x4, 0x10, 0x5C, 1, 1, 1 ,0 },
{48, TEXT("GPIO48/PMIC_KEEPACT"), 0x4, 0x10, 0x60, 1, 1, 0 ,0 },
{49, TEXT("暫時(shí)未使用"), 0x4, 0x10, 0x60, 0, 1, 0 ,0 },
{50, TEXT("復(fù)位WLAN"), 0x4, 0x10, 0x60, 0, 1, 0 ,0 },
{51, TEXT("GPIO51/POWERBT_EN"), 0x4, 0x10, 0x60, 0, 1, 0 ,0 },
{52, TEXT("進(jìn)硬件測試程序"), 0x4, 0x10, 0x60, 1, 0, 0 ,0 },
{53, TEXT("GPIO53/EARPHONE_DETECH"), 0x4, 0x10, 0x60, 0, 0, 0 ,0 },
{54, TEXT("GPIO54/I2S_PWR_N"), 0x4, 0x10, 0x60, 0, 1, 0 ,0 },
{55, TEXT("GPIO55/CAMERA_PWR_N"), 0x4, 0x10, 0x60, 0, 1, 0 ,0 },
{56, TEXT("GPIO<56>/BT_RESET_N"), 0x4, 0x10, 0x60, 0, 1, 0 ,0 },
{57, TEXT("GPIO57/SOFTUSB"), 0x4, 0x10, 0x60, 0, 1, 0 ,0 },
{58, TEXT("LDD<0>"), 0x4, 0x10, 0x60, 1, 1, 2 ,1 },
{59, TEXT("LDD<1>"), 0x4, 0x10, 0x60, 1, 1, 2 ,1 },
{60, TEXT("LDD<2>"), 0x4, 0x10, 0x60, 1, 1, 2 ,1 },
{61, TEXT("LDD<3>"), 0x4, 0x10, 0x60, 1, 1, 2 ,1 },
{62, TEXT("LDD<4>"), 0x4, 0x10, 0x60, 1, 1, 2 ,1 },
{63, TEXT("LDD<5>"), 0x4, 0x10, 0x60, 1, 1, 2 ,1 },
{64, TEXT("LDD<6>"), 0x8, 0x14, 0x64, 1, 1, 2 ,1 },
{65, TEXT("LDD<7>"), 0x8, 0x14, 0x64, 1, 1, 2 ,1 },
{66, TEXT("LDD<8>"), 0x8, 0x14, 0x64, 1, 1, 2 ,1 },
{67, TEXT("LDD<9>"), 0x8, 0x14, 0x64, 1, 1, 2 ,1 },
{68, TEXT("LDD<10>"), 0x8, 0x14, 0x64, 1, 1, 2 ,1 },
{69, TEXT("LDD<11>"), 0x8, 0x14, 0x64, 1, 1, 2 ,1 },
{70, TEXT("LDD<12>"), 0x8, 0x14, 0x64, 1, 1, 2 ,1 },
{71, TEXT("LDD<13>"), 0x8, 0x14, 0x64, 1, 1, 2 ,1 },
{72, TEXT("LDD<14>"), 0x8, 0x14, 0x64, 1, 1, 2 ,1 },
{73, TEXT("LDD<15>"), 0x8, 0x14, 0x64, 1, 1, 2 ,1 },
{74, TEXT("L_FCLK"), 0x8, 0x14, 0x64, 1, 1, 2 ,1 },
{75, TEXT("L_LCLK"), 0x8, 0x14, 0x64, 1, 1, 2 ,1 },
{76, TEXT("L_PCLK"), 0x8, 0x14, 0x64, 1, 1, 2 ,1 },
{77, TEXT("LCD_DATA_EN"), 0x8, 0x14, 0x64, 0, 1, 2 ,1 },
{78, TEXT("0:調(diào)試串口,1:GPS"), 0x8, 0x14, 0x64, 0, 1, 0 ,0 },
{79, TEXT("usb端口切換,0串口1usb"), 0x8, 0x14, 0x64, 1, 1, 0 ,0 },
{80, TEXT("暫時(shí)未使用"), 0x8, 0x14, 0x68, 0, 1, 0 ,0 },
{81, TEXT("SSPTXD3_audio"), 0x8, 0x14, 0x68, 0, 1, 1 ,0 },
{82, TEXT("SSPRXD3_audio"), 0x8, 0x14, 0x68, 1, 0, 1 ,0 },
{83, TEXT("SSPSFRM3_audio"), 0x8, 0x14, 0x68, 1, 1, 0 ,0 },
{84, TEXT("SSPCLK3_audio"), 0x8, 0x14, 0x68, 0, 1, 1 ,0 },
{85, TEXT("GPS_SRESET_N"), 0x8, 0x14, 0x68, 0, 1, 0 ,0 },
{86, TEXT("1,GPS_DOENLOAD,0normal"), 0x8, 0x14, 0x68, 0, 1, 0 ,0 },
{87, TEXT("GPS SLEEP"), 0x8, 0x14, 0x68, 0, 1, 0 ,0 },
{88, TEXT("SSPSFRM2<兼做WLAN"), 0x8, 0x14, 0x68, 0, 1, 0 ,0 },
{89, TEXT("SSPTXD2<兼做WLAN"), 0x8, 0x14, 0x68, 0, 1, 3 ,0 },
{90, TEXT("GPIO90/VIBRATORCTRL"), 0x8, 0x14, 0x68, 0, 1, 0 ,0 },
{91, TEXT("CIF_DD<5>"), 0x8, 0x14, 0x68, 0, 0, 0,0 },
{92, TEXT("MMDAT<0>"), 0x8, 0x14, 0x68, 0, 0, 0 ,1 },
{93, TEXT("GPIO93/COMM_ONKEY"), 0x8, 0x14, 0x68, 0, 1, 0 ,0 },
{94, TEXT("GPS RF電源(NA)"), 0x8, 0x14, 0x68, 0, 0, 0 ,0 },
{95, TEXT("CIF_DD<4>"), 0x8, 0x14, 0x68, 0, 0, 0 ,0 },
{96, TEXT("GPIO96/LCDPANEL_PWREN"), 0x100, 0x10C, 0x6C, 1, 1, 0,0 },
{97, TEXT("KP_MKIN<3>"), 0x100, 0x10C, 0x6C, 0, 0, 3 ,0 },
{98, TEXT("GPIO<98>/APPS_IRQ"), 0x100, 0x10C, 0x6C, 0, 1, 0 ,0 },
{99, TEXT("控制VCC_SensorIO_3V3"), 0x100, 0x10C, 0x6C, 0, 1, 0 ,0 },
{100, TEXT("GPIO100/GSM_ABNORM_CTRL"), 0x100, 0x10C, 0x6C, 0, 1, 0 ,0 },
{101, TEXT("KP_MKIN<1>"), 0x100, 0x10C, 0x6C, 0, 0, 1 ,0 },
{102, TEXT("KP_MKIN<2>"), 0x100, 0x10C, 0x6C, 0, 0, 1,0 },
{103, TEXT("KP_MKOUT<0>"), 0x100, 0x10C, 0x6C, 1, 1, 2 ,0 },
{104, TEXT("KP_MKOUT<1>"), 0x100, 0x10C, 0x6C, 1, 1, 2 ,0 },
{105, TEXT("KP_MKOUT<2>"), 0x100, 0x10C, 0x6C, 1, 1, 2 ,0 },
{106, TEXT("KP_MKOUT<3>"), 0x100, 0x10C, 0x6C, 1, 1, 2 ,0 },
{107, TEXT("KP_MKOUT<4>"), 0x100, 0x10C, 0x6C, 1, 1, 2 ,0 },
{108, TEXT("CIF_DD<7>"), 0x100, 0x10C, 0x6C, 0, 0, 0 ,0 },
{109, TEXT("MMDAT<1>"), 0x100, 0x10C, 0x6C, 0, 1, 1 ,1 },
{110, TEXT("MMDAT<2>"), 0x100, 0x10C, 0x6C, 0, 1, 1 ,1 },
{111, TEXT("MMDAT<3>"), 0x100, 0x10C, 0x6C, 0, 1, 1 ,1 },
{112, TEXT("MMCMD"), 0x100, 0x10C, 0x70, 0, 1, 1 ,1 },
{113, TEXT("I2S_SYSCLK"), 0x100, 0x10C, 0x70, 1, 1, 1 ,0 },
{114, TEXT("CIF_DD<1>"), 0x100, 0x10C, 0x70, 0, 0, 0 ,0 },
{115, TEXT("CIF_DD<3>"), 0x100, 0x10C, 0x70, 0, 0, 0 ,0 },
{116, TEXT("CIF_DD<2>"), 0x100, 0x10C, 0x70, 0, 0, 0 ,0 },
{117, TEXT("STD_SCL"), 0x100, 0x10C, 0x70, 1, 1, 1 ,0 },
{118, TEXT("STD_SDA"), 0x100, 0x10C, 0x70, 1, 1, 1 ,0 }
};
pGpioSleepNotes pGpioSleepSum[]=
{
{TEXT("KeyPad"),0x00000000},
{TEXT("RTC TIME"),0x80000000},
{TEXT("PMIC GPIO0"),0x00000001},
{TEXT("WIRELESS "),0x00001000},
{TEXT("Unkown"),0x00001010},
};
// CReportDlg dialog
IMPLEMENT_DYNAMIC(CReportDlg, CDialog)
CReportDlg::CReportDlg(ReportDlgType curType ,CWnd* pParent /*=NULL*/)
: CDialog(CReportDlg::IDD, pParent)
{
curDlgType = curType;
curSelItem = 0;
}
CReportDlg::~CReportDlg()
{
}
void CReportDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
DDX_Control(pDX, IDC_LIST_REPORT, m_ListReport);
}
BEGIN_MESSAGE_MAP(CReportDlg, CDialog)
ON_WM_SIZE()
ON_COMMAND(ID_GPIOMODIFY, &CReportDlg::OnGpiomodify)
ON_COMMAND(ID_GPIOHELP, &CReportDlg::OnGpiohelp)
ON_WM_DESTROY()
ON_MESSAGE( WM_GPIOSET,onGpioEdit )
END_MESSAGE_MAP()
// CReportDlg message handlers
BOOL CReportDlg::OnInitDialog()
{
CDialog::OnInitDialog();
g_pGPIORegs =NULL;
PHYSICAL_ADDRESS RegPA;
if (g_pGPIORegs == NULL)
{
RegPA.QuadPart = BULVERDE_BASE_REG_PA_GPIO;
g_pGPIORegs = (volatile BULVERDE_GPIO_REG *) MmMapIoSpace(RegPA, 0x400, FALSE);
}
ImageList.Create(16,16,TRUE,2,2);
ImageList.Add(AfxGetApp()->LoadIcon(IDI_ICON1));
ImageList.Add(AfxGetApp()->LoadIcon(IDI_ICON2));
m_ListReport.SetImageList(&ImageList,LVSIL_SMALL);
m_ListReport.SetExtendedStyle(LVS_EX_FULLROWSELECT /*| LVS_EX_CHECKBOXES */);
SHINITDLGINFO shidi;
shidi.dwMask = SHIDIM_FLAGS;
shidi.dwFlags = SHIDIF_DONEBUTTON | SHIDIF_SIPDOWN|SHIDIF_SIZEDLG /*|SHIDIF_SIZEDLGFULLSCREEN | SHIDIF_EMPTYMENU SHIDIF_FULLSCREENNOMENUBAR*/;
shidi.hDlg = m_hWnd;
::SHInitDialog(&shidi);
//創(chuàng)建菜單
SHMENUBARINFO mbi;
memset(&mbi, 0, sizeof(SHMENUBARINFO));
mbi.cbSize= sizeof(SHMENUBARINFO);
mbi.hwndParent= m_hWnd;
mbi.dwFlags= SHCMBF_HMENU /*SHCMBF_HIDESIPBUTTON */;
mbi.hInstRes= AfxGetInstanceHandle();
mbi.nBmpId= 0;
mbi.cBmpImages= 0;
switch(curDlgType)
{
case GPIO_DLG:
mbi.nToolBarId= IDR_MENU1;
if (!SHCreateMenuBar(&mbi))
{
g_hWndMenuBar = NULL;
}
else
{
g_hWndMenuBar = mbi.hwndMB;
}
m_ListReport.InsertColumn(0, TEXT("序號"), LVCFMT_LEFT, 40);
m_ListReport.InsertColumn(1, TEXT("GPLR"), LVCFMT_LEFT, 40);
m_ListReport.InsertColumn(2, TEXT("GPDR"), LVCFMT_LEFT, 40);
m_ListReport.InsertColumn(3, TEXT("GAFR"), LVCFMT_LEFT, 50);
m_ListReport.InsertColumn(4, TEXT("名稱"), LVCFMT_LEFT, 100);
DisplayGPIOInfo();
break;
case WAKESLEEP_DLG:
m_ListReport.InsertColumn(0, TEXT("序號"), LVCFMT_LEFT, 30);
m_ListReport.InsertColumn(1, TEXT("描述"), LVCFMT_LEFT, 70);
m_ListReport.InsertColumn(2, TEXT("PEDR"), LVCFMT_LEFT, 90);
m_ListReport.InsertColumn(3, TEXT("PKSR"), LVCFMT_LEFT, 90);
m_ListReport.InsertColumn(4, TEXT("RTSR"), LVCFMT_LEFT, 90);
m_ListReport.InsertColumn(5, TEXT("時(shí)間"), LVCFMT_LEFT, 170);
DispWakeSleepInfo();
break;
default:
break;
}
SetCursor(LoadCursor(NULL,IDC_NO));
return TRUE;
}
BOOL CReportDlg::DisplayGPIOInfo()
{
//PVOID g_pGPIORegs;
DWORD iGPLR=0,iGPDR=0,iGAFR=0,i=0;
DWORD GPIOStart=0,GPIONumber = sizeof(pGpioSum)/sizeof(pGpioNotes);
TCHAR tmp[24];
//PHYSICAL_ADDRESS RegPA;
//RegPA.QuadPart = BULVERDE_BASE_REG_PA_GPIO;
//g_pGPIORegs= MmMapIoSpace(RegPA, 0x400, FALSE);
m_ListReport.DeleteAllItems();
for(i=GPIOStart;i<GPIONumber;i++)
{
if(g_pGPIORegs!=NULL)
{
iGPLR=*(volatile int *)((volatile char *)g_pGPIORegs+pGpioSum[i].GPLRAddr) >>(i%32)& 1;
iGPDR=*(volatile int *)((volatile char *)g_pGPIORegs+pGpioSum[i].GPDRAddr) >>(i%32)& 1;
iGAFR=*(volatile int *)((volatile char *)g_pGPIORegs+pGpioSum[i].GAFRAddr) >>((i%16)*2)& 3;
BOOL isError = FALSE;
DWORD subItem = 0;
swprintf(tmp,_T("%d"),i);
m_ListReport.InsertItem(i,tmp);
if (iGPLR != pGpioSum[i].GPLR)
{
swprintf(tmp,_T("*"));
}
else
{
swprintf(tmp,_T(""));
}
StringCchCat(tmp,sizeof(tmp),(iGPLR==0)?_T("L"):_T("H"));
subItem++;
m_ListReport.SetItemText(i,subItem,tmp);
if (iGPDR != pGpioSum[i].GPDR)
{
swprintf(tmp,_T("*"));
}
else
{
swprintf(tmp,_T(""));
}
StringCchCat(tmp,sizeof(tmp),(iGPDR==0)?_T("IN"):_T("OUT"));
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -