基于S3C2410的Windows CE 5.0 BSP移植
tMode:模式设置函数,设置触摸屏是高采样率还是低采样率
DdsiTouchPanelGetPoint :触摸屏进行采样函数
TSP_CalibrationPointGet:坐标转换函数,该函数实现将从AD采样植转换成坐标。
移植主要过程:
⑴ 修改source文件,要添加如下库文件:
TARGETLIBS=$(_COMMONSDKROOT)lib$(_CPUINDPATH)coredll.lib
SOURCELIBS=
$(_COMMONOAKROOT)lib$(_CPUINDPATH)tch_cal.lib
$(_COMMONOAKROOT)lib$(_CPUINDPATH)tchmdd.lib
因为这个驱动在Windows CE 4.2下面是在Public目录,而这里将该触摸屏移到了Platform下面,在Windows CE4.2下面是没有以上三条链接库,但Platform,Public编译路径,先决条件都不同。因此引用的库不一样。
⑵ 删除如下库文件:
$(_TARGETPLATROOT)lib$(_CPUINDPATH)drvlib.lib
该库在Windows CE 4.2系统下为触摸屏与音频共用库,但在Windows CE5.0系统下,这个库已经不是必要的并且已经不存在了,所以删除掉,否则系统会出编译错误。
⑶修改platform.bib,将我们移植过来的驱动dll包含到nk.bin中
⑷修改platform.reg,其中CalibrationData是触摸屏的一个参数:
[HKEY_LOCAL_MACHINEHARDWAREDEVICEMAPTOUCH]
MaxCalError=dword:7
portrait
CalibrationData=517,610 897,934 142,936 129,290 891,285
其他驱动的过程与触摸屏类似。
3.4 移植小结
此次移植是升级BSP,而硬件上基本没有变化,因此很多代码不需做修改即可使用,通过以上移植,不难发现此类移植BSP过程中所要做的工作主要在以下几个方面:
⑴ 修改dir文件,在dir文件中指定了当前目录哪些文件夹被系统编译,编译器根据dir层层搜索,而移植BSP不可避免的带来了目录的变化,通过修改dir来指定新的编译路径。
⑵ 修改sources文件,在sources文件中,指定了编译类型有PLATFORM,OAK;编译的时候引用的库 sourcelib,targetlib不一样,移植的时候一定得注意。目标文件类型有Library,Dynlink,program;include 字段包含的则是编译时候所需要的头文件目录。有个比较特殊的sources是位于Platform(例如smdk2410)下的sources.cmn,它包含了该平台的通用库,头文件路径,这个文件在移植过程中需要修改的,否则,编译出错。
⑶ 修改platform.bib,platform.reg等文件,因为这两个文件决定了镜像中包含哪些模块(dll)以及注册表相关信息,驱动移植的过程中,每个模块的改动都需要修改这两个配置文件。
⑷ 驱动源文件中的头文件的修改以及函数,变量修改等,这些依据编译时候出现的错误来确定。
除此之外,各部分的移植还需特别注意的地方有:
Bootloader部分:因为bootloader下载,烧写,启动镜像过程会涉及到内存地址的问题,各种入口地址不能出错误,以及内存超出范围,冲突都需要特别小心。尤其是g_oalAddressTable这个表,这个表定义了物理地址虚拟地址之间的转换以及内存的大小,如果设置不正确,将出现校验错误,下载失败或者镜像无法启动等错误。
OAL部分:startup.s以及OEMInitDebugSerial两函数需要特别注意,这两个主要是初始化硬件及串口,这是系统运行及驱动调试的基础,如果硬件配置以及调试串口有改变,则需要适当的修改。此次BSP移植,因硬件平台没有变化,因此OAL部分很多代码无须修改即可使用。
驱动部分:Windows CE4.2与Windows CE5.0的结构,库有了很大的改变,因此需要修改引用库路径,以及头文件的引用路径,大部分驱动都将会遇到这样的问题。
4 结束语
本文创新点:通过对BSP结构分析,将具体平台的Windows CE 4.2 BSP移植到Windows CE 5.0版本,包括移植bootloader,OAL,驱动程序,使之能够通过编译并生成镜像,已经能在平台上成功运行。通过这次移植,使笔者体会到BSP 移植是一个挺复杂,烦琐的过程,因Windows CE 5.0跟Windows CE 4.2 BSP包的组织结构不同,导致很多链接库无法找到或者是这些库已经被替换,删除,只有耐心的根据这些错误提示来定位,有时候也需要去makefile里去找答案。不过移植BSP比重新开发BSP更加节省开发时间,从而缩短产品的研发。
参考文献:
[1] 潘永才,鲁启华,田茂.基于s3c2410的GPS通信实现[J].现代电子技术,2006,15,157-159
[2] 林涛.嵌入式操作系统Windows CE的研究[J].微计算机信息,2006,6-2,91-93
[3] 吕秀平,李小民.Windows CE.NET的定制和裁剪[J].科学技术与工程.6卷第21期,2006年11月,p3483-3486
[4] 曹荣,刘峰.一种DSP嵌入式多媒体应用系统板级支持包的研究[J] .第26卷第3期,2006年3月,p746-748
[5] 何宗健.Windows CE嵌入式系统[M].北京:北京航空航天大学出版社,2006.
BSP 移植 5 0 CE S3C2410 Windows 基于 相关文章:
- 基于ARM体系的嵌入式系统BSP的程序设计方案(04-11)
- WinCE系统下BootLoader的开发(04-10)
- 嵌入式语音通信系统中VxWorks BSP的设计实现(09-18)
- DMA结合McBSP在数据采集系统中的应用 (07-02)
- 基于DSP编程的几个关键问题(03-26)
- SST25VF080B SPI接口FLASH STM32驱动(12-03)