问题标签 [interrupt-handling]
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.
linux-kernel - 我是否需要在 Linux 内核中为 Virtual Legacy Wire 做一些特殊设置?
在我的 x86 主板上,我将一些特殊的中断源(包括 NMI)连接到南桥芯片。在芯片的数据表中,它说这些中断是通过虚拟传统线路 (VLW) 发送到 CPU。我不太了解VLW,也不知道它对软件开发者是否透明。目前我无法捕获 Linux 内核中的中断。所以我的问题是我需要在内核中为 VLW 做一些特殊设置吗?在我之前的硬件和代码中,我使用 IOAPIC 来处理类似的中断,并且效果很好。
linux - linux中的中断处理。中断共享
这是我的问题。手册说:“当内核收到中断时,所有注册的处理程序都会被调用。” 我想知道是否有任何规则,指定调用处理程序的顺序?
iphone - iPhone 在启动画面期间睡眠中断后返回黑屏
我有一个奇怪的错误,似乎与操作系统相关:如果我在显示操作系统控制的初始屏幕 Default.png 时给我的设备一个睡眠中断,然后立即唤醒设备,我会得到一个黑色screen untilapplicationDidFinishLaunching:
被调用并且操作系统将控制权传递给我的应用程序。
如果在唤醒设备时,Default.png 仍然正确显示,那就太好了。我输入了一些日志以查看中断处理程序(applicationWillResignActive:
等)何时被调用,但他们从来没有这样做过——我认为中断发生得太快了。
关于如何避免返回黑屏的任何想法?
提前致谢!
linux - 错误:设备或资源正忙
我正在尝试编写一个简单的模块,它应该替换 irq 1 处理程序。我一直收到以下错误:'-1 设备或资源忙'。有什么办法可以解决吗?这是我的代码:
也许任何人都可以说什么是错的。PS。我正在使用 2.6.39.3 内核。
architecture - 程序执行和中断
我想知道程序在执行时如何看到和使用中断。我已经阅读了有关中断的级别、边缘、混合和消息类型的信息,并且设备会发送一个脉冲来发出中断信号,但是程序如何看到该中断?还是程序根本就可以看到中断?感谢您对此的任何帮助
assembly - 更改 8086 / 88 的 IVT
如您所知,中断发生时,8086获取中断的代码类型并将其乘以4,然后在IVT中检查。
知道我想在 8086 中更改 IVT,我正在使用 emu8086。
我该怎么做?
assembly - 中断服务程序的奇怪行为
我正在编写一个中断服务例程,它应该使用 int 70h 和 IRQ8 处理由 RTC 引起的中断,以便与某些计时器一起使用。不幸的是,我一直有很多问题,所以我决定将问题分成几个较小的问题,然后独立解决每个问题。首先,我放弃了硬件部分,决定先用软件实现中断。
现在,我正在使用 NASM 和 DosBox。
这是 ISR 代码:
我正在使用以下程序测试此中断:
和
现在我们进入有趣的部分。
当我调用安装程序时,我收到安装中断并且程序似乎结束正常的消息。
当我调用 INT70H.COM 时,我得到了似乎是一个内存区域的转储。其中唯一可读的东西是:
Testing!Testing!int 70h working
和C:\NASM-DOS\NASM.EXE
。
当我取消注释 INT70H 中的mov ax, 0
和mov dx, 0
行时,我得到Testing!
并且 DosBox 挂起,有时会崩溃。VMware 和 VirtualBox 也是如此。
当我用来自 INT70H 的两个 mov 注释掉读取 RTC 寄存器 C 的行时,我得到Testing!Testing!int 70h working
并且 DosBox 挂起。VirtualBox 和 VMware 也会发生同样的事情。如果 INT70H 中的两个 mov 未注释,我得到Testing!
并挂起。
这让我相信它可能是一些 DOS 系统调用(我不应该在最终产品中使用)可能会做坏事,但即使它们被注释掉,当我运行 INT70H 时,计算机也会挂起。
我的主要问题是,现在我完全不知道如何开始解决这个问题。
c - printk 在中断处理程序中,真的那么糟糕吗?
每个人都知道中断处理程序应该尽可能短。并且在中断处理程序中添加诸如printk
调试之类的功能是不应该做的事情。实际上,我之前在为我编写的中断驱动的字符设备调试linux内核时尝试过,它破坏了驱动程序的时序。
我的问题是,为什么会这样?
printk
函数被缓冲!这意味着,据我了解,数据被插入到队列中,并且稍后处理,很可能是在中断处理程序完成之后。
那么为什么它不起作用呢?
embedded - 为 Keil MCB1700 评估板实施我的程序的最佳方式是什么?
我想为 MCB1700 评估板开发一个程序。PC 客户端软件从硬盘读取图片。然后通过socket(以太网)将图片发送到MCB1700评估板。MCB1700 服务器通过Socket 连接从PC 接收图片并显示在LCD 上。
服务器还必须执行以下任务:
- 将图片保存到 U 盘;
- 从U盘中读取图片并通过socket发送给客户端;
- 通过 CAN 发送和接收信息
- COM 日志记录。
- 等等
套接字连接可以在 CMSIS 和 RL-ARM 库的帮助下实现。
但是,据我了解,在这两种情况下,软件都必须监听传入的 TCP 连接并在无限循环中处理网络事件——Keil 的所有示例都基于这样的原则。
我一直认为,嵌入式编程使用无限循环是一种糟糕的方式。此外,我读到了这样有趣的声明
“当然可以在没有 RTOS 的情况下创建实时程序(通过在循环中执行一个或多个任务)”
http://www.keil.com/support/man/docs/rlarm/rlarm_ar_artxarm.htm 所以,据我所知,循环执行很多任务是正常的做法吗?
而(1){任务1();任务2();...任务N();}
我认为最好通过中断来处理所有事件。
是否可以使用 CMSIS 和 RL-ARM 库的套接字连接并通过处理中断来组织我的所有软件?我的服务器(在 MCB1700 上)必须执行很多任务。我想,我应该在我的软件中使用 RTOS RTX。不是这样吗?在没有 RTX 的情况下实施我的软件会更好吗?
iphone - 我们如何在我们的 iphone 应用程序中检测到通话中断?
我需要在我的应用程序中检测来电中断。当应用程序处于活动状态并且有任何来电或短信时,我的应用程序会获取呼叫号码以防通话,并获取所有详细信息以防短信。我想将这些存储在我的应用程序中。
这是否可以在我们的 iPhone 应用程序中检测到呼叫中断和传入短信警报?