5.0移植到6.0OAL遇见的问题

sigon   2009-9-24 20:23 楼主
背景:
我在网上下载了5.0mini2440到6.0的BSP,但是在编译的时候出现错误,于是,我打算在此基础之上进行移植。它的bootloader我没有动,把SRC目录中的dir中去掉driver,只编译:common,oal和bootloader.FILES目录下的platform.reg,platform.bib和config.bib文件均无改动。定制最小系统,选择PDA----MOBILE HANDLER,其他选择默认,直接编译,出现以下错误:
Windows CE ROM Image Builder v4.0.120 Copyright (c) Microsoft Corporation
Built: Jul 25 2006 16:37:02

Error: Could not find file 'D:\WINCE600\OSDesigns\OSDesign4\OSDesign4\RelDir\smdk2440a_ARMV4I_Debug\oal.exe' on disk
nk.exe D:\WINCE600\OSDesigns\OSDesign4\OSDesign4\RelDir\smdk2440a_ARMV4I_Debug\oal.exe NK SHZ

Error: failed setting line
makeimg: FATAL ERROR: Command returned non-zero exit code 1 (dec).
makeimg: FATAL ERROR: Command returned non-zero exit code 1 (dec).

BLDDEMO: OSDesign4 build complete.

OSDesign4 - 4 error(s), 16 warning(s)

WinCE5.0将内核、OAL和KITL链接成一个内核可执行文件NK.exe。而WinCE6.0将这三者分开,分别对应Kernel.dll、OAL.exe和KITL.dll。

为什么在我的D:\WINCE600\PLATFORM\SMDK2440A\target\ARMV4I\retail下没有oal.exe和nk.exe呢,他们是怎样生成的?
希望朋友们多多指教!给点建议或者提示也是欢迎的!
谢谢哦!

回复评论 (13)

OAL 能编译通过么?
点赞  2009-9-24 20:34
就是通不过呗,我想建立一个基于bootloader和oal的最小系统!可是在编译OAL的时候出现以上错误,还望指教!
点赞  2009-9-24 20:42
先Build and Sysgen。。。
把OALLIB编译通过了,生成OAL.lib
确保OALEXE中sources中的 lib 依赖都存在,在编译OALEXE 生成oal.exe
点赞  2009-9-24 20:52
不错的贴
点赞  2009-9-25 04:35
在编译OAL的时候出现如下错误:
BUILD: [01:0000000108:ERRORE] NMAKE :  U1073: don't know how to make 'D:\WINCE600\platform\smdk2440a\lib\ARMV4I\debug\oal_cache_s3c2440a.lib'
BUILD: [01:0000000110:ERRORE] NMAKE.EXE TargetExeFiles  -i -c BUILDMSG=Stop.  BUILDROOT=D:\WINCE600\PLATFORM\SMDK2440A CLEANBUILD=1 LINKONLY=1 NOPASS0=1 failed - rc = 2
我想问下:oal_cache_s3c2440a.lib,oal_abort_s3c2440a.lib这些静态库是自己添加的还是BUILD的时候生成的?
我在WINCE600里面并没有搜索到这些静态库啊!
请问哈怎么办呢?
苦恼...
点赞  2009-9-25 09:07
xilidecai还没搞掂呀,呵呵
首先,应该模版应该选择Custom Device,而不是PDA----MOBILE HANDLER,它定制出来会加上一些不必要的组件
然后,确保你的PB6。0是R2版的,按三楼的方法试试.
点赞  2009-9-25 09:15
是呗,他们都是一周搞定,我都快一周了,还没有搞定,惭愧啊!
好滴,我试试~~~
先谢过:)
点赞  2009-9-25 09:24
PB6.0里面没有2440的一些COMMON组件的,不知道你下的BSP有没有这些组件,这些组件是Cache,Memory之类的静态库,如果没有的话只能重新找带那些组件的BSP了.
点赞  2009-9-25 09:40
引用: 引用 7 楼 xilidecai 的回复:
是呗,他们都是一周搞定,我都快一周了,还没有搞定,惭愧啊!
好滴,我试试~~~
先谢过:)


在我的资源里有移植文档的,下载来看看,这东西说难不难,当时搞了一周,所有驱动都搞上去了,
多思考,看帮助就OK了。

千万不要已下载选个mobile handle,而要选custom device

一步步来
OAL——》显示驱动——》touch——》FMD,其他都随意了。很容易的了。
点赞  2009-9-25 10:04
我从网上下了一个别人移植好的2440--6.0的BSP,在SMDK2440A\Src\Common下面是有Cache,Memory这些组件的,只是我编译不出那些静态库,很费解。难道那些静态库是需要添加的?不知道哪里出错了。
在微软提供的DEVICEEMULATOR\SRC\COMMON下面却只有SMARTMEDIA和AMD两个文件夹,看了一些达人的博客,说是从编译DEVICEEMULATOR的OAL开始,还是调不通,呵呵,有点悲剧...
点赞  2009-9-25 10:13
引用: 引用 9 楼 gooogleman 的回复:
在我的资源里有移植文档的,下载来看看,这东西说难不难,当时搞了一周,所有驱动都搞上去了,
多思考,看帮助就OK了。

千万不要已下载选个mobile handle,而要选custom device

一步步来
OAL——》显示驱动——》touch——》FMD,其他都随意了。很容易的了。

呵呵,这方面的东西还要多向你请教啊!
我正在看你的移植笔记呢。
一、先编译后模拟器的精简版本,然后把模拟器的OAL相关的代码进行删除,换成5.0BSP的代码(把KITL相关的代码删除)并修改相应的sources文件。

二、把C:\WINCE500\PLATFORM\SMDK2440A\Src\Common代替H:\WINCE600\PLATFORM\QxCE6BSP\SRC\Common
C:\WINCE500\PLATFORM\SMDK2440A\Src\Inc代替H:\WINCE600\PLATFORM\QxCE6BSP\SRC\Inc

问题1:你的意思换成5.0BSP的代码应该是这些吧:
%_WINCEROOT%\platform\BSPNAME\src\kernel\oal
oal.lib

%_WINCEROOT%\platform\BSPNAME\src\kernel\kern
kern.exe

%_WINCEROOT%\platform\BSPNAME\src\kernel\kernkitl
kernkitl.exe(这个暂时去除)

%_WINCEROOT%\platform\BSPNAME\src\kernel\kernkitlprof
kernkitlprof.exe(这个暂时去除)
可是我发现我的SMDK24405.0BSP友善之臂提供的这些居然没有,后面看了张冬泉写的书,感觉应该是从4.2移植过来的。

问题2:用WINCE500下的SMDK2410目录下的Src\Common和Src\Inc区代替可以嘛?或者从网上下载一个5.0的BSP包基于2440的去替换可以嘛?记得你曾经说过,移植只看芯片,因为都是基于ssmsung的2440CPU,我觉得这些应该是通用的吧!
点赞  2009-9-25 10:59
引用: 引用 10 楼 xilidecai 的回复:
我从网上下了一个别人移植好的2440--6.0的BSP,在SMDK2440A\Src\Common下面是有Cache,Memory这些组件的,只是我编译不出那些静态库,很费解。难道那些静态库是需要添加的?不知道哪里出错了。
在微软提供的DEVICEEMULATOR\SRC\COMMON下面却只有SMARTMEDIA和AMD两个文件夹,看了一些达人的博客,说是从编译DEVICEEMULATOR的OAL开始,还是调不通,呵呵,有点悲剧...

我可能知道你那里错了.
你的sources.cmn有没有改一下,要在里面加上如SMDK2440A\Src\Common变量路径哦,或者放到sources.cmn指定的位置去.
点赞  2009-9-25 19:59
恩恩,我是没有修改!呵呵~
谢了~~~
以后常聊!记住你了·~~~
先结贴~
我周末试试~~~
点赞  2009-9-26 09:44
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复