pb生成系统时的一些错误】
首先当你看着FriendlyArm的用户手册来用PB生成自己的WINCE系统或直接用它提供的那个mini2440.pbxml时,会发现提示:
One or more BSP's that are not installed were found in the selected Platform Builder project file. The configuration will be grayed out in the configuration combobox.
然后你的Sysgen按钮不能用。就是因为:
一、把光盘里面的那个smdk2440这个BSP考到Platform文件夹下(文件夹的名字一定要改为smdk2440),然后把这个BSP加到PB中;
二、把光盘中mini2440-ce5-bsp-20100202这个BSP文件夹COPY到Platform中(文件夹名字一定要改成:mini2440),然后把这个BSP加到PB中;
再操作就不会有上面的问题了
MFC程序不正常?
当你烧写好一个系统后,想调试一个简单的MFC程序,当你用到OnTimer显示时间的时候,你会发现程序很不正常。用VS也进不了调试状态。这时你要注意一下板子上的时间,可能会是2488年*月*日,这个时间已经超出了最大时间,把时间改成当前时间就可以了。
【在BSP中修改】
隐藏任务栏方法:更改PUBLIC源代码。位置在c:\wince500\public\shell\oak\hpc\EXPLORER\INC\taskbar.hxx文件,将宏TASKBAR_HEIGHT定义为0【原值为26】。
其实后来我多次实验,发现直接在WINDOWS CE下面隐藏任务栏就行了。
删除一些桌面快捷方式:
【C:\WINCE500\PUBLIC\WCESHELLFE\OAK\FILES\wceshellfe.dat】
;Directory("\Windows\LOC_DESKTOP_DIR"):-File("LOC_INTERNETEXPLORER_LNK", "\Windows\iexplore.lnk") //IE快捷方式
【C:\WINCE500\PUBLIC\WCEAPPSFE\OAK\FILES\wceappsfe.dat】
;Directory("\Windows\LOC_DESKTOP_DIR"):-File("LOC_MSPWORD_LNK","\Windows\wordpad.lnk") //WordPad图标
;Directory("\Windows\LOC_DESKTOP_DIR"):-File("LOC_MYDOCUMENTS_LNK", "\Windows\mydocs.lnk") //我的文档图标
【C:\WINCE500\PUBLIC\DIRECTX\OAK\FILES\DIRECTX.dat】
;Directory("\Windows\LOC_DESKTOP_DIR"):-File("Media Player.lnk", "\Windows\ceplayer.lnk") //Media Player图标
【C:\WINCE500\PUBLIC\VIEWERS\OAK\FILES\viewers.bib】
;docviewer.lnk $(_FLATRELEASEDIR)\Docviewer.lnk NK //WordViewor
Mini2440打印串口调试信息,2440的串口0被应用层用于COM1,导致不能打印调试信息。做以下修改即可:
1.首先在platform.reg屏蔽掉串口0的注册表信息【注册表前面加“;”就行了】。
;[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\Serial0]
; "DeviceArrayIndex"=dword:0
; "Irq"=dword:1c
; "MemBase"=dword:50000000
; "MemLen"=dword:2C
; "InterruptBitsShift"=dword:0 ; UART 0 Interrupt Sub Register shift bit.
; "ISTTimeouts"=dword:200 ; every 512 ticks checking Modem status.
; "Prefix"="COM"
; "Index"=dword:1
; "Dll"="serial_smdk2440.dll"
; "Order"=dword:0
; "Priority"=dword:0
; "Port"="COM1:"
; "DeviceType"=dword:0
; "FriendlyName"="COM-1"
; "Tsp"="unimodem.dll"
; "IClass"="{CC5195AC-BA49-48a0-BE17-DF6D1B0173DD}"
; "DevConfig"=hex: 10,00, 00,00, 05,00,00,00, 10,01,00,00, 00,4B,00,00, 00,00, 08, 00, 00, 00,00,00,00
;ENDIF
2、其次在目录WINCE500\PLATFORM\mini2440\Src\Inc中找到options.h找到
view plaincopy to clipboardprint?
// --- by customer
//#define KITL_NONE
#define KITL_SERIAL_UART0
//#define KITL_SERIAL_UART1
//#define KITL_USBSERIAL
//#define KITL_ETHERNET
然后 解除对#define KITL_SERIAL_UART0的屏蔽即可
修改液晶屏:
在文件C:\WINCE500\PLATFORM\mini2440\Src\Inc\options.h中应该有液晶屏的相关定义,修改成你的屏幕大小即可
创建桌面快捷方式:
使用PB,参数视图中在platform.dat文件中:增加
Directory("\windows\桌面"):-File("超级播放器.lnk","\windows\player.lnk")
Root:-Directory("QZCorp")
Directory("\QZCorp"):-File("PWM-Buzzer.lnk","\Windows\PWM-Buzzer.lnk")
Directory("\windows\桌面"):-File("勤智科技.lnk","\windows\QZCorp.lnk")
修改NandFlash名称:在platform.reg中修改:
[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\SMFLASH]
"Folder"="NandFlash"
解决DM9000网卡只能收不能发送数据:
修改驱动代码C:\WINCE500\PLATFORM\mini2440\Src\Drivers\dm9000\dm9000.cpp
void C_DM9000::DeviceResetPHYceiver(void)
{
U16 value = DeviceReadPhy(0x00, 0x00); //修改BMCR的12、13位置0
value &= 0xCFFF;
DeviceWritePhy(0x00, 0x00, value);
return;
}
DM9000大于1472后ping包不成功的问题
在driver.cpp中添加:#define IMPL_SEND_INDICATION就可以了。IMPL_SEND_INDICATION就是定义是否通知NDIS的,如果没有这个东西,很可能就会造成NDIS和Miniport之间的不同步,加上定义以后,OK了,而且即使出现了异常,上层也能及时Reset Miniport,至少不会造成网卡无法工作的情况
*************************************************************************************************************************************
【在WINDOWS系统下修改】
开机自动运行,增加string value:
[HKEY_LOCAL_MACHINE\init]
"Launch80"="NandFlash\你的程序.exe"
校准屏幕,不用按ESC键退出,增加注册表值:
[HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\KEYBD]
"Status"=dword:0
去除“My Device(我的设备)”“Recycle Bin(回收站)”快捷方式
删除注册表:
[HKEY_LOCAL_MACHINE\Explorer\Desktop]
;"{000214A0-0000-0000-C000-000000000046}"="My Device"
;"{000214A1-0000-0000-C000-000000000046}"="Recycle Bin"