wince 6.0 BSP 移植问题
来源:互联网 发布:三菱plc编程入门 编辑:程序博客网 时间:2024/05/01 08:18
移植在我的平台上出现的几个问题,记录如下:
1、编译到oalexe时,提示HalWrapper中的LocalAlloc和LoaclFree是未定义的外部变量,在sources的TARGETLIBS中加"$(_COMMONSDKROOT)/lib/$(_CPUINDPATH)/coredll.lib /"
2、如果提示某lib是unexcepted,往往是souces中该lib后面有空格
3、编译eboot出"error LNK2001: unresolved external symbol __security_cookie"错,在sources的TARGETLIBS中加"$(_COMMONOAKROOT)/lib/$(_CPUINDPATH)/gsnull.lib"
4、无法生成NBL1相关文件(有用的是nb1和nb2,nb0因为MS链接器的原因其实只有一个跳转指令)。
错误信息:Error: Ram free start is after ram end.Fatal error hit, exiting...
build.log信息:
Start RAM: 33ff0000
Start of free RAM: 33ff2000
End of RAM: 33ff1000
修改bib中的RAM为3000,则End of RAM为33ff3000可生成NBL1相关文件
5、显卡驱动:因为2440的驱动支持ddraw,所以关于surface有很多变量在wince6中无定义,须大改
解决办法:将驱动开发网2440的wincebsp包中显示驱动替换现有的,修改2440为2450。
保留2d_accel_lib.lib、s3c2450disp.cpp、s3c2450disp.h、s3c2450disp.def、util.s、sources这几个文件,做少量修改
a)s3c2450disp.h中要将FLATPTR改成ULONG_PTR
b)s3c2450disp.cpp中要改四个函数指针赋值的地方
c)sources中dxdrvguid.lib要去掉
注:关于替换surface部分,因为是硬件实现层上的抽象应用ddraw,所以可以用2440的来替换。
6、无法出现分区和SD卡盘符:见第10条
7、添加platform manage组件后提示找不到cemgrc.exe,wince6已经不用这个,而是换成CoreCon
http://bairaulinter.spaces.live.com/blog/cns!9FB25931ACFBBC26!157.entry
http://blog.csdn.net/dandebin1986/archive/2009/04/19/4092771.aspx
8、无法运行vs2005 remote tools,似乎与上面一条有关
9、Ondisk.dll中的MapCallerPtr在wince6要进行修改(参msdn和6410bsp)http://msdn.microsoft.com/en-us/library/aa932632.aspx
驱动不需要SetKMode,因为都是在kernel态运行。
可以用CeAppCompat.exe检测wince5=>wince6不支持的函数。
CeAppCompat -i ondisk.dll -o NativeAppResults
10、wince5对nandflash做fatfs磁盘的管理是用fatfsd.dll,在wince6中没有fatfsd.dll,因此无法出出盘符,但是在存储管理器中能看到分区信息。在注册表中做如下改动:
[HKEY_LOCAL_MACHINE/System/StorageManager/Profiles/FlashDisk/FATFS]
"FriendlyName"="PocketMory FAT FileSystem"
;"Dll"="fatfsd.dll" ===>注释此句,会调用BuiltIn中的ondisk.dll做为fatfs管理器(经验证,wince5也不需要)
"Flags"=dword:00000014
"FormatTfat"=dword:1
"CheckForFormat"=dword:1
;"EnableCacheWarm"=dword:0
注:bibdrv.dll做为binfs管理器,NK加载到RAM仅仅是内存映像,需要由bibdrv从nandflash加载binfs信息(linux也是先加载内核然后是文件系统),binfs信息存放在nandflash位置(估计在block0、eboot、nk、mbr的后面)及大小待研究。从存储管理器可以看出有四个分区,三个是空余flash划分的fatfs,一个是binfs
编译出错。
错误 1 error C2039: 'dwCallerPermissions' : is not a member of '_STransfer' H:\WINCE600\PLATFORM\QxCE6BSP\src\Drivers\Usb\Function\.\sc2440pdd.cpp 620
错误 2 error C2039: 'dwCallerPermissions' : is not a member of '_STransfer' H:\WINCE600\PLATFORM\QxCE6BSP\src\Drivers\Usb\Function\.\sc2440pdd.cpp 755
sc2440pdd.cpp修改
找到下面语句将其注释掉,共有两处
SetProcPermissions(pTransfer->dwCallerPermissions);
再次单独编译USB驱动
错误 3 BUILD: [01:0000000066:ERRORE] NMAKE : U1073: don't know how to make 'H:\WINCE600\OSDesigns\Try2440CE6\Try2440CE6\Wince600\QxCE6BSP_ARMV4I\cesysgen\oak\lib\ARMV4I\debug\ufnmdd.lib'
估计是找不到这个ufnmdd.lib,有两种愿意:一是我组件选上还没有编译出这个lib。二是这个lib换成了别的名字。
我在其他BSP查看是否有这个东西
H:\WINCE600\PLATFORM\H4SAMPLE\SRC\DRIVERS\USBD\sources(33): $(_COMMONOAKROOT)\lib\$(_CPUINDPATH)\ufnmdd.lib \
H:\WINCE600\PLATFORM\MAINSTONEIII\SRC\DRIVERS\USBFN\sources(34): $(_COMMONOAKROOT)\lib\$(_CPUINDPATH)\ufnmdd.lib \
和2440 的sources是一致的。
——从这里可以看出,wince6.0还是有这个这个lib的,估计还没有选上组件编译出来。
果然,选上组件就编译通过了。还有加入VGA portrait.... 那个窗口也能自动适应了,哈哈。
可是这个wince怎么跑的这么慢呢?难道是debug的原因?汗。
哎,同步软件连接不上。后来发现串口信息。
DEVICE!CreateDevice: couldn't load 'sc2440usbfn.dll' -- error 193
CreateDevice: creation of type 'UFN', index 1, lib 'sc2440usbfn.dll' returning 0x00000000, error code 2
看一下BIB文件SHK写成了SH,哎,这是wince5.0人员老爱弄的错误。
- wince 6.0 BSP 移植问题
- wince 6.0 BSP移植文档
- Wince 6.0 BSP的移植(一)
- Wince 6.0 BSP的移植(二)
- Wince 6.0 BSP的移植(一)
- Wince 6.0 BSP的移植(二)
- Wince BSP从5.0移植到6.0(三)
- Wince BSP从5.0移植到6.0(三)
- Wince 6 BSP编译出错问题
- 巧借WinCE BSP移植,嵌入式系统开发有捷径
- 巧借WinCE BSP移植,嵌入式系统开发有捷径
- (转载)巧借WinCE BSP移植,嵌入式系统开发有捷径
- 巧借WinCE BSP移植,嵌入式系统开发有捷径
- 巧借WinCE BSP移植 嵌入式系统开发有捷径
- 巧借WinCE BSP移植,嵌入式系统开发有捷径
- WinCE 6.0 BSP Directory Structure(BSP目录结构ZL)
- win CE 5.官方bsp 移植问题
- WINCE 6.0 BSP包内容介绍
- 一切成功源于积累——20140106-20140110周 复盘(1) 美加
- Web有哪几个方面的特点?
- 诗句
- 一切成功源于积累——20140106-20140110周 复盘(2) 镑美
- 一切成功源于积累——20140106-20140110周 复盘(3) 澳美
- wince 6.0 BSP 移植问题
- 今起可购除夕火车票 12306网站或迎“最强考验”
- 一切成功源于积累——20140106-20140110周 复盘(4) 黄金
- 滤波与锐化
- 深入理解计算机系统笔记
- Longest Palindromic Substring
- 国际著名黑客大赛介绍与比较
- SVN部署环境文件
- 9条经典的编程语录