知识大全 WinCE中OEM适配层编程点滴之创建OAL[3]
Posted 函数
篇首语:瞄准还不是射中,起跑还不算到达。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 WinCE中OEM适配层编程点滴之创建OAL[3]相关的知识,希望对你有一定的参考价值。
WinCE中OEM适配层编程点滴之创建OAL[3] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
X 平台系统时钟中断的处理工作 系统时钟由InitClock函数负责初始化工作 一般是在OEMInit函数中调用 当发生中断时 ISR首先用下列语句累计计数CurMSec += SYSTEM_TICK_MS; /////SYSTEM_TICK_MS =
然后根据下列语句判断应该返回什么值
if ((int) (dwReschedTime – CurMSec) >= ) return SYSINTR_RESCHED; ///重新调度 else return SYSINTR_NOP; ///不再执行任何操作
上述代码中全局变量dwReschedTime在schedule c中定义 也就是由内核的调度模块决定在何时开始重新调度线程 CurMSec累计了从WindowsCE启动到当前总共产生了多少个system tick 实现系统时钟后还要实现OEMIdle函数 当没有线程准备运行时OEMIdle被调用 OEMIdle函数将CPU置于空闲模式 但在空闲模式下仍然要累计系统时钟
三 I/O控制代码
I/O控制代码作用
应用软件或者驱动程序可以调用KernelIoControl函数与OAL层通信 而KernelIoControl在内部调用OEMIoControl函数 OEMIoControl是一个OAL API OEM可以在OEMIoControl中编写自己的I/O控制代码实现一些功能 或者说与应用软件通信 I/O控制代码常用的例子如重启计算机 得到系统信息 设置RTC 得到设备ID等 还有一些系统程序使用的特殊的I/O控制代码 在这里说明一下 我经过实验证实CE提供的得到设备ID方法并非有效
编写自己的I/O控制代码步骤
) 在pkfuncs h或者新编写一个 h文件中按如下格式定义
#define IOCTL_MY_CONTROL CTL_CODE(FILE_DEVICE_HAL METHOD_NEITHER FILE_ANY_ACCESS)
) 在oemioctl c中修改OEMIoControl函数 添加如下代码
case IOCTL_MY_CONTROL:
) 在应用程序中调用KernelIoControl函数 具体参数参见帮助文档
四 结束语
OAL所有接口函数和全局变量说明请参见标题为 Supported OAL APIs 的帮助文档 以前的文章《加密Windows CE系统》里介绍的 OEMLoadInit_t pOEMLoadInit 和 OEMLoadModule_t pOEMLoadModule 就是OAL暴露的用于创建可信任环境的全局变量 我们编写好了函数后就可以把函数地址赋给这两个变量 OAL的确很复杂 当实际需要时我们才会具体研究某一部分 因为带着问题研究是最有效率的 希望这两篇文章能够抛砖引玉 让更熟悉OAL的开发者能够公开自己的研究成果 和大家分享
cha138/Article/program/SQL/201311/16411相关参考
知识大全 WinCE中OEM适配层编程点滴之创建OAL[1]
WinCE中OEM适配层编程点滴之创建OAL[1] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!&
WebSphereSAP适配器编程基础 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 介绍 从
自发表老子是伟大的多核计算科学家一文来收到许多网友的强烈反响褒扬者有之砸板砖者亦有之不过板砖数量倒是在我的意料之中凡是跟哲学或者说是玄学的东西沾上边的总会招来一阵口舌之争虽然砸板砖者也没有说出任何
Oracle编程经验及维护点滴 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 一在分布式数据库环
.NET简谈设计模式之(适配器模式) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 今天我们要学
C#高级编程:通过数据适配器进行更新[1] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 
C#高级编程:通过数据适配器进行更新[2] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 
C#高级编程:用数据适配器来填充DataSet 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!&nb
点滴型白癜风在日常生活中很普遍,是所有白癜风中患病较多的病症,因为它的症状同继发性白斑相似,很多没有经验的人往往使两者相混淆,这样不利于白癜风的治疗。因此我们要学会辨认白癜风的能力,因为在众多白癜风病
点滴型白癜风在日常生活中很普遍,是所有白癜风中患病较多的病症,因为它的症状同继发性白斑相似,很多没有经验的人往往使两者相混淆,这样不利于白癜风的治疗。因此我们要学会辨认白癜风的能力,因为在众多白癜风病