问题标签 [interrupt]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c - 你如何测试你的中断处理模块?
我有一个中断处理模块,它控制嵌入式处理器上的中断控制器硬件。现在我想向它添加更多测试。目前,测试仅通过在 ISR 中进行两个软件中断来测试中断嵌套是否有效,一个具有低优先级,一个具有高优先级。我怎样才能进一步测试这个模块?
operating-system - 什么是 INT 21 小时?
受这个问题的启发
我想知道 INT 21h 作为一个概念。现在,我对内部结构有了一些非常生疏的知识,但没有那么多细节。我记得在 C64 中有常规中断和不可屏蔽中断,但我的知识到此为止。你能给我一些线索吗?它是与DOS相关的策略吗?
algorithm - ISR - 最大数据速率
设备的中断服务程序 (ISR) 在每次设备中断时从设备传输 4 个字节的数据。在每次中断时,ISR 执行 90 条指令,每条指令需要 2 个时钟周期来执行。在 ISR 开始执行指令之前,CPU 需要 20 个时钟周期来响应中断请求。如果 CPU 时钟频率为 100MHz,则计算可以从此设备输入的最大数据速率(以比特/秒为单位)。
任何有关如何解决的帮助将不胜感激。
我在想什么 - 90 条指令 x 2 个周期 = 180 20 个周期延迟 = 每个中断 200 个周期
所以在 100mhz = 1 亿个周期 = 1 亿/200 = 500,000 个周期,每个周期有 4 个字节,所以 200 万字节或 1600 万位
我认为它是正确的,但我不是 100% 肯定有人可以确认吗?干杯/
windows - 内核与系统中的 Windows 进程
我有一些与内核和用户模式中的 Windows 进程有关的问题。
如果我有一个 hello world 应用程序和一个公开新系统调用 foo() 的 hello world 驱动程序,我很好奇在内核模式下我能做什么和不能做什么。
对于初学者,当我编写新的 hello world 应用程序时,我得到了一个新进程,这意味着我有自己的用户模式 VM 空间(让我们保持简单,32 位窗口)。所以我有 2GB 的空间是我“拥有的”,我可以偷看看,直到心满意足。但是,我受制于我的过程。我不能(暂时不要将共享内存带入其中)触及其他任何人的内存。
如果我编写了这个 hello world 驱动程序,并从我的用户应用程序中调用它,我(驱动程序代码)现在处于内核模式。
首先澄清/问题:我仍然在与用户模式应用程序相同的过程中,对吗?仍然有相同的PID?
内存问题:内存作为 VM 呈现给我的进程,也就是说,即使我有 1GB 的 RAM,我仍然可以访问 4GB 的内存(2GB 用户/2GB 内核 - 不介意服务器上的开关细节或细节,只是一个这里的一般假设)。作为用户进程,我无法查看任何内核模式内存地址,但我可以对用户空间做任何我想做的事情,对吗?
如果我从驱动程序代码调用我的 hello world 驱动程序,我是否仍然对用户模式内存有相同的看法?但是现在我也可以在内核模式下访问任何内存?
这个内核模式内存是共享的吗(与用户模式不同,它是我自己的进程副本)?也就是说,编写驱动程序更像是为操作系统的单个进程编写线程应用程序(调度?)
下一个问题。作为司机,我可以改变我正在运行的进程吗?假设我知道另一个应用程序(例如,用户模式网络服务器),并为该进程加载 VM,更改它的指令指针、堆栈,甚至将不同的代码加载到进程中,然后切换回我自己的应用程序?(我并不想在这里做任何邪恶的事情,我只是好奇处于内核模式到底意味着什么)?
另外,一旦进入内核模式,我可以防止操作系统抢占我吗?我认为(在 Windows 中)你可以设置你的 IRQL 级别来做到这一点,但我并不完全理解这一点,即使在阅读所罗门书(Windows 内部......)之后也是如此。我会问另一个与 IRQL/DPC 直接相关的问题,但现在,我很想知道内核驱动程序是否有能力将 IRQL 设置为高并接管系统。
还有更多,但这些问题的答案会有所帮助。
communication - 关于基于中断的通信
我们有一个简单的架构:
- 主芯片(基于arm9)
- PIC控制器
PIC 通过基于中断的 I2C 通信协议与 ARM 通信以传输数据。在中断内部,我们发出一个从 I2C 层(总线)读取数据的任务。
如果数据有限,我们通常不会有太大的问题来读取数据并将其发送到上层。如果这个数据非常大,中断将被捆绑很长时间。
第一个问题是:
我对吗?
如果我是对的,如何避免同样的情况?...或者我们可以采取不同的解决方案吗?
php - php中的cp命令导致部分复制
我编写了一个小的 PHP 脚本来帮助我将更改从登台推送到生产。我在同一台服务器上同时运行 staging 和 prod,因此我的脚本将更改从 staging 文件夹复制到 prod 文件夹。
直到今天,当我有一些文件仅被部分复制而导致一些停机时间的情况下,这一直运行良好。我想知道如果用户使用正在复制的文件访问网页,是否会导致 cp 命令中断和部分文件复制。有什么想法或解决方案吗?
复制命令基本上是:
服务器是一个基本的 LAMP 堆栈,带有 Apache 2、PHP 5、MySQL 5 和 CentOS 5。
operating-system - SMP 系统上的中断处理
中断是否分配给固定的 CPU(总是由同一个 CPU 处理)?
把我的问题放在上下文中:
来自:http: //msdn.microsoft.com/en-us/library/ms795060.aspx
保护共享区域的自旋锁的 IRQL 等于设备中断的 DIRQL。只要临界区例程持有自旋锁并访问 DIRQL 的共享区域,ISR 就不能在单处理器或 SMP 机器上运行。
这在单处理器机器上是有意义的,因为在释放锁之前 CPU 不会处理中断,因为 CPU 的 IRQL 不小于中断 IRQL。然而,在 SMP 机器上,什么会阻止其他 CPU(不是拥有锁的 CPU)处理中断并破坏数据......?
assembly - 禁用硬件和软件中断
是否可以使用 ASM/C/C++ 程序禁用所有中断以完全控制处理器?
如果是 - >如何?
如果不是->“原子”操作系统调用如何工作(例如进入关键部分)?
谢谢你的帮助!
windows - Windows 中断上下文
我正在Windows下进行驱动程序开发(从间隔零开始实时扩展RTX)
虽然我在 RTX 文档中没有看到任何内容,但是否有一个函数可以用来判断代码的当前位置是否是从中断上下文中调用的?
multithreading - 这个线程安全吗?(没有互斥体/信号量的共享数据)
所以这是一个非常特殊的问题:
我使用具有单个 CPU 内核的嵌入式系统。
我有一个主线程和一个中断。它们共享一个 32 位浮点数。中断写入浮点数,主线程读取它。读取和写入不同步。
处理器文档声明 32 位读取是一个单周期操作。
我的评估是否正确,主线程没有读取损坏值的风险?还是有其他因素?