-
- ARM DDI 0337E стр. 8-40. Вызывает обработчик соответствующего хардварного вектора. Хардварные вектора уже все размещены в примерах Keil-а. - AlexandrY(11.02.2011 13:59)
- Предполагаю, что число, записанное в STIR, определяет номер активированного прерывания. Например, 18 - это прерывание ADC1 в STM32. Соответствующий обработчик и будет вызван. - SciFi(11.02.2011 13:30)
- Это понятно.Объясню суть вопроса. Например, прерывания таймера: открываем Startup-файл, пишем\ищем вектор\в векторе прерываний хэндлер для таймера. Вставляем timer_handler в timer.c к примеру, заполняем тело обработчика - готово.А как быть с madfox(73 знак., 11.02.2011 13:39, )
- В Startup-фале нужно прочитать то имя, которое написано в соответствующем месте таблицы прерываний. Vallav(267 знак., 11.02.2011 14:37)
- Теперь уже я это осознал на основе полученных ответов. Спасибо! - madfox(11.02.2011 14:49, )
- В примере с прерыванием таймера (например, TIM2 из STM32, номер 28): пишем в STIR число 28. Вызывается timer_handler() в timer.c. То есть обработчик зовут timer_handler(). Можете назвать super_duper_handler(). Как будет вызван? Легко и SciFi(32 знак., 11.02.2011 13:57)
- Спецификация говорит:Запись в регистр STIR приводит к формированию в системе программного прерывания (SGI – Software Generated Interrupt)...INTID – идентификатор формируемого прерывания в диапазоне 0 – 239. Например, значение b000000011 madfox(293 знак., 11.02.2011 14:07, )
- Сочинять не надо, а! "The definitive guide to the ARM Cortex-M3" стр.190 Единственно, что софтварные прерывания не будут такими реактивными как хардварные. - AlexandrY(11.02.2011 14:16)
- Спасибо за ссылку! Разобрался! - madfox(11.02.2011 14:32, )
- Именно "дублирующие". Поэтому надо для этих целей использовать аппаратные прерывания, незанятые в данном приложении. - SciFi(11.02.2011 14:12)
- Хм. А почему их 239? - madfox(11.02.2011 14:14, )
- Не 239, а не более 240. Ровно столько, сколько прерываний сконфигурировано при синтезе ядра. - SciFi(11.02.2011 14:28)
- Хм. А почему их 239? - madfox(11.02.2011 14:14, )
- Сочинять не надо, а! "The definitive guide to the ARM Cortex-M3" стр.190 Единственно, что софтварные прерывания не будут такими реактивными как хардварные. - AlexandrY(11.02.2011 14:16)
- В Keil-е все заглушки сидят в файле STM32F10x.s. Но этот файл разный для для разных семейств. Надо проверять всегда. - AlexandrY(11.02.2011 14:02)
- Спецификация говорит:Запись в регистр STIR приводит к формированию в системе программного прерывания (SGI – Software Generated Interrupt)...INTID – идентификатор формируемого прерывания в диапазоне 0 – 239. Например, значение b000000011 madfox(293 знак., 11.02.2011 14:07, )
- В Startup-фале нужно прочитать то имя, которое написано в соответствующем месте таблицы прерываний. Vallav(267 знак., 11.02.2011 14:37)
- Это понятно.Объясню суть вопроса. Например, прерывания таймера: открываем Startup-файл, пишем\ищем вектор\в векторе прерываний хэндлер для таймера. Вставляем timer_handler в timer.c к примеру, заполняем тело обработчика - готово.А как быть с madfox(73 знак., 11.02.2011 13:39, )