-
- Так тут у вас функция вызывается по указателю. Конечно, компилятор не может знать, куда в данный момент указывает указатель. Если функцию вызывать напрямую, то компилятор не будет сохранять неиспользуемые регистры. - Ale3000(02.06.2025 09:09)
- А вот примерно то же самое, но с "__raw" и зарезервированными
регистрами под т.н. "аппаратный стек" :)) Прерывание отрабатывает в разы быстрее: vpv.vpv(1 знак., 02.06.2025 07:54, картинка)
- ХЗ, конешно, но само понятие прерывания подразумевает, что нужно
быстро вычитать куда-то или, наоборот, записать и поднять флаг, что
было такое. И всё. Когда в прерывании надо сохранять кучу
регистров, это чота в консерватории надо менять. - mse homjak(02.06.2025 10:55)
- Когда начинаешь решать реальные задачи, с ужасом осознаёшь, что мир прерываний оказывается черевычайно велик и разнообразен. :-)))) - vpv.vpv(02.06.2025 13:25)
- Если важно выполнить действия по прерыванию, например, выполнить
расчёт параметров реального времени и это приоритетно, то почему бы
не делать это в прерывании? Я даже куски кода из main() выношу в
программные прерывания, чтобы поднять приоритет над фоном. Бывает,
из прерывания периферии, вызываю программное прерывание ниже
приоритетом, чтобы дать возможность для прерываний другой
приоритетной периферии, но, при этом обработать данные до возврата
в main(). - Nikolay_Po(02.06.2025 11:02)
- Йа об то, что если собираетесь чота сервисить в прерывании, то неча плакать по сохранению контента. Я, когда разбираю протокол из УАРТ, тожэ сижу в прерывании. Но тут я первой командой прерывания разрешаю. - mse homjak(02.06.2025 17:27)
- В моем случае, в фоне не выполняется ваще ничего, пустой цикл
for(;;). Все делается исключительно в прерываниях. Но зато можно
писать в сишнике, то что иначе пришлось бы на асме лабать. - Codavr(02.06.2025 11:23)
- Именно так. Поэтому вызовы функции изнутри прерываний - не харам, а
одно из решений. - Nikolay_Po(02.06.2025 11:25)
- Дык. Головой думать надо и делать так чтобы работало наилучшим
образом в данной конкретной задаче, а не устанавливать для себя не
нужных запретов. - Codavr(02.06.2025 11:29)
- Совершенно, на 100% согласен! - vpv.vpv(02.06.2025 13:27)
- Ничоси. Тут один шаг до призыва "систему менять". Астанавитесь! :-) - SciFi(02.06.2025 11:33)
- Я всегда был за идеологию первых хакеров (не взломщиков, а былинных
программистов), это так романтично. Но так-как в институте меня
плотно обучали теории надежности, я с грустью понмаю, что в
применении к Большим Системам это порочная практика. А так-как я
всю дорогу делаю Маленькие, то позволяю себе эти небольшие шалости,
но про надежность помню всегда :) - Codavr(02.06.2025 12:35)
- Анархист-охранитель. Гибрид, выведенный лучшими селекционерами :-) - SciFi(02.06.2025 12:58)
- :))) - Codavr(02.06.2025 12:58)
- Анархист-охранитель. Гибрид, выведенный лучшими селекционерами :-) - SciFi(02.06.2025 12:58)
- Я всегда был за идеологию первых хакеров (не взломщиков, а былинных
программистов), это так романтично. Но так-как в институте меня
плотно обучали теории надежности, я с грустью понмаю, что в
применении к Большим Системам это порочная практика. А так-как я
всю дорогу делаю Маленькие, то позволяю себе эти небольшие шалости,
но про надежность помню всегда :) - Codavr(02.06.2025 12:35)
- Дык. Головой думать надо и делать так чтобы работало наилучшим
образом в данной конкретной задаче, а не устанавливать для себя не
нужных запретов. - Codavr(02.06.2025 11:29)
- Именно так. Поэтому вызовы функции изнутри прерываний - не харам, а
одно из решений. - Nikolay_Po(02.06.2025 11:25)
- "Быстро", "куча" - это пустой звук, если нет цифр. А цифры бывают оч. разные, такшта консерватория ещё поработает... - SciFi(02.06.2025 10:59)
- ХЗ, конешно, но само понятие прерывания подразумевает, что нужно
быстро вычитать куда-то или, наоборот, записать и поднять флаг, что
было такое. И всё. Когда в прерывании надо сохранять кучу
регистров, это чота в консерватории надо менять. - mse homjak(02.06.2025 10:55)