Вопросы по теме 'irq'

Как ЦП находит ISR и различает устройства
Сначала я должен поделиться всем, что знаю - а это полный хаос. По теме есть несколько разных вопросов, поэтому не сердитесь :). 1) Чтобы найти ISR, процессору предоставляется номер прерывания. В машинах x86 (286/386 и выше) есть IVT с ISR в нем;...
11587 просмотров
schedule 30.04.2022

Как зарегистрировать функцию в коде драйвера как ее ISR
Следуя обратной связи, которую я получил от моего предыдущего вопроса о разработке ядра Linux , Я написал драйвер (в ядре Linux v2.6.32), сравнив его с существующим драйвером и сильно «заимствовав» его код. Водитель прописан нормально. Init () и...
2380 просмотров
schedule 20.11.2022

Пользовательские протоколы RS485
Я пишу простой многоточечный протокол RS485 для последовательной связи в распределенной системе. Я использую адресуемую модель, в которой подчиненным устройствам дается окно в 20 мс для ответа. Главный uC опрашивает подключенные устройства на...
2126 просмотров
schedule 20.02.2023

Какой самый точный способ измерения прошедшего времени на современном ПК?
Я знаю, что могу использовать IRQ0, то есть системный таймер, но он основан на тактовой частоте 14,31818 МГц, верно? Есть ли что-нибудь более точное? Спасибо. Изменить: кто-нибудь знает, что использует функция Windows QueryPerformanceCounter?
1717 просмотров
schedule 27.04.2022

Как убить пользовательские приложения из обработчика IRQ?
Я работаю над встроенной системой Linux, и мне нужно выключить систему, когда запускается определенный обработчик IRQ. У меня не так много времени (десятки миллисекунд). Я использовал Emergency_restart(), но теперь мне нужно выполнить некоторую...
228 просмотров
schedule 09.04.2022

Параллельная обработка прерываний для общего прерывания в Linux
Что можно или нужно сделать в верхней части ISR обработчик. Я вижу, что прерывания сначала отключаются, поэтому, когда это будет сделано, не пропустим ли мы другие прерывания (в той же строке IRQ), которые могут появиться при обработке текущего...
1915 просмотров

Как узнать, является ли прерывание аппаратным прерыванием или исключением процессора
Я изучал прерывания на x86 и то, как ядро ​​обрабатывает различные прерывания с помощью обработчиков прерываний. Но одна вещь меня смущает. Я знаю, что прерывания могут быть сгенерированы аппаратно, например прерывания диска и таймера, или они...
1420 просмотров
schedule 14.05.2022

Обработчик прерываний срабатывает при вызове free_irq
Моя проблема: обработчик прерываний срабатывает при вызове free_irq. Я заметил в сообщениях ядра, что обработчик вызывается, но поскольку наше устройство не запрашивало прерывание, оно сообщало, что прерывание не получено. Это ожидаемое поведение?...
1262 просмотров
schedule 02.10.2023

как одна линия irq распределяется на физическом оборудовании между несколькими устройствами
Я хочу знать, как одна единственная линия irq распределяется между несколькими устройствами, я имею в виду, как они физически связаны на аппаратном уровне, используют ли они для этого несколько контроллеров APIC или какие другие методы используются.
892 просмотров
schedule 09.03.2023

Безопасно ли вызывать printk внутри spin_lock_irqsave?
Я написал примерно такой код: Это в контексте без прерывания: spin_lock_irqsave(&lock, flags); printk("some message blah...\n"); spin_unlock_irqrestore(&lock, flags); Я запускаю этот код и «выглядит» безопасно, потому что не вижу...
2569 просмотров
schedule 27.07.2023

Не удалось выполнить request_irq для модуля ядра.
Я пытаюсь перенести драйверы со старого ядра на новое на платформе ARM. При переносе одного из драйверов я заметил, что request_irq не работает на новом ядре. На самом деле, у этого драйвера есть несколько жестко закодированных номеров irq, и он...
1545 просмотров

Привязывает ли Linux автоматически IRQ к NUMA-узлам, к которым подключены PCIe-устройства?
Как мы знаем, мы можем сопоставить IRQ некоторых устройств с некоторыми ядрами ЦП с помощью IRQ Affinity в Linux. cat <8-bit-core-mask> /proc/irq/[irq-num]/smp_affinity :...
1009 просмотров
schedule 04.07.2023

STM32F4, странное поведение между обработчиком IRQ и функцией с общими переменными
Я столкнулся со странным поведением в моей программе. Для контекста я программирую микроконтроллер STM32F469. Используемая IDE — SW4STM32 (с версией Eclipse Neon (4.6.3)). Чтобы сразу перейти к делу, вот что у меня есть: void foo(void){...
241 просмотров
schedule 08.08.2022

Arduino игнорирует последовательные прерывания при использовании FastLED
Я пробовал несколько разных методов, найденных в Интернете, однако ни один из них не работает. Этот код работает для случаев 0-2, но когда он переходит в случай 3, который представляет собой цикл радужной погони, нажатие кнопки не прерывает цикл и не...
1522 просмотров
schedule 12.06.2023

RISC-V - Программные прерывания
Я пытаюсь реализовать простой контроллер прерываний для своего ядра RV32I. Я считаю, что понимаю, как следует обрабатывать прерывание в RISC-V, и роль регистров CSR в этом процессе. RISC-V определяет три источника прерываний: внешний, программный и...
797 просмотров
schedule 03.12.2022