新闻中心

EEPW首页>嵌入式系统>设计应用> 基于S3C2410的Windows CE 5.0 BSP移植

基于S3C2410的Windows CE 5.0 BSP移植

作者: 时间:2012-04-13 来源:网络 收藏

⑶ 实现OEMInit(),该函数将调用以下函数:OALCacheGlobalsInit(),OALIntrInit(),OALTimerInit(),OALKitlStart()来初始化Cache Global,中断,时钟,启动KITL,实现代码如下:
void OEMInit()
{
OALCacheGlobalsInit();// 初试化cache globals
if (!OALIntrInit()) {
OALMSG(OAL_ERROR, (
LERROR: OEMInit: failed to initialize interruptsrn
));
} // 初试化中断
OALTimerInit(1,X_PCLK/2000, 0); // 初始化时钟
OALKitlStart();// 初始化KITL
}

⑷ 实现OALTimerInit(),该函数用于初始化OS TIMER,设置每毫秒产生一个System tick,为系统计数,触发进程调度。由CPU的运行主频和硬件定时器资源来确定,执行过程有:初始化时钟状态全局变量,初始化高分辨率时钟函数指针,使能TIMER。

⑸ 实现中断处理处理函数:OALIntrInit(),该函数通常先初始化中断映射表,因为WIN为了模块化,把平台相关物理中断号和系统中断号建立映射。然后清除外部中断,内部中断等。

3.3 驱动

以触摸屏为例,来探讨系统驱动程序。这里以三星公司ARM9内核芯片触摸屏接口为基础,通过外接4线电阻式触摸屏构成硬件基础,整个触摸屏由横向电阻线和纵向电阻线组成。触摸屏驱动的主要函数组成有:

TSP_Poweron 该函数将执行触摸屏的一些初始化,主要是寄存器的配置。

DdsiTouchPanelEnable:使能DDSI接口,使得硬件能将流数据提供给DDSI接口,就可以实现触摸的操作了。

DdsiTouchPanelSetMode:模式设置函数,设置触摸屏是高采样率还是低采样率

DdsiTouchPanelGetPoint :触摸屏进行采样函数

TSP_CalibrationPointGet:坐标转换函数,该函数实现将从AD采样植转换成坐标。

主要过程:

⑴ 修改source文件,要添加如下库文件:
TARGETLIBS=$(_COMMONSDKROOT)lib$(_CPUINDPATH)coredll.lib
SOURLIBS=
$(_COMMONOAKROOT)lib$(_CPUINDPATH)tch_cal.lib
$(_COMMONOAKROOT)lib$(_CPUINDPATH)tchmdd.lib

因为这个驱动在CE 4.2下面是在Public目录,而这里将该触摸屏移到了Platform下面,在CE4.2下面是没有以上三条链接库,但Platform,Public编译路径,先决条件都不同。因此引用的库不一样。

⑵ 删除如下库文件:
$(_TARGETPLATROOT)lib$(_CPUINDPATH)drvlib.lib

该库在Windows CE 4.2系统下为触摸屏与音频共用库,但在Windows CE系统下,这个库已经不是必要的并且已经不存在了,所以删除掉,否则系统会出编译错误。

⑶修改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

其他驱动的过程与触摸屏类似。



评论


相关推荐

技术专区

关闭