WINCE4.2到5.0(4)
2010-01-16 17:27
190 查看
WINCE4.2到5.0(4)
今天4.2下的功能全部移植到5.0下,正常使用。看下键盘的移植:将4.2的驱动拷贝到5.0的驱动目录下,更改为mykeybd目录名,有两个地方要更改:
中
断,在mykeybd/kbdcommon/s3c2410kbd.cpp文件的的Ps2Keybd::IsrThreadProc()函数替换成5.0
下的,这里主要是中断处理方法不同,在4.2下,由于是静态映射,在用InterruptInitialize()函数中绑定SYSINTR中断号时,是
直接指定的SYSINTR中断号。而在5.0下,需要使用KernelIoControl(IOCTL_HAL_REQUEST_SYSINTR,…)将
CPU硬件中断号irq,动态申请一个SYSINTR进行绑定。硬件中断号irq我是从注册表读进来的,现在使用的是EINT17,这样下次硬件上更改中
断号时可以无须动内核,甚至只需要在CE起来后更改注册表后重启就行了。EINT17中断号定义在WINCE500/public/common/oak
/csp/arm/samsung/s3c2410x/inc/s3c2410x_intr.h中,这里对应的是0x2D(十进制45).编译时会有些小
问题,将文件中跟v_pDriverGlobals变量相关的全部注释掉,应为这个变量好像也没被用上。
将4.2的wince420/public/common/oak/drivers/keybd/inputlangs/0409/il_0409.cpp复盖掉5.0的相应目录下的同名文件。因为我用的是自已定义按键部局的键盘。
贴个增加拼音输入法的截图
总结:4.2跟5.0差异不是很大,驱动方面要注意的地方包括:
目录下的sources,makefile文件(这个很重要)
中断相关
相关的注册表项
对整个PB目录结构的理解
合理使用工具:UltraEdit,SuperFinder
编译时能独立编译就不要在IDE下编译,这样方便,效率也高。
platform.bib会跟据环境条件决定最终生成的NK.bin中包函哪些模块或程序,如果须要增加或删除可以在这个文件里更改。
多看、多想、多动手。
5.0的编译方法:
Sysgen
这个是菜单命令常用,在新建工程,或更改calatage时,用此命令。
Build and Sysgen
这个命令用在更改了共用代码时,如public目录下的文件,所有的BSP全部都重新编译,非常费时,十来分钟。
Build and Sysgen Current BSP
跟上一个命令类似,但是只编译当前使用的bsp,也比较费时。
注意:推荐将Clean Before Building、Copy Files to Release Directory After Build、Make Run-time Image After Build全打上勾。
现
在也能完全理解整个PB编译的工作流程,包括BootLoader、CE内核等。现在想起来这些工作也比较简单,不像刚接触时的一头雾水。驱动的编写一定
要看帮助文档,大多数都是要跟注册表配合使用。工作全部结束,其实还有很多要去研究,比如每种类型的驱动模型,自已对驱动这些目前也只是仅限于更改,对每
个驱动的模型不是很了解。但是这个工作量是巨大的,目前市面上也没有合适的书籍可供参考,只能慢慢啃它的全英文帮助。可能我会放下了这些了,因为公司恐怕
没有时间让我再去研究,要去写CE上的应用程序,无耐呀。
相关文章推荐
- [转载]基于WinCE4.2/5.0的驱动开发问题精华集锦
- WINCE4.2到5.0(五)
- 转载——wince4.2到5.0(一)
- WINCE4.2到5.0(3)
- WINCE4.2到5.0(2)中断服务差异
- wince4.2到5.0(一)
- Wince4.2 5.0 EVC4.0下载地址(正式版)
- WINCE4.2到5.0(2)中断服务差异
- WINCE4.2到5.0(2)中断服务差异
- WinCE4.2 下轻松调用 Windows Media Player 控件
- WinCE初级教程-Platform Builder 5.0建立和配置指南[一]
- Wince 5.0英文版ROM上显示中文文本文件
- wince 5.0 + evc usb 调试
- 转:wince 5.0 .2440 5.0BSP的中断过程(作者:wogoyixikexie@gliet)
- Wince 5.0中不能与PC同步的问题
- WINCE 5.0 亲身体验 --处女航
- WinCE 5.0下面SD卡驱动的开发(转)
- 定制带有模拟器且支持ActiveSync调试的WINCE5.0 SDK
- 如何在WinCE 5.0中安装 .Net Compact Framework?
- WinCE 5.0边做边学(二)