zoukankan      html  css  js  c++  java
  • wince 外部中断调用可安装ISR错误(data abort)

    可安装的 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

  • 相关阅读:
    Serilog 动态添加自定义属性
    C# 序列化与反序列化
    幂等设计
    服务无状态
    vue 显示 mysql 数据库表 Demo
    C# 调用 linux 函数 —— Linux 头文件目录位置
    创建可以在 Zynq 上运行的动态库
    C# 获取所在函数名
    Linux 关闭终端不结束进程
    C# 自动生成版本号
  • 原文地址:https://www.cnblogs.com/zym0805/p/2160093.html
Copyright © 2011-2022 走看看