阅读:46975回复:203
(结贴)看了很多人对WINCE60感兴趣,我开个贴来研究2440从WINCE5.0升到WINCE6.0(公开源码-在23楼)
公开讨论群号:暂时关闭
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 |
|
|
沙发#
发布于:2009-05-19 19:43
Thanks a lot
|
|
板凳#
发布于:2009-05-18 13:40
好东西 学习ing
|
|
地板#
发布于:2009-05-16 17:30
好东西啊 下来看看吧
|
|
地下室#
发布于:2009-05-13 14:26
参考一下。学习学习。
![]() |
|
5楼#
发布于:2009-05-11 12:16
也来研究研究
|
|
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 ========== |
|
7楼#
发布于:2009-05-07 23:52
回178楼,非常乐意与你交流,我的QQ是315279832
|
|
8楼#
发布于:2009-05-07 10:38
在移植过程中参考DeviceEmulator比较好。
|
|
9楼#
发布于:2009-05-04 10:24
wince 6有什么比WINCE5不同的地方??
|
|
10楼#
发布于:2009-04-30 10:11
回 23楼(ztg0021) 的帖子
感谢楼主的开源精神,最近俺也在研究2440移植WinCE6.0,有机会一起探讨。 ![]() |
|
11楼#
发布于:2009-04-28 19:50
看看
|
|
|
12楼#
发布于:2009-04-24 13:06
不错,谢谢
|
|
13楼#
发布于:2009-04-22 17:22
关注中,过段时间我也要搞这个玩玩
|
|
14楼#
发布于:2009-04-22 15:27
学习
|
|
15楼#
发布于:2009-04-22 10:42
回 23楼(ztg0021) 的帖子
好东西,看看分享一下 |
|
16楼#
发布于:2009-04-22 03:00
很好。谢谢分享。
|
|
17楼#
发布于:2009-04-20 01:20
回 23楼(ztg0021) 的帖子
ghgh |
|
18楼#
发布于:2009-04-18 07:17
下来看看。
|
|
19楼#
发布于:2009-04-17 16:20
看看哈
|
|
上一页
下一页