ztg0021
驱动小牛
驱动小牛
  • 注册日期2007-02-09
  • 最后登录2016-02-18
  • 粉丝1
  • 关注0
  • 积分141分
  • 威望223点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
阅读:45137回复:203

(结贴)看了很多人对WINCE60感兴趣,我开个贴来研究2440从WINCE5.0升到WINCE6.0(公开源码-在23楼)

楼主#
更多 发布于:2008-06-30 10:00
公开讨论群号:暂时关闭
2443的BSP有6.0的,不过我们不用2443,现在想把2440从WINCE5.0升到WINCE6.0,有想做的朋友我们一起来吧
这两天有点时间,我总结一下。
我的平台条件:UBOOT+WINCE50BSP+800×480(7寸屏),因为用UBOOT,所以我没有升级BOOTLOADER
请大家参考一下本贴的一些问题,链接等等,基本就OK了,伧促记之,错误在所难免,望高手指正。
如果大家有什么高招,请一定分享,饮水思源,来了论坛总得有点贡献嘛!
总结:
一:OAL.H修改
1)在OAL.H中注释掉下面两个头文件
#include "oal_profiler.h"
#include "oal_nkxp.h"
2)在OAL.H中加入下面两个头文件
#include <nkexport.h>
#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<<n))语句
   将其修改为下面两句
   extern DBGPARAM dpCurSettings;
   #define OALZONE(n)          (dpCurSettings.ulZoneMask&(1<<n))
   找到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
 
WINCE/EVC/VS2005群:18219722
ielts5316
驱动小牛
驱动小牛
  • 注册日期2005-05-18
  • 最后登录2018-08-27
  • 粉丝0
  • 关注0
  • 积分478分
  • 威望940点
  • 贡献值0点
  • 好评度72点
  • 原创分0分
  • 专家分0分
  • 社区居民
沙发#
发布于:2009-05-19 19:43
Thanks a lot
zuoxing
驱动牛犊
驱动牛犊
  • 注册日期2009-05-18
  • 最后登录2010-06-22
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望11点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2009-05-18 13:40
好东西 学习ing
tianyu2202
驱动牛犊
驱动牛犊
  • 注册日期2009-05-16
  • 最后登录2009-05-19
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望11点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2009-05-16 17:30
好东西啊  下来看看吧
xiyu120
驱动牛犊
驱动牛犊
  • 注册日期2005-11-15
  • 最后登录2010-06-20
  • 粉丝0
  • 关注0
  • 积分5分
  • 威望42点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2009-05-13 14:26
参考一下。学习学习。
ynzhang99
驱动牛犊
驱动牛犊
  • 注册日期2003-03-14
  • 最后登录2009-10-27
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2009-05-11 12:16
也来研究研究
lzgjxh
驱动牛犊
驱动牛犊
  • 注册日期2004-11-01
  • 最后登录2011-02-09
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2009-05-09 18:46
兄弟们编译oalexe的时候出现这样的错误和警告,怎么处理呢?

------ Build started: Project: QQ2440V3, Configuration: Samsung SMDK2440A ARMV4I Debug Platform Builder (_TGTCPU) ------
C:\WINCE600\PLATFORM\SMDK2440A\src\Oal\Oalexe\sources
Starting Build: set WINCEREL=1&&build -c&&makeimg
==============
BUILD: [Thrd:Sequence:Type  ] Message
BUILD: [00:0000000000:PROGC ] Build started with parameters: -c
BUILD: [00:0000000001:PROGC ] Build started in directory: C:\WINCE600\PLATFORM\SMDK2440A\src\Oal\Oalexe
BUILD: [00:0000000002:PROGC ] Checking for C:\WINCE600\sdk\bin\i386\srccheck.exe.
BUILD: [00:0000000003:PROGC ] Running passes WCEFILES0, MIDL, MC, ASN, THUNK, PRECOMPHEADER, COMPILE, LIB, LINK, MANAGEDRESX, MANAGEDMOD, MANAGEDDLL, MANAGEDEXE, MANAGEDWIN for ARM.
BUILD: [00:0000000004:PROGC ] Ignoring build database (-c specified).
BUILD: [00:0000000005:PROGC ] Computing include file dependencies:
BUILD: [00:0000000006:PROGC ] Checking for SDK include directory: C:\WINCE600\sdk\CE\inc.
BUILD: [00:0000000007:PROGC ] Scan C:\WINCE600\PLATFORM\SMDK2440A\src\Oal\Oalexe\
BUILD: [00:0000000008:PROGC ] Saving C:\WINCE600\PLATFORM\SMDK2440A\Build.dat.
BUILD: [00:0000000010:WARNN ] C:\WINCE600\PLATFORM\SMDK2440A\src\Oal\Oalexe\sources(60) : Build.exe does not evaluate IF conditional statements. Conditional statements that affect macro definitions might cause Build.exe to not rebuild modified source code. Refer to the Platform Builder documentation.
BUILD: [00:0000000011:WARNN ] C:\WINCE600\PLATFORM\SMDK2440A\src\Oal\Oalexe\: Missing source file: C:\WINCE600\platform\smdk2440a\lib\ARMV4I\debug\oal.lib.
BUILD: [00:0000000012:WARNN ] C:\WINCE600\PLATFORM\SMDK2440A\src\Oal\Oalexe\: Missing source file: C:\WINCE600\public\common\oak\lib\ARMV4I\debug\nk.lib.
BUILD: [00:0000000013:WARNN ] C:\WINCE600\PLATFORM\SMDK2440A\src\Oal\Oalexe\: Missing source file: C:\WINCE600\platform\smdk2440a\lib\ARMV4I\debug\oal_abort_s3c2440a.lib.
BUILD: [00:0000000014:WARNN ] C:\WINCE600\PLATFORM\SMDK2440A\src\Oal\Oalexe\: Missing source file: C:\WINCE600\platform\smdk2440a\lib\ARMV4I\debug\oal_cache_s3c2440a.lib.
BUILD: [00:0000000015:WARNN ] C:\WINCE600\PLATFORM\SMDK2440A\src\Oal\Oalexe\: Missing source file: C:\WINCE600\platform\smdk2440a\lib\ARMV4I\debug\oal_memory_s3c2440a.lib.
BUILD: [00:0000000016:WARNN ] C:\WINCE600\PLATFORM\SMDK2440A\src\Oal\Oalexe\: Missing source file: C:\WINCE600\platform\smdk2440a\lib\ARMV4I\debug\oal_timer_s3c2440a.lib.
BUILD: [00:0000000017:WARNN ] C:\WINCE600\PLATFORM\SMDK2440A\src\Oal\Oalexe\: Missing source file: C:\WINCE600\platform\smdk2440a\lib\ARMV4I\debug\oal_intr_s3c2440a.lib.
BUILD: [00:0000000018:WARNN ] C:\WINCE600\PLATFORM\SMDK2440A\src\Oal\Oalexe\: Missing source file: C:\WINCE600\platform\smdk2440a\lib\ARMV4I\debug\oal_power_s3c2440a.lib.
BUILD: [00:0000000019:WARNN ] C:\WINCE600\PLATFORM\SMDK2440A\src\Oal\Oalexe\: Missing source file: C:\WINCE600\platform\smdk2440a\lib\ARMV4I\debug\oal_rtc_s3c2440a.lib.
BUILD: [00:0000000020:WARNN ] C:\WINCE600\PLATFORM\SMDK2440A\src\Oal\Oalexe\: Missing source file: C:\WINCE600\platform\smdk2440a\lib\ARMV4I\debug\oal_ioctl_s3c2440a.lib.
BUILD: [00:0000000021:WARNN ] C:\WINCE600\PLATFORM\SMDK2440A\src\Oal\Oalexe\: Missing source file: C:\WINCE600\platform\smdk2440a\lib\ARMV4I\debug\smflash_lib.lib.
BUILD: [00:0000000038:PROGC ] Building LINK Pass in C:\WINCE600\PLATFORM\SMDK2440A\src\Oal\Oalexe\ directory.
BUILD: [01:0000000044:ERRORE] C:\WINCE600\PLATFORM\SMDK2440A\src\Oal\Oalexe\sources(11) :  U1033: syntax error : 'NOLIBC' unexpected
BUILD: [01:0000000046:ERRORE] NMAKE.EXE TargetExeFiles  -i -c BUILDMSG=Stop.  BUILDROOT=C:\WINCE600\PLATFORM\SMDK2440A CLEANBUILD=1 LINKONLY=1 NOPASS0=1 failed - rc = 2
BUILD: [00:0000000047:PROGC ]                        Files  Warnings  Errors
BUILD: [00:0000000048:PROGC ] Midl                       0         0       0
BUILD: [00:0000000049:PROGC ] Message                    0         0       0
BUILD: [00:0000000050:PROGC ] Precomp Header             0         0       0
BUILD: [00:0000000051:PROGC ] Resource                   0         0       0
BUILD: [00:0000000052:PROGC ] MASM                       0         0       0
BUILD: [00:0000000053:PROGC ] SHASM                      0         0       0
BUILD: [00:0000000054:PROGC ] ARMASM                     0         0       0
BUILD: [00:0000000055:PROGC ] MIPSASM                    0         0       0
BUILD: [00:0000000056:PROGC ] C++                        0         0       0
BUILD: [00:0000000057:PROGC ] C                          0         0       0
BUILD: [00:0000000058:PROGC ] Static Libraries           0         0       0
BUILD: [00:0000000059:PROGC ] Exe's                      0         0       0
BUILD: [00:0000000060:PROGC ] Dll's                      0         0       0
BUILD: [00:0000000061:PROGC ] Preprocess deffile         0         0       0
BUILD: [00:0000000062:PROGC ] Resx                       0         0       0
BUILD: [00:0000000063:PROGC ] CSharp Compile             0         0       0
BUILD: [00:0000000064:PROGC ] Other                      0         0       2
BUILD: [00:0000000065:PROGC ]
BUILD: [00:0000000066:PROGC ] Total                      0         0       2
BUILD: [00:0000000067:PROGC ]
BUILD: [00:0000000068:PROGC ] 0 Warnings,  2 Errors
BUILD: [00:0000000069:PROGC ] GetSystemTimes (seconds): Idle: 1     Kernel: 2     User: 2    
BUILD: [00:0000000070:PROGC ] Elapsed  time  (seconds): 2    
Build for Windows CE (Release 601) (Built on Aug 17 2006 15:18:52)
File names: Build.log Build.wrn Build.err Build.dat
C:\WINCE600\PLATFORM\SMDK2440A\src\Oal\Oalexe\sources - 2 error(s), 12 warning(s)
========== Build: 0 succeeded or up-to-date, 1 failed, 0 skipped ==========
hnhylei
驱动牛犊
驱动牛犊
  • 注册日期2003-12-29
  • 最后登录2009-10-22
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望30点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2009-05-07 23:52
回178楼,非常乐意与你交流,我的QQ是315279832
aduhupu
驱动牛犊
驱动牛犊
  • 注册日期2008-11-18
  • 最后登录2009-05-07
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望11点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2009-05-07 10:38
在移植过程中参考DeviceEmulator比较好。
sdssly
驱动牛犊
驱动牛犊
  • 注册日期2003-03-04
  • 最后登录2016-01-09
  • 粉丝2
  • 关注0
  • 积分344分
  • 威望47点
  • 贡献值0点
  • 好评度34点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2009-05-04 10:24
wince 6有什么比WINCE5不同的地方??
pjfzyx
驱动牛犊
驱动牛犊
  • 注册日期2009-04-30
  • 最后登录2009-05-05
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望11点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2009-04-30 10:11
回 23楼(ztg0021) 的帖子
感谢楼主的开源精神,最近俺也在研究2440移植WinCE6.0,有机会一起探讨。
xltytlive
驱动牛犊
驱动牛犊
  • 注册日期2008-05-10
  • 最后登录2010-09-03
  • 粉丝0
  • 关注0
  • 积分5分
  • 威望31点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2009-04-28 19:50
看看
驱网无线,快乐无限
jiamingjzh
驱动牛犊
驱动牛犊
  • 注册日期2009-01-16
  • 最后登录2009-04-27
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望11点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2009-04-24 13:06
不错,谢谢
yangjiunnder
驱动牛犊
驱动牛犊
  • 注册日期2008-08-23
  • 最后登录2009-10-28
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望11点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2009-04-22 17:22
关注中,过段时间我也要搞这个玩玩
liaifeilove
驱动牛犊
驱动牛犊
  • 注册日期2006-11-22
  • 最后登录2010-06-07
  • 粉丝0
  • 关注0
  • 积分16分
  • 威望42点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
14楼#
发布于:2009-04-22 15:27
学习
kill_34
驱动牛犊
驱动牛犊
  • 注册日期2009-04-22
  • 最后登录2009-04-22
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望11点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
15楼#
发布于:2009-04-22 10:42
回 23楼(ztg0021) 的帖子
好东西,看看分享一下
cf1888
驱动牛犊
驱动牛犊
  • 注册日期2009-04-22
  • 最后登录2009-04-22
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望11点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
16楼#
发布于:2009-04-22 03:00
很好。谢谢分享。
baofyu
驱动牛犊
驱动牛犊
  • 注册日期2009-04-20
  • 最后登录2009-04-20
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望11点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
17楼#
发布于:2009-04-20 01:20
回 23楼(ztg0021) 的帖子
ghgh
dongls
驱动牛犊
驱动牛犊
  • 注册日期2009-04-18
  • 最后登录2009-04-19
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望11点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
18楼#
发布于:2009-04-18 07:17
下来看看。
mikenoodle
驱动牛犊
驱动牛犊
  • 注册日期2007-08-02
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分18分
  • 威望76点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
19楼#
发布于:2009-04-17 16:20
看看哈
上一页

返回顶部