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

📄 reportdlg.cpp

📁 wince中工程模式用来测试硬件的驱动是否好用
💻 CPP
📖 第 1 页 / 共 2 页
字号:
// 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 总电源开关"),	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背光灯开关"),	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总电源开关"),	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("暂时未使用"),	0x4,	0x10,	0x60,	0,	1,	0	,0 },
	{50,	TEXT("复位WLAN"),	0x4,	0x10,	0x60,	0,	1,	0	,0 },
	{51,	TEXT("GPIO51/POWERBT_EN"),	0x4,	0x10,	0x60,	0,	1,	0	,0 },
	{52,	TEXT("进硬件测试程序"),	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:调试串口,1:GPS"),	0x8,	0x14,	0x64,	0,	1,	0	,0 },
	{79,	TEXT("usb端口切换,0串口1usb"),	0x8,	0x14,	0x64,	1,	1,	0	,0 },
	{80,	TEXT("暂时未使用"),	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);


	//创建菜单
	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("时间"), 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"));

⌨️ 快捷键说明

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