wince -- 外部中断调用可安装ISR错误(data abort)

本文探讨了可安装的ISR如何为WindowsCE.NET带来开放性,使得平台提供商和应用程序开发人员都能参与到嵌入式空间的工作中。详细介绍了安装ISR的两个关键步骤,并通过示例代码展示了创建可安装的ISR的基本外壳程序。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

可安装的 ISR

可安装的 ISR 是为响应 Windows CE .NET 为嵌入式空间带来的开放性而创建的。OEM 再也不必完全负责平台和应用程序代码了。现在平台提供商和应用程序开发人员都可涉及嵌入式空间这一领域的工作。如果某个应用程序开发人员在使用 Windows CE 3.0 的平台上向开放总线添加了新的设备,OEM 将必须说服该 OEM 将 ISR 添加到该平台。

要将 ISR 安装到平台中,需要完成两个步骤:

  • 调用 LoadIntChainHandler 函数以加载包含 ISR 代码的 DLL。

  • 必须将 ISR 编码为用 SYSINTR_ . . . 响应进行响应,就像在 OAL ISR 中一样。

LoadIntChainHandler 函数将 ISR 动态链接库 (DLL) 加载到内核的地址空间中。这意味着代码不能调用任何非内核函数,包括任何 C 语言运行时库函数。记住,某些结构到结构赋值会降格为 memcpy 调用,必须检查所有代码以确保不需要任何外部库(即使这些库是由编译器创建的)。

下面的源代码示例说明了一个用于创建可安装的 ISR 的基本外壳程序。有四个函数:

  • DLLEntry — 接收进程和线程附加消息

  • InfoCopy — 在进行任何结构赋值时使用的复制例程

  • IOControl — 任何使用 KernelLibIOControl 的 IST 调用的处理程序

  • ISRHandler — 实际的 ISR

转载于:https://www.cnblogs.com/zym0805/archive/2011/08/30/2160093.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值