您的位置:首页 > 其它

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上的应用程序,无耐呀。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: