interrupt相关内容

手臂睡眠模式的进入和退出差异WFE,WFI

对于ARM体系结构,我是相当陌生的人,我正在努力唤醒唤醒机制. 因此,首先,我发现很难找到有关此方面的好信息. ARM的文档在该主题上似乎非常简洁. 我想了解的是Cortex(尤其是M0,因为我正在使用它)何时醒来. 作为参考,我还参考了以下内容: 目的是什么? WFI和WFE指令以及事件信号? 处理器为何进入使用WFE指令时处于待机状态,但使用WFI指令时不处于待机状态 ..
发布时间:2020-09-07 02:30:53 其他开发

在STM32上禁用IRQ

有什么办法可以禁用除其中一个以外的所有Cortex M3 MCU的irq? 我的问题是,我有一个系统运行多种具有不同优先级的irq,并且我想禁用所有irq(在特定状态下除外). 我知道我可以通过使用"__disable_irq()"指令来禁用所有irq,但是如果我之前没有调用过"__enable_irq()",那么在调用此指令后我将无法启用一个irq. 感谢您的帮助, 致谢 ..
发布时间:2020-09-07 02:28:24 其他开发

无法在库中使用attachInterrupt

我正在为超声波距离传感器编写一个简单的库,以为我会尝试使用中断. 但是我不能在attachCallback方法中正确设置我的功能. 我希望在引脚分别变为高电平和低电平时调用HCSR04Interrupt::echoHigh()和HCSR04Interrupt::echoLow(). 我已经对此进行了Google搜索,但无济于事. Ardiuno IDE表示以下内容: ./A ..
发布时间:2020-09-06 20:48:51 其他开发

C ++递减单字节(易失性)数组的元素不是原子的!为什么? (另外:我如何在Atmel AVR mcus/Arduino中强制原子化)

我只是失去了天,从字面上看,约25个小时的工作,因为要调试我的代码在简单的东西,我不知道. 事实证明,在AVR ATmega328 8位微控制器(Arduino)上,递减C ++中单字节数组的元素不是原子操作,并且需要原子访问保护(即关闭中断).为什么是这样???另外,什么是C语言技术来确保原子自动访问Atmel AVR微控制器上的变量? 这是我所做工作的简明版本: //glob ..
发布时间:2020-09-06 20:45:31 C/C++开发

如何强制一个应用程序在Windows的一个核心中运行,而没有其他应用程序在该核心中运行?

我认为我的问题很特殊,但是我想在MATLAB Simulink中进行实时定位,但是我不想使用XPC目标.我只希望在程序运行时没有中断(simulink),以便拥有一个实时的无中断控制系统.这样,我就可以在没有目标系统的情况下使用我的控制模块了. 首先,请忽略我的英语水平很弱.我有一些问题: 1.我们可以强迫一个内核仅由simulink使用吗? 2.一次中断通常需要多少时间(以及最大值)? 3.在s ..
发布时间:2020-08-06 19:24:42 其他开发

中断如何在Intel 8080上工作?

中断如何在Intel 8080上工作?我已经搜索了Google并在英特尔的官方文档(197X)中找到了关于此的简短描述.我需要对此进行详细说明,以模拟此CPU. 解决方案 我终于找到了! 我在中断操作码所在的位置创建了一个称为bus的变量. 然后,我调用了一个函数来处理中断: void i8080::interruption() { // only for RST ..
发布时间:2020-07-31 02:31:40 其他开发

无法通过UART传输所有字符

我正在使用stm32f0 MCU. 我想从uart中传输从uart接收到的每个字节.我在从uart收到的每个字节上启用了一个中断. 我的代码很简单. uint8_t Rx_data[5]; //Interrupt callback routine void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart) { if ..
发布时间:2020-07-25 20:34:54 其他开发

在x86 Intel VT-X非根模式下,是否可以在每个指令边界处传递中断?

除了某些通常未指定将中断传递给虚拟处理器的条件(cli,if = 0等等)之外,guest虚拟机中的所有指令实际上是否可中断? 这就是说,当将传入的硬件中断分配给LAPIC然后再分配给处理器时,可能发生了一些内部魔术,将其转换为对来宾的虚拟中断(使用虚拟APIC,没有退出).发生这种情况时,当前执行的指令是否像典型的中断传递一样立即将OOO流序列化并跳转到向量,还是VT-x的虚拟中断传递会导 ..
发布时间:2020-07-24 09:33:38 其他开发

进入图形模式而不会中断汇编

如何在不使用BIOS中断的情况下进入图形模式(模式13h)?我的目标是32位保护模式,其中BIOS中断不可用.我在网上找到了一个教程,但是它仅给我一些提示,例如VGA寄存器. 我想知道如何访问VGA寄存器?我在 NASM 中使用x86程序集.我知道如何使用INT 13h/INT 10h BIOS中断进入图形模式. 解决方案 这将取决于硬件.如果您将自己限制在与VGA兼容的适配器上,但 ..
发布时间:2020-07-13 21:07:51 其他开发

如何允许Web Worker在仍执行计算的同时接收新数据?

我想使用Web Workers对数组进行排序.但是,当工作程序仍在执行排序功能时,此数组可能会随着时间的推移接收新值. 所以我的问题是,如何在接收到新项目后如何“停止"对工作程序的排序计算,以便它可以对该数组执行带有该项目的排序,同时仍保持已进行的排序?/p> 示例: let worker = new Worker('worker.js'); let list = [10,1,5,2 ..
发布时间:2020-07-08 10:17:37 前端开发

BIOS在保护模式下中断

我正在一个操作系统项目中,使用isolinux(syslinux 4.5)作为引导程序,并使用组织在0x200000的multiboot标头来加载我的内核. 据我所知,内核已经处于32位保护模式.我的问题:有没有更简单的方法来访问BIOS中断? (基本上我想要0x10:D) 加载后,我的内核会设置自己的GDT和IDT条目,并进一步重新映射IRQ.因此,是否可能在内核加载并设置VGA/S ..
发布时间:2020-07-04 19:39:24 其他开发

在x86上,当OS禁用中断时,它们消失了,还是排队并“等待"中断再次出现?

在Windows上,我的平台是x86和x86-64. 中断优先级系统的重点是使优先级最高的中断击败其他中断.为此,我猜测Windows将完全禁用所有较低级别的中断,直到完成较高级别中断的ISR. 但是,如果CPU不监听中断,会发生什么?他们只是默默消失了吗?还是他们在硬件中排队,等待中断再次启用?如果将它们存储在哪里?排队人数有限制吗?如果有太多中断未处理,会发生什么?如果在极少数情况 ..
发布时间:2020-06-29 19:10:04 其他开发

使用类方法的C ++ ISR?

是否可以将类方法用作中断服务程序? 我有一个ISR编写并使用以下函数在C中工作: static void interrupt far ISR(...) {} 我已经尝试在C ++中创建一个方法(原型): void interrupt far ISR(...); 然后执行: #pragma interrupt void interrup ..
发布时间:2020-06-26 19:45:50 C/C++开发

ISR中可以使用断点吗?

可以在中断服务程序(ISR)中使用断点吗? 解决方案 是-在模拟器中. 否则,不可以.很难实现,无论如何都是一个坏主意.通常,ISR应该与硬件一起使用,并且每条指令之间只有半秒的间隔,硬件的行为很容易就大不相同. 改为设置某种日志记录系统. ISR还会恶意地从其他进程中“窃取" CPU,因此许多操作系统建议您将ISR保持极短的状态,并仅执行严格的必要操作(例如处理任何紧急 ..
发布时间:2020-06-26 19:45:45 其他开发

静态定义的IDT

我正在从事一个对启动时间有严格要求的项目.目标架构是在32位保护模式下运行的基于IA-32的处理器.可以改进的领域之一是当前系统动态初始化处理器的IDT(中断描述符表).由于我们没有任何即插即用设备,并且系统是相对静态的,因此我希望能够使用静态构建的IDT. 但是,这对于IA-32拱门来说是麻烦的,因为8字节的中断门描述符会分割ISR地址. ISR的低16位出现在描述符的前2个字节中,其他一 ..
发布时间:2020-06-26 19:45:42 其他开发

在运行时中断汇编指令

当发生CPU中断时,如果已确认,则通过保存当前地址位置来处理该中断,然后再跳入处理程序.否则它将被忽略. 我想知道汇编指令调用是否被中断. 例如, mvi a, 03h ; put 3 value into acc. in 8080 assembly 单行指令可以中断吗?或者,如果不是,那是原子的?? 是否总是保证“一行汇编指令"始终是原子的? 如果没有"lock ..

delphi计时器的滴答声比计时器服务中断例程更快

您好,我被要求为某人维护一个基于Delphi 5的程序,该程序正在使用计时器对象每隔50毫秒进行一次滴答,并且在每次启动时都会运行单线程代码块。我只是想知道,如果执行该代码块的时间长于计时器滴答间隔,会发生什么情况?例如,是否会引起访问冲突之类的问题?默认情况下,Delphi如何处理这种情况?非常感谢。 解决方案 计时器提示不会中断您的代码。 计时器刻度线以窗口消息的形式传递。窗口消 ..
发布时间:2020-06-01 00:19:08 其他开发

调度程序在需要时如何重新获得控制权?

我正在阅读有关调度的信息,但是我无法弄清楚调度程序在用户空间中调用代码后如何重新获得控制权. 例如调度程序将控件传递给用户空间中的某个应用程序,该应用程序执行无限循环,并且一个核心芯片上没有其他硬件中断发生.所有文档都讨论了调度程序重新获得控制权并抢先中断用户进程的方法,但是,如果控制权从未传递回操作系统,那该怎么办? 问题::调度程序是否在X毫秒后向CPU中的某个时钟注册以再次获得控 ..
发布时间:2020-05-21 19:10:58 其他开发