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

Как ЦП находит 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

Почему процедура прерывания RB запускается дважды?
У меня есть код ниже с небольшой ошибкой, которую я не знаю, как исправить. По сути, происходит то, что мой высокий ISR запускается дважды после установки флага. Он работает только дважды и является последовательным. Подпрограмма должна запускаться...
1227 просмотров
schedule 03.05.2023

Почему процедура обслуживания прерывания драйвера устройства Windows (ISR) является прерываемой?
Я новичок в написании драйвера устройства Windows. Я понимаю, что на аппаратном уровне, когда процессор x86 прерывается (когда линия INTR процессора запускается устройством), процессор очищает бит флага прерывания регистра EFLAGS, чтобы отключить...
542 просмотров
schedule 05.05.2022

Выделяет ли каждая функция и ISR свой собственный размер стека?
Я бы предположил, что этот вопрос зависит от операционной системы или платформы. Это произошло, когда я писал код на C++ в Windows, используя аудио библиотеки портов. В документации указано не писать слишком много кода в моей функции обратного...
680 просмотров
schedule 08.10.2022

Зачем нужен цикл while в main для вызова ISR в arduino UNO?
Я пишу код C, который загружается в arduino uno. Это было простое упражнение по изучению того, как вызывать ISR на C. Вот код: #include<stdio.h> #include<stdlib.h> #include<avr/interrupt.h> #include<avr/io.h> int...
240 просмотров
schedule 03.04.2024

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

Смоделируйте прерывание аппаратного таймера в C
Я хочу лучше понять RTOS и поэтому начал внедрять планировщик. Я хочу протестировать свой код, но, к сожалению, сейчас у меня нет HW. Как легко представить выполнение ISR, соответствующего таймеру в C? EDIT: Благодаря ответу Sneftel я смог...
1341 просмотров
schedule 29.04.2023

Arduino — гироскопический датчик — ISR — TimeStamp
В настоящее время я работаю над воссозданием контроллера квадрокоптера. Я работаю над получением данных от моего гироскопа, и для этого я использую ISR с прерыванием. Моя проблема в том, что когда я вызываю свою функцию "gyro.getX" в основной...
194 просмотров
schedule 14.11.2022

Как указать вектор прерывания на основе параметра?
Я работаю с Arduino Mega 2560 и имею приложение, которое требует использования одного из трех разных таймеров на основе параметра, переданного вызывающим абонентом. Мне нужно иметь возможность сделать что-то вроде этого: ISR(TIMERX_COMPA_vect){...
170 просмотров
schedule 27.01.2023

ESP8266 Timer1 конфликтует с библиотекой Neopixels WS2812
Я хочу добавить Timer1 ISR, чтобы он срабатывал каждые 0,25 с и делал легкое движение с помощью полосового светодиода WS2812 240. На Arduino Nano все работало хорошо, потому что у него есть cli(); TCCR1A = 0; // pas de PWM ou OCR...
726 просмотров
schedule 01.07.2022

Использование reti() в конце ISR
у меня проблема, что этот код не работает .. ISR работает .. я проверил его мигание в другом коде .. но чтобы поместить x++ в ISR и прочитать X в функции main(), он никогда не мигает. .. Я не знаком с asm, я думал, что это оптимизация...
1172 просмотров
schedule 08.09.2022

hw_timer_t, timerAttachInterrupt, portENTER_CRITICAL и т. д. не определены для ESP8266
У меня есть плата разработки ESP8266 NodeMCU 12E. Я пытаюсь реализовать ISR, использующий аппаратный таймер, как описано в этот блог здесь . Сообщение в блоге изначально предназначалось для ESP32, и в нем представлен окончательный демонстрационный...
1755 просмотров
schedule 14.01.2023

Каковы недостатки (если таковые имеются) использования вызовов FromISR FreeRTOS в контекстах, отличных от ISR?
Чтобы сделать функцию, которую я пишу, пригодной для использования как внутри, так и вне ISR, безопасно ли просто использовать безопасную для ISR версию вызовов API FreeRTOS? // NOT ISR-safe uint32_t messages_waiting(void) { return...
355 просмотров
schedule 17.11.2023

Есть ли что-то неправильное в том, чтобы передать это в качестве аргумента для регистрации ISR?
Я пишу прошивку для esp32 на C++, и мне показалось замечательным передать ссылку на объект в качестве параметра при регистрации ISR, потому что я могу просто делегировать работу из ISR конкретному объекту (ресурсу в данном случае), управление...
89 просмотров
schedule 31.07.2022