|
我自己来结贴,总结起来就是重新安装PB5.0和打上2008年ARMV4I的全年补丁后编译;
TQ2440支持SDHC
1.安装"G:\天嵌2440开发板光盘资料\20090905版光盘资料\WinCE资源\WinCE源码"里头的
WinCEPB50-081231-Product-Update-Rollup-Armv4I.msi
2.参考".G:\天嵌2440开发板光盘资料\20090905版光盘资料\TQ2440开发板配套教材集"中的
天嵌科技出品--WinCE开发完全手册(V1.1)_20090823.pdf的P76~P68的讲解;
2-1.在platform->setting->environment中设置环境变量IMGSDBUS2=1,因为只有设置了这个环境变量才会让系统支持大容量的SD卡;
理论上这样可以,但是不行;
所以在编译完一次WinCE组建和内核包后,
在"D:\WINCE500\PUBLIC\COMMON\OAK\FILES\common.bib"中和
在"D:\WINCE500\PBWorkspaces\TQ2440A\WINCE500\TQ2440_ARMV4I\cesysgen\oak\files\common.bib"中
在CE_MODULES_SDBUS项做强制修改,如下:
#if defined IMGSDBUS2
; @CESYSGEN IF CE_MODULES_SDBUS2
sdbus.dll $(_FLATRELEASEDIR)\sdbus2.dll NK SH
; @CESYSGEN ENDIF CE_MODULES_SDBUS2
#else
; @CESYSGEN IF CE_MODULES_SDBUS
sdbus.dll $(_FLATRELEASEDIR)\sdbus.dll NK SH ;;note by Rn
sdbus.dll $(_FLATRELEASEDIR)\sdbus2.dll NK SH ;;change by Rn
; @CESYSGEN ENDIF CE_MODULES_SDBUS
#endif
2-2.在\TQ2440\Src\Drivers\SDHC\SDHCBASE的sdiocontrollerbase.cpp文件中修改:
在CSDIOControllerBase::SendCommand()函数中case ResponseR6:之后添加一行:
case ResponseR7:
在CSDIOControllerBase::GetCommandResponse()函数中case ResponseR1b:之后添加一行:
case ResponseR7:
3.重新编译BSP即可;
4.
测试NK_20121219.bin版
打上2008全年ARMV4I补丁并重新编译镜像+理论最大支持32GB的SDHC(已测试Kingston的2G+闪迪Class4的4G+KingstonClass4的8G和16G);
|
|