Поздравляем A.L. с днём рождения!
- Появилось странное но неутолимое желание принудить обработчик
прерывания не сохранять и не восстанавливать регистры. С обычными
функциями __task (или как раньше __C_task) решает эту задачу, а вот
вкупе с __interrupt дает ошибку. Предложите как утолить мое желание
средствами IAR AVR. - Codavr(30.05.2025 09:10, AVR, полностью)
- У AVR-GCC была возможность глобально зарезервировать регистр(ы)
проца, тогда компилятор перестает этот регистр использовать и,
соответственно, не сохраняет-восстанавливает его. Может такое
применить? - LightElf(02.06.2025 16:21)
- Зачем? Если нужно уменьшить время в прерывании, то нужно меньше
кода в нём. Ведь сохраняются не все регистры, а только те, которые
используются в прерывании. Ещё такое может понадобиться для
переключения стека в многопоточной системе. Тогда на асме надо
обработчик делать. - Ale3000(30.05.2025 12:30)
- Если в прерывание вставить вызов другой функции, самой простейшей,
то компилятор уже НЕ видит, какие регистры используются, и пихает в стек вобще всё.
Поэтому я уже много лет использую __raw - vpv.vpv(02.06.2025 07:30)
- Вот как это выглядит в листинге. В регисторовой паре R15:R14 лежит
текущий указатель на нужную функцию. Функция "портит"только пару
регистров. Её вызов происходит мгновено (команда MOVW - 1 такт). А
вот преамбулы и послеамбулы прерывания из-за косвенного вызова
длятся невыносимо долго и бестолково. vpv.vpv(1 знак., 02.06.2025 07:42, картинка)
- Так тут у вас функция вызывается по указателю. Конечно, компилятор
не может знать, куда в данный момент указывает указатель. Если
функцию вызывать напрямую, то компилятор не будет сохранять
неиспользуемые регистры. - 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)
- "Быстро", "куча" - это пустой звук, если нет цифр. А цифры бывают
оч. разные, такшта консерватория ещё поработает... - SciFi(02.06.2025 10:59)
- У меня с одного древнего проекта не пошедшего в серию осталась
прорва tiny15. Вот я их периодически расходую на всякую мелочевку.
А у нее стек аппаратный на 3 байта. Вот и чудю. Почти все уже
срасходовал. - Codavr(30.05.2025 12:54)
- Не удивительно, __task и __interrupt не совместимы, ибо требуют от
функции разного поведения: не сохранять и в то же время сохранять
регистры. А если так: ЫЫyкпy(121 знак., 30.05.2025 10:07)
- Делаешь вызов своей функции в ассемблере. Вот кусок кода из моего
старого проекта: il-2(344 знак., 30.05.2025 09:28)
- Вопрос знатокам стандарта Си - насколько корректна такая
конструкция: il-2(129 знак., 29.05.2025 10:45, dao, полностью)
- Подскажите, во FreeRTOS где-то может быть ограничение на количество
задач? В проекте было 2 задачи. Добавил 3 - не пашет. Если
объявление 3 переместить перед 2, то 2 перестает работать, а 3я
начинает. Приоритет одинаковый. В задачах добавил vTaskDelay(1);
Что еще может быть? - vesago(28.05.2025 22:08, dao, полностью)
- ищу DS на NCP81201. или хотя бы понятную схему включения - Vit(05.06.2025 15:57, SCH, полностью)
- Попробовал Github Copilot в Eclipse CDT (бесплатная там только
ChatGPT 4.1). VVB(793 знак., 05.06.2025 10:51, Off, ссылка, ссылка, полностью)
- С подачи уважаемого AKZ. Душеполезное чтиво :) Cкpипaч(2 знак., 04.06.2025 18:08, Cyber, ссылка, ссылка, полностью)
- Взываю к силам коллективного разума - принесли плату с МК
ATMega-20AI со странными симптомами: МК работает на внутреннем
RC-генераторе до момента установки Fuse-битов, потом на выходе MISO
нули, причем SCK и MOSI от программатора просаживаются с 5 до 2
вольт. Питание 5 вольт, кварц 14.7456 Mhz функционирует и
дублируется на выходе CKOUT. - NeedHelp(04.06.2025 18:19,
, AVR, полностью)
- Политота - зло. Возник вопрос: каково быстродействие TL431 в режиме
компратора? И тут же нашёлся ответ. Делюсь: SciFi(48 знак., 04.06.2025 15:53, SCH, ссылка, картинка, полностью)
- Продолжение про ST-Link v2. Заказал на озоне новый, за смешные
272р. Прибыл на странном чипе MH2103C8T6. Поначалу вроде все ок -
обновился, прошился, загрузил прогу в проц. Но потом бац - сюрприз.
Даже при отключенном сеансе отладки, и просто подключенном
программаторе основной проц выдает мусор в GPIO порт, вместо
правильных данных, которые туда пихает DMA. Отмыл старый
программатор спиртом, прошил еще раз новой прошивой. Вроде пока
работает без сбоев. Но задача купить Mty1(92 знак., 01.06.2025 21:45, ARM, картинка, полностью)
- WCH-Link за 116 руб -> il-2(1 знак., 03.06.2025 16:56, ARM, ссылка, полностью)
- Кому-нибудь попадалась документация на чип Mstar MSB2122? Реально
для него написать свою прошивку? - AlexG(04.06.2025 06:04, MCU)
- И вновь RFM69. Есть ли какая софтинка для подбора значений
регистров? Помнится, для RFM22B был экселевский файл, тупо оттуда
копировал и всё сразу взелетало.. а тут своими руками никак не могу
настроить - на пакетик входящий приемник реагирует, но CRC не
совпадает, ФИФО как правило пусто. - POV(03.06.2025 13:39, RFID, полностью)
- смотрю весьма занятный сериал 2017 года про войну во Вьетнаме. Там
в 1965 году на канале CBS один журналист (ну вылитый нынешний
Карлсон Такер) рассказал про реальную там войну. Линдон Джонсон
назвал его агентом Кремля и потребовал его срочно уволить. :-)
Вообще очень познавательный сериал. Я говорил, что не смотрю видео?
Я не не совсем точно выразился. :-) - Лaгyнoв(31.05.2025 21:07, Off, полностью)
- понравился сериал 20 век в войнах - cepиaл(01.06.2025 11:25,
)
- А я начал смотреть Аутсорс. Идея хорошая, артисты тоже. Но сериал -
это как развести в ведре воды бутылку водки и пытаться опьянеть с
этого коктейля. Бросил после двух серий. - Kpoк(31.05.2025 23:31)
- Этот? Solo(1 знак., 31.05.2025 21:30, ссылка)
- Точно - Лaгyнoв(01.06.2025 10:43)
- Познавательный в каком смысле? Это документалка? Там факты и ничего
кроме фактов? Есть такая кинолента "Вся президентская рать",
воспевающая двух храбрых журналистов, которые в бескомпромиссной
борьбе за правду раскрутили Уотергейт. Чуть позже я натыкался на
отзывы, что там не всё так однозначно, это была грязная кампания по
отстранению Никсона. - SciFi(31.05.2025 21:11 - 21:21)
- там голос ведущего, там документальные кадры, и там (главное)
рассказы участников тех событий. Причем участники - из американцев
(солдаты, волонтеры, офицеры), из южновьетнамских военных, из
северовьетнамских военных и тех партизан. Там рассказы и самого
Л.Джонсона, и Р.Макнамары. Я как будто окунулся в детство и чтение
советских газет и тут же - взгляд оттуда. Там много говорят о
отношениях Хо Ши Мина и Ле Зуана в те годы. Нам же про это в
газетах в 60-е (само собой) Лaгyнoв(229 знак., 31.05.2025 21:26)
- геон - ммими(02.06.2025 06:37,
)
- По правилам сначала предъявите удостоверение и представьтесь --
имя, звание, потом уже задавайте вопросы. - Бapбoc(31.05.2025 21:19)
- Развел макет для китайских чипов, CA-IS3105W (DC/DC) и
CA-IS1300B25G (IsoAmp, TI analog) с прицелом мерить ток в сотни
ампер на шунте с развязкой, проверил сегодня, работает. Заявленному
соответствует, если интересно, могу подробнее. На днях в реале
проверим. - Visitor(03.06.2025 19:44, SCH, полностью)
- Порязмять мозги: что означает сей технический символ? bodis(1 знак., 03.06.2025 08:53, Off, картинка, полностью)