interrupt相关内容

8051外部中断

如何启用8051的外部中断? 解决方案 每个8051s中断在中断允许(IE)特殊功能寄存器(SFR)中都有其自己的位,并且可以通过将相应的位置1来使能.下面的代码示例以8051汇编语言以及C语言编写,以提供正在发生的情况的大致概念. 要启用外部中断0(EX0),需要设置IE的位0. SETB EX0或ORL IE,#01或MOV IE,#01 要启用外部中断1(EX1), ..
发布时间:2020-11-30 04:19:12 其他开发

我应该如何关闭信号处理程序中的套接字?

我正在编写一个非常简单的服务器,该服务器将一直循环直到按下Ctrl-C为止.我想让ctrl-c的信号处理程序关闭打开的套接字并关闭服务器,但是我不知道信号处理程序的范围是什么,而且我不喜欢声明套接字的想法(s)我需要接近全球化. 有人可以提供建议吗?有一些标准的方法可以做到这一点吗? 解决方案 好吧,由于您具有信号处理程序,因此我假设您使用的是Unix变体.如果是这样: 套接字 ..
发布时间:2020-11-30 04:18:10 其他开发

为什么中断处理程序(ISR)无法入睡?

我很困惑为什么中断处理程序无法入睡?对于相同的问题,我有2个意见:- 中断处理程序不是可调度的吗?因为它没有task_struct. 如果处理程序处于睡眠状态,则系统可能会挂起,因为系统时钟中断被屏蔽并且无法安排睡眠过程. 中断处理程序是否可调度, 但是较低优先级的系统时钟中断 被这些优先级较高的中断所掩盖, 他们无法安排时间? 请给我一个很好的例子. 解决方案 ..
发布时间:2020-11-30 04:18:04 服务器开发

在Linux上的线程中中断系统调用

我有一个pthread循环运行,以阻塞方式调用accept().有什么办法可以中断另一个线程的调用吗?一切都指向向线程发送信号,但是显然您只能向进程发送信号. 我不能仅仅杀死线程,因为这会使套接字保持打开状态.而且那也不是很干净.真的没有办法做到这一点吗? 解决方案 您可以使用 pthread_kill()函数将信号sig发送到线程,另一个 线程与调用方的进程相同. 如果安装 ..
发布时间:2020-11-30 04:17:59 服务器开发

Android:如何取消/中断/中断待处理的SQLite查询?

在我的Android应用程序中,用户可以用导入的数据填充数据库,然后执行预定义的复杂SQL查询.使用某些数据模式,查询将花费很长时间(在HTC Hero上需要花费几分钟甚至更长的时间),而通常的使用时间不会超过10-15秒. 有什么方法可以取消Android上待处理的SQLite查询吗?超时也将很好,不需要部分结果.我正在AsyncTask.doInBackground() 中执行查询 ..
发布时间:2020-11-30 04:17:53 移动开发

对于相同的技术,轮询和事件驱动的编程是否有不同的用语?

我研究了中断与周期性轮询的关系,并了解了不必等待轮询的中断的优点.在我看来,轮询就像事件驱动的编程一样,或者至少类似于侦听器,而轮询所做的实际上就像侦听输入或输出.您同意还是误解了轮询(周期性侦听)与事件驱动的编程(也称为所谓的侦听器)之间的重要区别? 解决方案 不,相反,中断驱动的编程与事件驱动的编程在硬件级别上差不多.中断驱动代码和事件驱动代码都在运行代码之前等待事件,而轮询将尝试查询 ..

STM32F4板上的SPI从器件设置

我正在尝试通过Master& amp;中的SPI在两个STM32F4发现板之间进行通信.从站配置.我已经有了主服务器的代码,但是对于需要对从服务器的SPI初始化进行的更改,我有些困惑. 我还想在主机发送数据时实现一个中断,而不是让从机一直轮询RXNE寄存器.但是,我不确定SPI的NVIC的确切配置. 下面是主机的配置代码 void init_SPI1(void) { GP ..
发布时间:2020-11-30 04:17:43 其他开发

暂时禁用ARM上的中断

我开始使用ARM平台(特别是TI TMS570系列). 我有一些关键区域的代码,我不希望发生异常.因此,我想在进入区域时保存启用IRQ和FIR的标志,并在退出时恢复它们. 我该怎么做? 解决方案 要临时屏蔽CPU上的IRQ和FIQ,ARMv7最好的选择是使用// assembly code assuming interrupts unmasked on entry cpsid ..
发布时间:2020-11-30 04:16:41 其他开发

Windows中的中断处理

我想知道哪个线程处理设备中断.当用户模式线程正在运行时发生中断时会发生什么?当系统正在处理中断时,其他用户线程也有机会运行吗? 请给我一些参考资料,描述Windows如何处理中断. 解决方案 (通常)设备中断本身由具有接受中断的CPU的任何线程处理,但在环0且保护级别不同.这限制了中断处理程序可以执行的某些操作,因为在大多数情况下,当前线程不会与正在等待该中断指示的事件发生的线程相关 ..
发布时间:2020-11-30 04:16:35 其他开发

Python多处理atexit错误"atexit._run_exitfuncs错误";

我正在尝试在Python中运行一个简单的多进程应用程序.主线程产生1到N个进程,并等待直到它们全部完成处理为止.每个进程都运行一个无限循环,因此它们有可能永远运行而不会受到用户的干扰,因此我放入了一些代码来处理KeyboardInterrupt: #!/usr/bin/env python import sys import time from multiprocessing import ..
发布时间:2020-11-30 04:16:32 Python

Boost Thread-如何确认中断

我有将由find_the_question()函数执行的阻止任务.但是,我不希望执行此功能的线程花费超过10秒的时间.因此,如果要花费10秒钟以上的时间,我想通过清理所有资源来关闭该线程. 我试图为此编写代码,但是如果线程花费的时间超过10秒,我就无法在find_the_question()函数中获得中断.你能告诉我我在做什么错吗? void find_the_question(std ..
发布时间:2020-11-30 04:16:28 C/C++开发

为什么我不能从保护模式调用BIOS中断?

对.今天,我已经花了三个多小时的时间来了解为什么在保护模式下不能调用bios ISR.一旦设置好IDT,我就知道它不一定是IVT的常规地址,而且在保护模式下,段也没有固定的大小,等等.但是我仍然不明白为什么你不能创建一个4GB的存储空间.段,将您的IDT段映射到BIOS IVT,将所有内容设置在环0中并进行调用.那不行吗? 大多数文章都说:“请记住,您不能在保护模式下使用BIOS中断!"没有 ..
发布时间:2020-11-30 04:16:25 其他开发

当ISR运行并且发生另一个中断时会发生什么?

如果ISR正在运行并且发生另一个中断会发生什么?第一次中断会被打断吗?第二个中断会被忽略吗?还是在完成第一个ISR后触发? 编辑 我忘了将它包含在问题中(但我将其包含在标签中),我想问的是这在Atmel AVR上是如何工作的. 解决方案 通常,在大多数系统中,中断服务例程会一直进行到完成为止.但是,如果我们有一个较大的系统,其中几个设备可能会中断微处理器,则可能会出现优先级问题. ..
发布时间:2020-11-30 04:16:22 其他开发

易失的变量,只能在ISR中读取?

在主循环中读写的变量是否需要volatile,但在ISR中为只读变量? 编辑:在写main时,ISR被禁用.因此,该变量可有效地原子使用. 编辑:(非常相关): 用于中断的易失性与内存屏障 解决方案 volatile是同步访问的错误方法.这是一个优化障碍,但不是更多. 它不是原子的;例如在没有本机64位数据类型的平台上,当some_type是uint64_t时,可能 ..
发布时间:2020-11-30 04:16:18 其他开发

x86保护模式下的键盘中断导致处理器错误

我正在研究一个简单的内核,并且一直在尝试实现键盘中断处理程序以摆脱端口轮询.我一直在-kernel模式下使用QEMU(以减少编译时间,因为使用grub-mkrescue生成iso需要相当长的时间),并且工作正常,但是当我想切换到-cdrom模式时,它突然开始了崩溃.我不知道为什么. 最终,我意识到,当它从iso引导时,它还会在引导内核本身之前运行GRUB引导程序.我发现GRUB可能会将处理器 ..
发布时间:2020-11-30 04:16:15 其他开发

内核如何通知用户空间程序中断发生

我正在编写一个用户空间程序和一个内核空间设备驱动程序. 目标:一旦发生中断,用户空间程序就需要快速执行操作. 我的幼稚方法:用户空间程序使用ioctl调用wait_event_interruptible(),内核ISR调用awak_up_interruptible()唤醒用户空间程序.事实证明,从中断到用户空间需要花费太多时间. 还有什么更好的方法吗? 谢谢! 解决方 ..
发布时间:2020-11-30 04:16:10 服务器开发