ISR和IST之间的数据共享 [英] data sharing between ISR and IST

查看:115
本文介绍了ISR和IST之间的数据共享的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述



您好,

Hi,

    我刚接触WinCe编程,我的系统中安装了Win ce 6 R3。通过关于WinCE中断处理的在线帮助阅读,我有一个问题。

     Iam new to WinCe programming and i have Win ce 6 R3 installed in my system. reading through the online help regarding interrupt processing in WinCE, I had a question.

1)我想知道为什么我们需要经历详细的物理记忆映射过程
<在ISR和IST之间共享数据时强> 2次(一次在ISR中,一次在IST中)。

1) I wanted to know why we need to go through elaborate process of mapping physical memories 2 times (once in ISR and once in IST) when sharing data between ISR and IST.

如果我正确理解中断架构,内核驱动程序线程将运行内核进程上下文。此外,ISR在内核模式中断的进程的上下文中运行(尽管它可以访问完整的4GB虚拟内存空间)。 
因此,如果两者(ISR和IST)都在内核模式下运行,为什么我们需要在ISR(通过OALPAtoVA)和ISR(MmMapIoSpace)中单独映射物理内存?

If i understand the interrupt architecture properly, the kernel driver thread runs in the kernel process context. Also, the ISR runs in the context of the process interrupted in kernel mode(though it can access the full 4GB vitual memory space).  So, if both(ISR and IST) are running in kernel mode, why do we need to map physical memory separately in ISR (through OALPAtoVA) and ISR (MmMapIoSpace) ?

推荐答案

理论上是,但由于您的ISR在OAL中,MmMapIoSpace不适用于OAL。

反之亦然,OALPAtoVA是不适用于司机。

但是,如果ISR是作为可安装的ISR实施的,您可以从驱动程序传递指针并为共享数据共享相同的VA。
Theoretically yes, but since your ISR is in OAL, MmMapIoSpace is not available for OAL.
Vice versa, the OALPAtoVA is not available for drivers.
But if the ISR is implemented as an installable ISR, you can pass the pointer from driver and share the same VA for the sharing data.


这篇关于ISR和IST之间的数据共享的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆