Цитата(Golikov A. @ Oct 13 2015, 14:39)

это вы не соглашались что через регистры было бы быстрее

?
Ну так это я раз делаю, а в регистры писать постоянно надо

Ну конечно, я было подумал, что все соберется)
Я же правильно понимаю, что вот это
Код
#define IRQ_HANDLERS \
[NVIC_NVIC_WWDG_IRQ] = nvic_wwdg_isr, \
[NVIC_PVD_IRQ] = pvd_isr, \
[NVIC_TAMP_STAMP_IRQ] = tamp_stamp_isr, \
инициализация массива с явным указанием индексов?
Не могу найти определения этих индексов.
По идее, где-то должен быть файл примерно такого содержания:
Код
#define NVIC_NVIC_WWDG_IRQ 0
#define NVIC_PVD_IRQ 1
Но я его не вижу. Опять генерация скриптом? Так я даже в скриптах подобного текста не вижу.
--
upd: нагуглил файл, зовется
nvic_f4.hНо в репе его опять нет.
Не, ну после таких либ я уже не так плохо отношусь к желанию писать в регистры

Еще вопрос:
Код
#pragma weak dma2d_isr = blocking_handler
где dma2d_isr потом используется в качестве адреса для заполнения таблицы векторов, а blocking_handler - void функция - это спецификация си или опять какой то прибамбас GCC? Ибо IAR ругается на неопределенный dma2d_isr, а я бы сделал так:
Код
__weak dma2d_isr(void) { blocking_handler();};
хотя, конечно, этот вариант красивее, но не компилится