cost 356 ms
为什么在 STM32 上为重定向写入禁用所有 irq? - Why are all irq disabled for retarget write on STM32?

我正在查看以下函数,它将标准输出重定向到 STM32 Std 外设库中的 UART。 在通过 UART 传输之前,它会屏蔽可以通过 __disable_irq() 设置优先级的异常(我理解它包括所有外围设备和 GPIO 中断)。 我的问题是,为什么这个 UART tx 是这样实现的? 是否可以 ...

如何知道 IRQ 是否立即在 ARM Cortex M0+(或任何其他 MCU)上提供服务 - How to know whether an IRQ was served immediately on ARM Cortex M0+ (or any other MCU)

对于我的应用程序(在 STM32L082 上运行),我需要几种类型中断的准确(相对)时间戳。 为此,我以 1 MHz 的频率运行计时器并在 ISR 运行后立即对其进行计数。 它们都被赋予最高优先级,因此它们可以抢占不太重要的中断。 我面临的问题是它们可能仍然被具有相同优先级的其他中断和禁用中断的代码 ...

在 IRQ 上的代码中添加或删除数据时崩溃 - Crash when adding or removing data in code on an IRQ

我正在开发一个作为业余爱好的操作系统,并且在处理键盘 IRQ 时遇到了一个奇怪的问题,我不知道为什么,但是当代码中出现的字符串太少时,我收到了无效的操作代码 ISR,并且添加更多字符串时的断点 ISR。 如果我添加了足够数量的字符串,代码将正常工作,并且没有任何问题,但是我不能只是在代码中添加字符 ...

处理来自辅助 PIC 的 x86 IRQ:EOI 订单重要吗? - Handling x86 IRQs from secondary PIC: EOI order important?

我最近在我的一个应用程序中添加了一个部分,旨在允许它使用属于辅助 PIC 的 IRQ 进行操作。 特别是,中断处理程序需要向两个 PIC 发出中断结束条件信号,而不是仅向主 PIC 发出信号。 这是我的代码: 现在,在添加这部分时,我考虑了是先将 EOI 信号发送给辅助 PIC,还是发送给主 P ...

实现 IRQ 时出现无效的操作码异常 - Invalid Op Code Exception when implementing IRQs

我一直试图在基本的 kernel 开发人员上松散地遵循本教程。 目前,目标架构是 i386。 IRQ 的实施给我带来了问题; 每当我尝试将寄存器(定义为struct )作为参数传递给 function 时,我的中断处理程序都会报告一系列Invalid Op Code异常。 这是引发异常的中断处理程 ...

为什么 Linux kernel 不会在返回 IRQ_HANDLED 的共享 IRQ 的第一个处理程序处停止? - Why does the Linux kernel not stop at the first handler for a shared IRQ that returns IRQ_HANDLED?

我确信这是有充分理由的,但我看不出它是什么。 在__handle_irq_event_percpu内部,kernel 循环遍历为特定 IRQ 行注册的所有处理程序并调用它。 我不明白的是,为什么到达第一个返回IRQ_HANDLED的处理程序时没有退出这个循环? 看似简单的性能提升,肯定有什么我不明 ...

RISC-V - 软件中断 - RISC-V - Software Interrupts

我正在尝试为我的 RV32I 内核实现一个简单的中断控制器。 我相信我理解在 RISC-V 中应该如何处理中断,以及 CSR 寄存器在这个过程中的作用。 RISC-V 定义了三种中断源:外部、软件和定时器。 我了解定时器和外部中断是如何产生的。 但是,我不明白如何或什么会产生软件中断。 指令? ...

RISC-V 中断处理流程 - RISC-V Interrupt Handling Flow

我正在寻找 RISC-V 处理器如何处理中断请求。 我查看了互联网上的指令集手册和信息。 重点是准确解释标题设置的内容:指令集。 在我看来,如何处理中断是处理器所谓的“程序员模型”的问题。 它没有清楚地适合关于指令集的文档,因为部分中断处理没有在指令中表示。 显然,跳转到 ISR并不是出现在程序代码 ...

了解延迟过程调用 (DPC) - Understanding deferred procedure call (DPC)

我正在阅读用于编写设备驱动程序的操作系统和 CPU 概念,并且遇到了“延迟过程调用 (DPC)”以及 kernel 如何与 DPC 和 IRQL 交互。 我真的很感谢对它是什么以及何时使用它的简单解释? 我已经阅读了官方的微软文档和其他一些资源,但我变得更加困惑。 这些是我的一些资源: 什么是延 ...

Linux 未生成 PCI 设备中断 - Linux PCI device interrupt not generated

我目前正在重构 AMD Sensor Fusion Hub 的 驱动程序。 原始驱动程序可以在这里找到。 当向设备发送命令时,芯片需要一些时间来处理请求。 我正在使用使用msleep的黑客来等待设备响应。 但是我想干净利落地实现 IRQ 处理。 作为模板,我研究了drivers/i2c/busses ...

USART3_IRQHandler() 在设置 LL_USART_IsActiveFlag_TXE 的情况下连续调用 - USART3_IRQHandler() is continuously called with LL_USART_IsActiveFlag_TXE set

我要开发自己的串行代码(而不是使用 CubeMX 的 HAL)来连接需要低级串行功能的现有协议代码库。 USART3_IRQHandler()被重复调用(因此也是serial::serial_irq_handler() 。 序列号: (上面代码中的serial->usart == ...

ARMv7-A架构实现出现IRQ异常时如何计算LR值 - How to calculate the LR value when ARMv7-A architecture implementation takes an IRQ exception

这些天我正在研究Arm 架构参考手册 ARMv7-A ARMv7-R 版文档。 当我阅读本手册的异常处理部分时,我感到困惑。 问题是当 ARMv7-A 架构实现出现 IRQ 异常时如何决定 LR 值。 示例:假设处理器正在执行地址为 0x_0000_1000 的指令,并采取了 IRQ。首先,我们必 ...


 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM