91

帖子

0

TA的资源

一粒金砂(初级)

21
 
引用 19 楼 iwillbeback008 的回复:
好,顶一下,不知道楼主用到是三星的那款芯片,2440么?
以后也有打算把WinCE5.0移植到CE6.0上

是的,有没有人知道 为什么只生成nk.bin,而不生成nk.nb0?

回复

79

帖子

0

TA的资源

一粒金砂(初级)

22
 
引用 20 楼 liaifeilove 的回复:
引用 19 楼 iwillbeback008 的回复:
好,顶一下,不知道楼主用到是三星的那款芯片,2440么?
以后也有打算把WinCE5.0移植到CE6.0上

是的,有没有人知道 为什么只生成nk.bin,而不生成nk.nb0?

nk.nb0 没有的话是 config.bib 里面对nb0 的配置不太正确
 
 

回复

64

帖子

0

TA的资源

一粒金砂(初级)

23
 
引用 21 楼 xajhuang 的回复:
引用 20 楼 liaifeilove 的回复:
引用 19 楼 iwillbeback008 的回复:
好,顶一下,不知道楼主用到是三星的那款芯片,2440么?
以后也有打算把WinCE5.0移植到CE6.0上

是的,有没有人知道 为什么只生成nk.bin,而不生成nk.nb0?

nk.nb0 没有的话是 config.bib 里面对nb0 的配置不太正确

兄弟能说具体点吗?
 
 
 

回复

68

帖子

0

TA的资源

一粒金砂(初级)

24
 

各位大侠,还有个问题
LCD驱动移植
BUILD: [Thrd:Sequence:Type  ] Message
BUILD: [01:0000000042:ERRORE] e:\wince600\platform\my2440a\src\drivers\display\precomp.h(30) :
fatal error C1083: Cannot open include file: 'ddpguids.h': No such file or directory
BUILD: [01:0000000046:ERRORE] e:\wince600\platform\my2440a\src\drivers\display\precomp.h(30) :
我没有找到相关资料,请各位帮个忙 ,给点建议.
等我把它弄完,一定会把所有问题和解决方法都公布的...
各位给点鼓励啊..
gooogleman  兄弟.. 你好象移植过,应该是过来人.. 指点一下.
 
 
 

回复

67

帖子

0

TA的资源

一粒金砂(初级)

25
 
楼上错误很明显啊,是ddpguids.h文件的路径错误啊,把以前的文件找过来,放到那个目录下
 
 
 

回复

92

帖子

0

TA的资源

一粒金砂(初级)

26
 
ddpguids.h
这个文件是做什么的?还有这个应该是pb5.0自带的文件,我没有装pb5.0.
 
 
 

回复

60

帖子

0

TA的资源

一粒金砂(初级)

27
 
我没有移植过,去年想移植,但是公司不同意。后来我自己看了不少文章。

我觉得搞定bootloader+OAL确定能够加载文件系统等之后再弄驱动才是合适的。否则你不成功的积累越来越多,情况就会越来越糟糕。
 
 
 

回复

76

帖子

0

TA的资源

一粒金砂(中级)

28
 
loader 我打算用以前的的.  
oalexe编译没有问题,其实oal也没什么东西.
其他的可以跳过,但是display,这个一定要先弄起来.
回复的人好少..
应该有很多人移植过啊.
 
 
 

回复

79

帖子

0

TA的资源

一粒金砂(初级)

29
 
先公布这段时间遇到的问题和解决方法:
1.编译eboot连接时候找不到函数__security_cooks  
    在加入$(_COMMONOAKROOT)\lib\$(_CPUINDPATH)\gsnull.lib \后,该问题解决。
2 . 全局变量CEProcessorType不能访问,包含头文件"NKarm.h"后 找不到该头文件。
  从init.c中去掉该变量
3. 找不到“OALKitlPowerOff referenced in function OEMPowerOff”和
  error LNK2019: unresolved external symbol OALKitlStart referenced in function OEMInit
  这些都是kitl部分的代码,将其从相关地方移去就可以了
4.在makeimg阶段产生
   regcomp: Error: InitRegistry FAILED on or near line 2160 of E:\WINCE600\OSDesigns\OSDesign2\RelDir\M
  y2440A_ARMV4I_Debug\reginit.ini
  将file/Intltrns 从其他地方拷贝这个文件夹到对应目录下。
   解决方法:修改paltform.reg中相关的行。在这里是因为 “ "FriendlyName"=LOC_DISPLAYNAME_COM1”中未被定义,
5. 编译Pwrbutton(matrixkb.dll)驱动时候,出现
BUILD: [01:0000000055:ERRORE] matrixkb.obj : error LNK2019: unresolved external symbol keybd_event referenced in function SendKey
BUILD: [01:0000000056:ERRORE] E:\WINCE600\platform\My2440A\target\ARMV4I\debug\matrixkb.dll : fatal error LNK1120: 1 unresolved externals

添加模块 core os->CEBASE ->shell and interface ->shell ->graph shell->stardard shell

6.编译CS8900驱动的时候,找不系统库 ndis.lib
TARGETLIBS=                                                     \
   $(_PROJECTROOT)\cesysgen\sdk\lib\$(_CPUINDPATH)\ndis.lib      \
   $(_PROJECTROOT)\cesysgen\sdk\lib\$(_CPUINDPATH)\ntcompat.lib  \
   $(_PROJECTROOT)\cesysgen\sdk\lib\$(_CPUINDPATH)\coredll.lib \
   $(_PROJECTROOT)\cesysgen\oak\lib\$(_CPUINDPATH)\ceddk.lib   \

U1073: don't know how to make
  'E:\WINCE600\OSDesigns\OSDesign2\Wince600\My2440A_ARMV4I\cesysgen\sdk\lib\ARMV4I\debug\ndis.lib'
模块未加进去:
    将core os->CEBASE ->shell and interface ->user interface ->network user interfacer 选上就可以解决问题了。
7.编译usb fuction驱动时候
BUILD: [01:0000001429:ERRORE] NMAKE :  U1073: don't know how to make '
E:\WINCE600\OSDesigns\OSDesign2\Wince600\My2440A_ARMV4I\cesysgen\oak\lib\ARMV4I\debug\ufnmdd.lib'
BUILD: [01:0000001431:ERRORE] NMAKE.EXE TargetLibFiles  -i -c BUILDMSG=Stop.
BUILDROOT=E:\WINCE600\PLATFORM\My2440A CLEANBUILD=1 LINKONLY=1 NOPASS0=1 failed - rc = 2
对应模块没有加进去:将 device drivers->usb function -> usb function client ->serial 这个选上就可以了

8.编译Battdrvr
BUILD: [01:0000000084:ERRORE] battdrvr_lib.lib(battdrvr.obj) : error LNK2019: unresolved external
symbol PowerPolicyNotify referenced in function BatteryThreadProc

添加模块 core os->CEBASE ->shell and interface ->shell ->graph shell->stardard shell



 
 
 

回复

78

帖子

0

TA的资源

一粒金砂(初级)

30
 
还有一个强人的移植笔记
一:OAL.H修改
1)在OAL.H中注释掉下面两个头文件
#include "oal_profiler.h"
#include "oal_nkxp.h"
2)在OAL.H中加入下面两个头文件
#include
#include "oemglobal.h"

二:watchdog.c 修改
注释掉下面的语句
extern void (* pfnOEMRefreshWatchDog) (void);   // function pointer to refresh watchdog
extern DWORD   dwOEMWatchDogPeriod;             // watchdog period
extern DWORD   dwNKWatchDogThreadPriority;      // watchdog thread priority, default is 100, set by kernel. OEM can adjust as desired

三:init.C修改
注释掉下面的语句
extern DWORD CEProcessorType;

四:SMDK2440A\Src\Common\Smartmedia\Dll中的sources文件修改
在SOURCELIBS语句段中原有的两个库的基础上增加下面的库
$(_COMMONOAKROOT)\lib\$(_CPUINDPATH)\fmdhooklib.lib \

五:显示驱动修改
修改内容较多,请把附件中的驱动复制过去就可以用了
本驱是是800×480的,如果你的屏参数不一样的话请自行修改

六:OAL-KERNEL修改
1:在\WINCE600\PLATFORM\SMDK2440A\Src目录下新建个Oal文件夹
2:将Src目录下的DIR文件中的Kernel语句改成Oal,使编译系统识别并编译Oal文件夹
3:将\WINCE600\PLATFORM\SMDK2440A\Src\Kernel目录下Oal文件夹复制到新建的Oal目录下,并更名为Oallib
4:将\WINCE600\PLATFORM\SMDK2440A\Src\Kernel目录下Kern文件夹复制到新建的Oal目录下,并更名为Oalexe
5:在Oal文件夹下新建一个dir文件
   将下面语句加入dir文件中
   DIRS=Oallib     \
   Oalexe     \
6:Oalexe修改
   1):在\WINCE600\PLATFORM\SMDK2440A\Src\Oal\Oalexe目录下的sources文件找到下面语句
    SOURCES=\
    kitl.c
    修改为
    NOLIBC=1
    SOURCES=
   2):打开\WINCE600\PLATFORM\SMDK2440A\Src\Oal\Oalexe目录下的sources文件
   在TARGETLIBS= \语句段中去掉下面的库
   $(_COMMONOAKROOT)\lib\$(_CPUDEPPATH)\nk.lib \
   并新增下面三个库
   $(_COMMONOAKROOT)\lib\$(_CPUDEPPATH)\nkstub.lib \
   $(_COMMONOAKROOT)\lib\$(_CPUDEPPATH)\nkldr.lib \
   $(_COMMONOAKROOT)\lib\$(_CPUDEPPATH)\oemmain.lib \
7:Oallib修改
   打开\WINCE600\PLATFORM\SMDK2440A\Src\Oal\Oallib目录下的sources文件
   找到下面几句,删掉
    kitl.c \
    kitlser.c \
    kitlusbser.c \
8:先编译一下,可能会出现g_oalLogMask报错,找出并修改
   1):debug.c文件修改
   找到VOID OEMInitDebugSerial()函数中的下面两句
   logMask = g_oalLogMask;
   g_oalLogMask = 0;
   将其修改为
   logMask = dpCurSettings.ulZoneMask;
   dpCurSettings.ulZoneMask = 0;
   找到VOID OEMInitDebugSerial()函数中末尾的这句
   g_oalLogMask = logMask;
   将其修改为
   dpCurSettings.ulZoneMask = logMask;
   2):Oal_log.h文件修改
   找到#define OALZONE(n)          (g_oalLogMask&(1<    将其修改为下面两句
   extern DBGPARAM dpCurSettings;
   #define OALZONE(n)          (dpCurSettings.ulZoneMask&(1< 找到extern UINT32 g_oalLogMask;将其注释掉
9:OALIoCtlVBridge错误的修改
   1):找到Ioctl_tab.h中下面的语句,将其注释掉
    { IOCTL_VBRIDGE_802_3_MULTICAST_LIST,       0,  OALIoCtlVBridge             },
    { IOCTL_VBRIDGE_ADD_MAC,                    0,  OALIoCtlVBridge             },
    { IOCTL_VBRIDGE_CURRENT_PACKET_FILTER,      0,  OALIoCtlVBridge             },
    { IOCTL_VBRIDGE_GET_ETHERNET_MAC,           0,  OALIoCtlVBridge             },
    { IOCTL_VBRIDGE_GET_RX_PACKET,              0,  OALIoCtlVBridge             },
    { IOCTL_VBRIDGE_GET_RX_PACKET_COMPLETE,     0,  OALIoCtlVBridge             },
    { IOCTL_VBRIDGE_GET_TX_PACKET,              0,  OALIoCtlVBridge             },
    { IOCTL_VBRIDGE_GET_TX_PACKET_COMPLETE,     0,  OALIoCtlVBridge             },
    { IOCTL_VBRIDGE_SHARED_ETHERNET,            0,  OALIoCtlVBridge             },
    { IOCTL_VBRIDGE_WILD_CARD,                  0,  OALIoCtlVBridge             },
    { IOCTL_VBRIDGE_WILD_CARD_RESET_BUFFER,     0,  OALIoCtlVBridge             },
    { IOCTL_VBRIDGE_WILD_CARD_VB_INITIALIZED,   0,  OALIoCtlVBridge             },
  2):找到Oal_Ioctl_tab.h中下面的语句,将其注释掉
    { IOCTL_VBRIDGE_802_3_MULTICAST_LIST,       0,  OALIoCtlVBridge             },
    { IOCTL_VBRIDGE_ADD_MAC,                    0,  OALIoCtlVBridge             },
    { IOCTL_VBRIDGE_CURRENT_PACKET_FILTER,      0,  OALIoCtlVBridge             },
    { IOCTL_VBRIDGE_GET_ETHERNET_MAC,           0,  OALIoCtlVBridge             },
    { IOCTL_VBRIDGE_GET_RX_PACKET,              0,  OALIoCtlVBridge             },
    { IOCTL_VBRIDGE_GET_RX_PACKET_COMPLETE,     0,  OALIoCtlVBridge             },
    { IOCTL_VBRIDGE_GET_TX_PACKET,              0,  OALIoCtlVBridge             },
    { IOCTL_VBRIDGE_GET_TX_PACKET_COMPLETE,     0,  OALIoCtlVBridge             },
   { IOCTL_VBRIDGE_SHARED_ETHERNET,            0,  OALIoCtlVBridge             },
    { IOCTL_VBRIDGE_WILD_CARD,                  0,  OALIoCtlVBridge             },
    { IOCTL_VBRIDGE_WILD_CARD_RESET_BUFFER,     0,  OALIoCtlVBridge             },
    { IOCTL_VBRIDGE_WILD_CARD_VB_INITIALIZED,   0,  OALIoCtlVBridge             },

七:sc2440pdd.cpp修改
   找到下面语句将其注释掉,共有两处
   SetProcPermissions(pTransfer->dwCallerPermissions);

八:sdiocontrollerbase.cpp修改
  1):找到下面两句注释掉,他们是成对出现的,共有四处共八句
  SD_SET_PROC_PERMISSIONS_FROM_REQUEST( pRequest ) {      
  } SD_RESTORE_PROC_PERMISSIONS();

九:Dma.h与S3c2440a_dmatransfer.h的修改
  找到两个文件中的下面语句注释掉即可,每个文件中有一处
  #define DMA_TRANSFER_IN_PROGRESS            0x00100000


 
 
 

回复

70

帖子

0

TA的资源

一粒金砂(初级)

31
 
这是按微软的帮助来的
 
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

32
 
是的,我移植也是看了他的帮助才开始做的..
现在我编译eboot
只能生成eboot.bin,无法生成eboot.nb0
编译消息
Writing E:\WINCE600\platform\My2440A\target\ARMV4I\debug\EBOOT.bin
Table of contents 8c07df38 00000020 ( 32)
Writing ROM signature and TOC pointer at 8c038040
Kernel data copy section 8c07df58 00000010 ( 16)
ROM Header 8c07dee4 00000054 ( 84)
First DLL Address: 4001c001
Last DLL Address: 4001c001
Physical Start Address: 8c038000
Physical End Address: 8c07e7b0
Start RAM: 8c026000
Start of free RAM: 8c02d000
End of RAM: 8c02c000
Number of Modules: 1
Number of Copy Sections: 1
Copy Section Offset: 8c07df58
FileSys 4K Chunks/Mbyte: 128 <2Mbyte 128 2-4Mbyte 0 4-6Mbyte 0 >6Mbyte
CPU Type: 01c2h
Miscellaneous Flags: 0002h
Total ROM size: 000467b0 ( 288688)
Error: Ram free start is after ram end.Fatal error hit, exiti



boot.bib 文件

MEMORY
;   Name     Start     Size      Type
;   -------  --------  --------  ----
    ARGS     8c020800  00000800  RESERVED
    BINFS    8c021000  00005000  RESERVED
    RAM      8c026000  00006000  RAM   
    STACK    8c02c000  00004000  RESERVED
    EBOOT    8c038000  00080000  RAMIMAGE

; Area used to cache nk.bin while programming flash
    FLSCACHE 8c200000  01400000  RESERVED
    DISPLAY  8c100000  00100000  RESERVED

CONFIG
        COMPRESSION=OFF
        PROFILE=OFF
        KERNELFIXUPS=ON
;        ROMOFFSET=25FC8000
        SRE=ON
        ROMSTART=8c038000
        ROMWIDTH=32
        ROMSIZE=80000

MODULES
;   Name            Path                                                              Memory Type
;   --------------  ----------------------------------------------                    -----------
    nk.exe          $(_TARGETPLATROOT)\target\$(_TGTCPU)\$(WINCEDEBUG)\eboot.exe      EBOOT

 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

33
 
同样差不多的组件情况下 貌似 WinCE6.0 比 WinCE 5.0 的内核大了很多
 
 
 

回复

58

帖子

0

TA的资源

一粒金砂(初级)

34
 
不好意思,上周有点忙,没时间上网.现在揭贴.
原谅下啊
 
 
 

回复

65

帖子

0

TA的资源

一粒金砂(初级)

35
 
哦搞定了?
 
 
 

回复

64

帖子

0

TA的资源

一粒金砂(初级)

36
 
LZ好啊,我刚开始做BSP 5.0-6.0 移植,请问有什么经验吗?交流下:QQ527756039
Email:chenchu12345@126.com,谢谢谢谢!!
 
 
 

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

随便看看
查找数据手册?

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
快速回复 返回顶部 返回列表