wince 6.0 BSP 移植问题

移植在我的平台上出现的几个问题,记录如下:

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

 
 
USB驱动没有这么顺利,什么都不改动。
编译出错。
错误 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人员老爱弄的错误。

末整理,待续。。。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ATHEROS The Licensed Software includes software developed by Atheros Communications, Inc. (“Atheros”). You must separately obtain rights beyond evaluation and demonstration in connection with the Licensed Software from Atheros. ARM The Licensed Software may include software developed by ARM, Ltd. The software may only be used with an ARM microprocessor, which includes the Freescale i.MX and MXC product lines. CODEC STANDARDS This software includes codec standards for encoding and decoding audio and visual content. You are not licensed for any implementation or distribution of the technology in any commercial product or service such as runtime images that you develop using this software. You are responsible for determining and securing these license rights. CSR The Licensed Software includes software and hardware developed by Cambridge Silicon Radio, Inc. (“CSR”). You must separately obtain rights beyond evaluation and demonstration in connection with the Licensed Software from CSR. AVC/H.264 VISUAL STANDARD. This software may include AVC/H.264 video decoding technology, MPEG LA, L.L.C. requires this notice: THIS PRODUCT IS LICENSED UNDER THE AVC/H.264 PATENT PORTFOLIO LICENSES FOR THE PERSONAL AND NON-COMMERCIAL USE OF A CONSUMER TO (A) ENCODE VIDEO IN COMPLIANCE WITH THE AVC/H.264 STANDARD (“AVC/H.264 VIDEO”) OR (B) DECODE AVC/H.264 VIDEO THAT WAS ENCODED BY A CONSUMER ENGAGED IN A PERSONAL AND NON-COMMERCIAL ACTIVITY AND/OR WAS OBTAINED FROM A VIDEO PROVIDER LICENSED TO PROVIDE AVC/H.264 VIDEO. NO LICENSE IS GRANTED OR WILL BE IMPLIED FOR ANY OTHER USE. If you have questions about the AVC/H.264 visual standard, please contact MPEG LA, L.L.C., 250 Steele Street, Suite 300, Denver, Colorado 80206; www.mpegla.com. MPEG-2 VISUAL STANDARD. This software includes MPEG-2 visual decoding technology. MPEG LA, L.L.C. requires this notice: USE OF THIS PRODUCT IN ANY MANNER THAT COMPLIES WITH THE MPEG 2 VISUAL STANDARD IS PROHIBITED, EXCEPT FOR USE DIRECTLY
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值