知识大全 WinCE中OEM适配层编程点滴之创建OAL[1]

Posted

篇首语:勇敢,事会成功;勤劳,幸福必来。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 WinCE中OEM适配层编程点滴之创建OAL[1]相关的知识,希望对你有一定的参考价值。

WinCE中OEM适配层编程点滴之创建OAL[1]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

    正如CE的帮助文档所言 创建OAL是一个非常复杂的任务 而通常的办法是复制原有的相同平台的OAL代码 然后修改来适应平台的特殊要求 也就是说对于没有特殊要求的平台 复制原有相同平台的OAL代码就足够了 由于OAL的复杂性在这篇文章中我只讲解常用的部分

  一 实现ISR

   ISR的概念

  ISR(interrupt service routine)是处理IRQs(interrupt request line)的程序 Windows CE用一个ISR来处理所有的IRQ请求 当一个中断发生时 内核的异常处理程序先调用内核ISR 内核ISR禁用所有具有相同优先级和较低优先级的中断 然后调用已经注册的OAL ISR程序 一般ISR有下列特征

   ) 执行最小的中断处理 最小的中断处理指能够检验 答复产生中断的硬件 而把更多的处理工作留给IST(interrupt service thread)

   ) 当ISR完成时返回中断ID(中断ID大部分是预定义的)

   X 平台的ISR结构

  X 平台的ISR保存在%_WINCEROOT%\\PUBLIC\\MON\\OAK\\CSP\\I       \\OAL\\fwpc c中 函数名为PeRPISR 下面分析一下此函数的主要代码

 ULONG PeRPISR(void)   ULONG ulRet = SYSINTR_NOP; ///返回值 既中断ID(以SYSINTR_为前缀)  UCHAR ucCurrentInterrupt; ///当前中断号  if (fIntrTime) ////// fIntrTime 用于测试SR和IST的延时时间 测试工具为ILTiming exe        ucCurrentInterrupt = PICGetCurrentInterrupt(); ////返回当前中断IRQ  if (ucCurrentInterrupt == INTR_TIMER ) ///IRQ IRQ 为系统时钟(system tick)中断 具体见 二 实现系统时钟      if (dwRebootAddress) ////是否需要重启动   RebootHandler();       if(ucCurrentInterrupt == INTR_RTC) ////IRQ real time clock的中断      else if (ucCurrentInterrupt <= INTR_MAXIMUM) ///如果中断小于 INTR_MAXIMUM     ulRet = NKCallIntChain(ucCurrentInterrupt); ////调用中断链   if (ulRet == SYSINTR_CHAIN) ///如果中断链未包含中断    ulRet = OEMTranslateIrq(ucCurrentInterrupt); ////在IRQ 和SYSINTR之间转换 此函数返回IRQ对应的SYSINTR         PICEnableInterrupt(ucCurrentInterrupt FALSE); ///启用除当前中断以外的所有中断   ///else if  OEMIndicateIntSource(ulRet); ///通知内核已经发生SYSINTR中断 

cha138/Article/program/SQL/201311/16412

相关参考

知识大全 WinCE中OEM适配层编程点滴之创建OAL[3]

WinCE中OEM适配层编程点滴之创建OAL[3]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!&

知识大全 WebSphere SAP适配器编程基础

WebSphereSAP适配器编程基础  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  介绍  从

知识大全 多核编程的四层境界

  自发表老子是伟大的多核计算科学家一文来收到许多网友的强烈反响褒扬者有之砸板砖者亦有之不过板砖数量倒是在我的意料之中凡是跟哲学或者说是玄学的东西沾上边的总会招来一阵口舌之争虽然砸板砖者也没有说出任何

知识大全 Oracle编程经验及维护点滴

Oracle编程经验及维护点滴  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  一在分布式数据库环

知识大全 通过数据适配器进行更新[1]

C#高级编程:通过数据适配器进行更新[1]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 

知识大全 .NET简谈设计模式之(适配器模式)

.NET简谈设计模式之(适配器模式)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  今天我们要学

知识大全 通过数据适配器进行更新[2]

C#高级编程:通过数据适配器进行更新[2]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 

知识大全 用数据适配器来填充 DataSet

C#高级编程:用数据适配器来填充DataSet  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!&nb

点滴型白癜风与继发性白斑的不同之处

点滴型白癜风在日常生活中很普遍,是所有白癜风中患病较多的病症,因为它的症状同继发性白斑相似,很多没有经验的人往往使两者相混淆,这样不利于白癜风的治疗。因此我们要学会辨认白癜风的能力,因为在众多白癜风病

点滴型白癜风与继发性白斑的不同之处

点滴型白癜风在日常生活中很普遍,是所有白癜风中患病较多的病症,因为它的症状同继发性白斑相似,很多没有经验的人往往使两者相混淆,这样不利于白癜风的治疗。因此我们要学会辨认白癜风的能力,因为在众多白癜风病