WINCE6.0下BSP移植问题

a747lulu747 2009-04-30 02:09:53
有人做过WINCE6.0下BSP的移植吗?我是个学生,毕设做的是把一个WINCE420版本的BSP移植到WINCE600下,之前没有过移植的经验,想请教有过这方面经验的高手指点。
...全文
139 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
a747lulu747 2009-05-02
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 paul_chao 的回复:]
1. 6.0 kitl 己經獨立出來成另一個 dll 了, 故不會有 kern 這個 subfolder.

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

Paul, Chao @ Techware
[/Quote]

可能是这个原因,但是现在我的做法是:直接把strlenW的实现代码拷贝到当前文档中。虽然这个做法不规范,但是目前也只能先这么做了。
paul_chao 2009-05-02
  • 打赏
  • 举报
回复
1. 6.0 kitl 己經獨立出來成另一個 dll 了, 故不會有 kern 這個 subfolder.

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

Paul, Chao @ Techware
paul_chao 2009-05-02
  • 打赏
  • 举报
回复
1. 6.0 kitl 己經獨立出來成另一個 dll 了, 故不會有 kern 這個 subfolder.

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

Paul, Chao @ Techware
paul_chao 2009-05-01
  • 打赏
  • 举报
回复
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
a747lulu747 2009-05-01
  • 打赏
  • 举报
回复
现在我遇到的问题是,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
a747lulu747 2009-05-01
  • 打赏
  • 举报
回复
MS的帮助文档我也有看过,哪里是说一个大概和方向。根据文档说明,4.20的OAL和内核统一编译成一个kernel.exe,而6.0把OAL和内核分开了,分成OAL.EXE和kern.dll。这就出现一个问题了,4.20中内核要用到OAL的函数,只要OAL的函数声明为外部就行了;而到了6.0内核需要得到OAL的函数指针才可以调用。
zhj8727 2009-04-30
  • 打赏
  • 举报
回复
UPING
gooogleman 2009-04-30
  • 打赏
  • 举报
回复
汗,都快毕业了。

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

19,502

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 嵌入开发(WinCE)
社区管理员
  • 嵌入开发(WinCE)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧