2440从WINCE5.0升到WINCE6.0

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

2440从WINCE5.0升到WINCE6.0

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
 

 

原谅链接:

http://bbs.driverdevelop.com/simple/?t112006.html

http://bbs.driverdevelop.com/read.php?tid-112006.html

S3C2440开发板WinCE5.0触摸屏驱动程序源代码完整分析 本文还有配套的精品资源,点击获取 简介:S3C2440开发板是基于Samsung公司的S3C2440 ARM920T处理器设计的嵌入式平台,拥有丰富的外围接口。WinCE5.0是一种适用于嵌入式设备的实时操作系统,支持多种处理器架构。触摸屏驱动程序在WinCE5.0上负责将触摸操作转换为系统输入事件。本源代码压缩包为开发者提供了研究和定制S3C2440开发板触摸屏驱动程序的... 阅读详情

相关推荐

HBS003刷机文件

HBS003原始刷机文件MTK文件和主程序!

win ce车载系统刷机包_安卓刷机包rom下载

首先将手机解锁 刷入twrp-rec.img 然后下载相应机型的刷机包。lineageoshttps://download.lineageos.orglineageos是现在流行的开源安卓系统,可以在lineageos官网找到对应品牌的刷机包。pixelexperiencehttps://download.pixelexperience.orgpixelexperience是现在流行的第...

weixin_39814093的博客 1万+

车载导航WINCE6.0通刷包.zip

纽曼车机通用wince6.0刷机包

wince车机刷系统刷机包_Realme X RealmeQ 联想Z6Pro等机型支持MIUI11刷机包下载刷入啦...

最新的MIUI11出炉!成熟完善的MIUI现代设计去除冗余视觉符号,为触控精心设计的交互控件,理性用色使内容一眼识别,让内容和你直接沟通固件为国内知名开发者琛琛开发制作安卓版本:Android Pie(9)目前支持机型联想:Z5、Z6、Z6Pro、Z5Pro 855 GT即将支持Moto:Moto Z2(Force)、Moto Z 2018Realme:Realme X、Realme Q更新日志1...

weixin_39636164的博客 4372

wince车机刷系统刷机包_安卓10.0刷机包流出:已被大神Root了

尚未正式发布的Android Q系统已经被Root了?恐怕事情还真是这样。安卓10.0刷机包流出由于谷歌I/O大会需要等到5月7日举办,理论上我们距离一版较为稳定的Android Q公测系统还有相当时间。但这并未阻止开发者的脚步,尤其是那些极客。人John Wu分享了最新成果,他为Android Q成功安装了Magisk框架,宣告ROOT。Magisk和大名鼎鼎的Xposed相互兼容,...

weixin_39620252的博客 1万+

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

http://bbs.driverdevelop.com/read.php?tid-112006.html

冷饮 965

【下载】关于Samsung2440原厂WINCE500/600 BSP下载

昨天晚上收集了一下最新的SAMSUNG的BSP。这里共享给大家,也算是给原厂和友善做个分流了。主要是原厂的2440 wince5.0的BSP最新版本以及友善2440 wince6.0的BSP。友善的6.0 BSP是最近才relesase出来,值得移植下看看。这里建议大家可以用500的BSP来移植到600上。参考文档如下:2440 wince6.0移植文档 by Goooglem

这个世界乱纷纷,先把自己锻炼成器 1662

移植wince 5.02440

从网上下载的smdk2440 bsp,自己修改在platform builder 5.0下编译,历经千辛万苦,编译出了nk.nb0,nk.bin,自己写的boot程序先启动硬件,再用j-link的loadbin命令下载nk.nb00x80200000地址,运行后桌面显示出几个排列在一起的图标,图质粗糙,比例看起来也不对,没有任务栏,都不太像wince桌面。运行时串口输出的内容很多(因为我打开了多

联华众科的专栏 2134

wince 5.0 移植到 utu2440 开发板记录

wince 5.0 移植到 utu2440 开发板记录   1、修改时钟频率需要修改为  FCLK = 400M  HCLK = 100M  PCLK = 50M跟据以上关系,则需要设置  HDIVN = 2  PDIVN = 1  HCLK3_HALF = 0  HCLK4_HALF = 0计算出  CLKDIVN = 0x05 需要修改的文件有src/Bootloader/Eboot/startup.s    ;Apollo +    ;PLLVAL EQU (((0x6e     PLLVAL EQU

702

wince5.0模拟器+mini2440

<br />参考:<br />http://blog.csdn.net/nanjianhui/archive/2009/01/13/3769519.aspx<br /> <br />1 按照mini2440说明书安装eMbedded Visual C++ 4.0及其插件补丁和QQ2440 SDK等,还有ActiveSync。并能保证能够在开发板上进行应用开发。(这是我做的前提,其他没试过)。<br />2 下载wince5.0模拟器。解压后得到<br /><br /> <br />3 双击 连接加载.bat

hljliyingfei的专栏 1418

win CE车载一体机格式化内置使用

win CE车载一体机格式化内置使用不少车主内置华阳机车友(尤其5月后机器)在经历内置被塞满后,都为内置容量不一的缩水问题而烦恼,原车8G容量莫名其妙减少了很多,我见过最少的,容量已不足2G,开始有车友用原车控制面板-储存管理器方法格式化内置,由于方法不对,造成机器失去SD而变砖头,终于有机会经测试找出正确格式化方法,为使步骤及按钮清晰化,用中文版及英文版对照截图来说明问题

wince6.0程序包

wince6.0程序包

天之眼车机(wince6.0刷机包

天之眼车机(wince6.0刷机包 本软件适用天之眼车机卓越版、普通版、精英版、V02精英版一体机。 普通版: 收音模块为 6621 、 收星模块为 3328 、 内置音频为开 卓越版、精英版: 收音模块为 6621 、 收星模块为 3336 、 内置音频为开 V02 精英版一体机: 收音模块为 7786 、 收星模块为 3336 、 内置音频为关 如当系统在开机动画界面进不去系统就要刷BSP,请下载BSP升级包。

导航刷机软件共享

导航刷机软件系统 支持MTK平台 如果导航出了问题 比如黑屏 可以通过此软件升级更新

5.0移植到6.0

参考:http://topic.csdn.net/u/20090202/16/D6E58288-E056-408F-B162-89CD9586C27B.htmlhttp://topic.csdn.net/u/20090417/13/e021bf63-a070-4c65-bedd-18b39a73aefc.html首先向大家问声新年好! 最近老板让我把2410上的winc

xilidecai的专栏 1991

OK2440wince6.0

   拿了块OK2440-III,预装的CE5.0,改换6.0系统。   1.装好VS2005.打上补丁   2.安装wince6.0 及sp1补丁   3.安装wince6.0-R2   4.打上WINCEPB60-080131-2008M01-ARMV4I.MSI   5.升级.net compact framwork3.5   用飞凌提供的6.0BSP,编译时出现如下

学WINCE 1932

关于24405.06.0的移植之OAL篇

我希望我能坚持下去。 首先,参考http://www.cnblogs.com/we-hjb/archive/2008/10/29/1322509.html的帖子,把这个牛人的博客的帖子调通了,刚开始怎么调也调 不通,最后过了几天无意中又调试了一下,居然调通了。 接着,参考gooogleman的移植文档,按照他的思路进行了相应的修改。 中间也出过许多错误,下面我把我的错误贴出来和大家一起探讨

wince--linux的专栏 1680

S3C2440休眠和唤醒流程解析(WinCE 6)

WinCE中,有3种方式可以使系统进入休眠:1、用户在开始菜单选择挂起2、用户短按电源键,请求系统进入休眠(需要电源按键驱动的支持,比如设为长按关机,短按休眠)3、用户长时间无操作,系统状态由POWER_STATE_ON转为POWER_STATE_USERIDLE,POWER_STATE_IDLE状态,最后进入POWER_STATE_SUSPEND即休眠状态 休眠之前,对于支持电源管理的

noodies的专栏 3347

开始wince6.0(预热阶段)

   最近终于闲了下来,刚才看了Windows embedded ce 6.0 fundamentals这本书,感觉wince6.0的很多架构都和wince5.0很相似,所以我觉得从wince5.0——》wince6.0 难度应该不大,现在先收集一些资料先,这两天就准备移植2440 5.0BSP到wince6.0 上。 http://blog.csdn.net/aawolf/archive

gooogleman#foxmail.com 2282
上一篇: WINCE 驱动异常分析
下一篇: Silverlight开发工具集合
insoonior
博客等级 码龄18年 77粉丝 13原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值