Questions tagged [irq]

An interrupt request is a hardware signal sent to the processor that temporarily stops a running program and allows to handle a hardware event.

In an IBM PC compatible personal computer, an interrupt request (or IRQ) is a hardware signal sent to the processor that temporarily stops a running program and allows a special program, an interrupt handler, to run instead. Interrupts are used to handle such events as data receipt from a modem or network, or a key press or mouse movement. The interrupt request level (IRQL) is the priority of an interrupt request.

Related tags:

209 questions
0
votes
0 answers

Deciphering traceback from ARM CPU on Evaluation Board

I am using a petalinux / yocto on a evaluation board with a MpSoc and a FPGA. I am new to this whole Embedded Linux and gereeted with this error message when I try to run a precompiled example. Any pointers on what's going wrong is appreciated. [ …
Kev1n91
  • 3,553
  • 8
  • 46
  • 96
0
votes
0 answers

request_threaded_irq with IRQF_ONESHOT from Raspberry PI GPIO PIN doesn't block new IRQ while in

For educational purpose (I'm new in this area), I'm trying to write a driver for the AD7124 ADC, connected to the SPI serial interface of a Raspberry PI4, running under Raspbian with a kernel v5.4 on which I applied a RT patch. This ADC has a…
Fabien
  • 1
  • 1
0
votes
1 answer

Interrupt handler: request_irq returns error code -16

I am writing a simple driver, which could register an interrupt and handle it. I am using the request_irq function but it returns this error: genirq: Flags mismatch irq 29. 00004004 (irq-test) vs. 00000004 (e000d000.spi) - code -16 , EIO 5 , EINVAL…
A.A.
  • 125
  • 1
  • 11
0
votes
1 answer

Linux PCI device interrupt not generated

I am currently refactoring a driver for the AMD Sensor Fusion Hub. The original driver can be found here. When sending commands to the device, the chip takes some time to process the request. I wasusing a hack using msleep to wait for the device to…
Richard Neumann
  • 2,986
  • 2
  • 25
  • 50
0
votes
0 answers

Removing the default keyboard's interrupt handler in Linux

Is there a way to free the default keyboard interrupt handler using free_irq from a kernel module? I've tried to call free_irq(1, NULL), which doesn't work since we I don't know the handler's cookie (2nd argument). Thanks in advance :) Update: my…
Idan Ofek
  • 87
  • 1
  • 2
  • 13
0
votes
2 answers

USART3_IRQHandler() is continuously called with LL_USART_IsActiveFlag_TXE set

I'm to developing my own serial code (rather than using CubeMX's HAL) to interface an existing protocol codebase which needs low-level serial features. USART3_IRQHandler() is being called repeatedly (and hence serial::serial_irq_handler() too. /** …
fadedbee
  • 42,671
  • 44
  • 178
  • 308
0
votes
0 answers

Interrupt Service Routines and IRQs

Hello I am trying to implement an operating system for x86. In protected mode it is said that there are a total of 256 interrupt service routines that can be defined in interrupt descriptor table IDT. I cannot understand why there are so many…
WhiteFlowers
  • 43
  • 11
0
votes
1 answer

Why is there no wait_event_..._irqsave() function or macro in the Linux kernel?

In the Linux kernel the function wait_event_lock_irq(wq_head, condition, lock) is provided in include/linux/wait.h that expects lock to be held and unlocks/locks it using spin_lock_irq() and spin_unlock_irq(). Is there a particular reason that…
apriori
  • 1,260
  • 11
  • 29
0
votes
1 answer

What information does flag argument in spin_lock_irqsave save?

I know irqsave version of spinlock notes down the interrupt state while taking lock and restore interrupt state while releasing the lock. My doubt is, say if there are 10 interrupt vectors in total and 2 of them are in disabled state (assume a…
rajeshsam
  • 169
  • 1
  • 6
0
votes
2 answers

What (and why) is the most safe way to use a internal hardware watchdog in a scheduled bare-metal embedded app?

I've already used internal hardware watchdogs in several OS-less embedded applications (with static schedulers). What I do is: I look for the slowest periodic and lowest priority task I set the watchdog timeout to something more than the period of…
Guillaume D
  • 2,202
  • 2
  • 10
  • 37
0
votes
0 answers

Requesting irq for a multi channel device

Assume a pci-driver for the linux-kernel. This device can have multiple channels that can be "up'ed" or "down'ed" individually. Each "up" calls the function .ndo_open and each "down" calls .ndo_stop. This device needs only one interrupt-line which…
xMutzelx
  • 566
  • 8
  • 22
0
votes
0 answers

Eventbased UART input on Raspberry with Linux

I want to port my project to new technological stack. Current stack: C# UWP Windows IoT Raspberry Pi 3 New stack C++ WiringPi Linux (may be Raspbean) Raspberry Pi 3 One of the reasons I want to do it: the loop I need to use for listen UART: …
Olga Pshenichnikova
  • 1,509
  • 4
  • 22
  • 47
0
votes
2 answers

QEMU - Legacy interrupt stuck raised

I'm trying to develop a PCI device and I need to implement a legacy interrupt (not MSI or MSIX). I followed the example of edu.c but the IRQ is still raised when I load my driver. I tried to look at other devices but no luck. Here is my code…
Lerenn
  • 597
  • 1
  • 5
  • 13
0
votes
0 answers

Tracking down Source of interrupts

I've got Xeon-D based platform running CentOS 7.3 ( Linux kernel 3.10.0-862) and I've noticed a lot of unhandled interrupts coming to a particular IRQ (IRQ#18). The IRQ line seems to be shared by USB host controller and an SMBus driver, however the…
Rohit
  • 106
  • 2
  • 15
0
votes
2 answers

FreeRtos calling vTaskDelete from IRQ

I spent some time but I can't find any info if it's allowed to call vTaskDelete from IRQ handler? I know some methods have specialized version for usage in IRQ routines however I can't find anything related to vTaskDelete. Currently it works but I…
The Tosters
  • 417
  • 3
  • 15