4360|8

1

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

WINCE6.0下BSP移植问题 [复制链接]

有人做过WINCE6.0下BSP的移植吗?我是个学生,毕设做的是把一个WINCE420版本的BSP移植到WINCE600下,之前没有过移植的经验,想请教有过这方面经验的高手指点。

最新回复

可能是这个原因,但是现在我的做法是:直接把strlenW的实现代码拷贝到当前文档中。虽然这个做法不规范,但是目前也只能先这么做了。  详情 回复 发表于 2009-5-2 11:52
点赞 关注

回复
举报

1

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
汗,都快毕业了。

5.0BSP 到6.0 还是比较好办的,4.2就难了。
 
 

回复

1

帖子

0

TA的资源

禁止访问

板凳
 
提示: 作者被禁止或删除 内容自动屏蔽
 
 
 

回复

2

帖子

0

TA的资源

一粒金砂(初级)

4
 
1. 官方說法, 請參考 http://msdn.microsoft.com/en-us/library/aa917748.aspx => "Migrating a BSP to Windows Embedded CE 6.0"

2. 建議去找一個已經有 wince 6.0 的 bsp 的板子來做, 或是找 5.0 的 bsp 來改.

Paul, Chao @ Techware
 
 
 

回复

6

帖子

0

TA的资源

一粒金砂(中级)

5
 
MS的帮助文档我也有看过,哪里是说一个大概和方向。根据文档说明,4.20的OAL和内核统一编译成一个kernel.exe,而6.0把OAL和内核分开了,分成OAL.EXE和kern.dll。这就出现一个问题了,4.20中内核要用到OAL的函数,只要OAL的函数声明为外部就行了;而到了6.0内核需要得到OAL的函数指针才可以调用。
 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

6
 
现在我遇到的问题是,OAL中有一个函数的实现在内核模块中的一个.lib中,照理说编译时应该包含该.lib才对,可是参照PB自带的BSP中的SOURCES文件,却没有发现包含该.lib。
下面是编译出错的地方:
BUILD: [00:0000000065:PROGC ] Building LINK Pass in C:\WINCE600\PLATFORM\XSBase255\src\oal\oalexe\KERN\ directory.
BUILD: [01:0000000078:PROGC ] Linking C:\WINCE600\platform\XSBASE255\target\ARMV4I\retail\oal.exe
BUILD: [01:0000000096:ERRORE] oal.lib(oemioctl.obj) : error LNK2019: unresolved external symbol strlenW referenced in function OEMIoControl
BUILD: [01:0000000097:ERRORE] oal.lib(oemioctl.obj) : error LNK2019: unresolved external symbol SetKernelCommDev referenced in function OEMIoControl

就是这个  strlenW 函数, 这个函数在C:\WINCE600\PRIVATE\WINCEOS\COREOS\FSD\RELFSD中的cefs.c文件中实现:
unsigned int strlenW(const wchar_t *wcs)
{
    return wcslen (wcs);
}

该文件所在的目录下的SOURCES文件内容如下:
TARGETNAME=relfsd
DLLENTRY=DllMain
TARGETTYPE=LIBRARY
CDEFINES = \
    $(CDEFINES) -DNO_PAGING
WINCEOEM=1


SOURCES = \
    file.c      \
    main.c     \
    path.c  \
    find.c \
    driver.c \
    cefs.c

TARGETDEFNAME=relfsd
DEFFILE=relfsd.def
WINCETARGETFILE0=$(_COMMONOAKROOT)\lib\$(_CPUINDPATH)\relfsd.def

然而,BSP中要编译成OAL.EXE部分并没有包含此.lib
 
 
 

回复

15

帖子

0

TA的资源

一粒金砂(高级)

7
 
1. 6.0 kitl 己經獨立出來成另一個 dll 了, 故不會有 kern 這個 subfolder.

2. 若你覺得需要, 可以自行將 relfsd.lib link 進來.

Paul, Chao @ Techware
 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

8
 
1. 6.0 kitl 己經獨立出來成另一個 dll 了, 故不會有 kern 這個 subfolder.

2. 若你覺得需要, 可以自行將 relfsd.lib link 進來.

Paul, Chao @ Techware
 
 
 

回复

3

帖子

0

TA的资源

一粒金砂(初级)

9
 
引用 6 楼 paul_chao 的回复:
1. 6.0 kitl 己經獨立出來成另一個 dll 了, 故不會有 kern 這個 subfolder.

2. 若你覺得需要, 可以自行將 relfsd.lib link 進來.

Paul, Chao @ Techware


可能是这个原因,但是现在我的做法是:直接把strlenW的实现代码拷贝到当前文档中。虽然这个做法不规范,但是目前也只能先这么做了。
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/6 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表