Вход
Наше всё
Теги
codebook
无线电组件
Поиск
Опросы
Закон
Среда
27 ноября
О смысле всего сущего
0xFF
Средства и методы разработки
Мобильная и беспроводная связь
Блошиный рынок
Объявления
Микроконтроллеры
PLD, FPGA, DSP
AVR
PIC
ARM, RISC-V
Технологии
Кибернетика, автоматика, протоколы
Схемы, платы, компоненты
ARM, RISC-V контроллеры
1224573
Топик полностью
VVB
(18.07.2022 19:14, просмотров: 271)
ответил
AlexBi
на
Случайно заметил, что аппаратные прерывания у АРМа вызываются с некоторой задержкой. Т.е. у меня есть таймер, тактируется от основного генератора, у него флаг переполнения, по которому вызывается прерывание и этот же флаг опрашивается в цикле. Я полагал что в таком случае в цикле я увидеть этот флаг не смогу, т.к. прерывание его перехватит раньше, а оказалось что нет, т.е. между его появлением и прекращением выполнения основного цикла есть некоторое время.
Очевидно же, что латентность связана с завершением текущей инструкции (а оные типа STMDB LR,{R0-LR}^ занимают много тактов) и перезагрузкой конвейера.
А в это время аппаратные блоки типа таймера продолжают работать...
Ответить
Cortex еще и самостоятельно в стек заталкивает регистры. По памяти R0..R3.
-
BlackMorda
(18.07.2022 22:54
)
Приплюсуй ещё инструкции сохранения контекста VFP, некоторые кортексы умеют по указке пользователя часть FP регистров сохранять при прерывании.
-
VVB
(19.07.2022 07:14
)