Вот уж настырный "профлудист-dosikus", снова прицепился.
Как в прошлый раз, когда доказывать начали "хайль АРМ!" и "STM юбер аллес!" с более чем в три раза превышающим исходный материал флудом.
Это вместо своих вариантов разбора прикладных возможностей указанных МК с соответствующим приложением.
Так вот и сейчас - всего-то только один из мелконачальных вариантов "ответных действий" весьма бурную реакцию вызвал - я здесь ассемблер разбираю, а не СИ (при всем уважении к знатокам данного языка).
Есть замечания/наработки по материалам изложенным в теме - милости просим, а флуд плодить...
Я ж в Ваш срач на
viewtopic.php?f=62&t=35768 не вмешиваюсь.
Да и ассемблер даже для STM8 вычитывать не заставляю - просьба не флудить для "выпуска пара" после очередного тамошнего (
viewtopic.php?f=62&t=35768) поцарапца.

Теперь к конкретным вопросам по мере ознакомления с документацией на систему команд.
Покопался еще немного в системе команд и немножко в части аппаратной поддержки CPU.
Вылез на повестку дня вопросец – как будет исполняться загрузка стека (и будет ли таковая вообще) если внешнее прерывание будет обслуживаться после команд HALT/WFI при условии, что CFG_GCR AL=1?
Согласно того же PM0044 стр.15 такой статус CFG_GCR AL=1 дает указание для IRET не возвращать содержимое стека при выходе из прерывания при предваряющей прерыванию команде WFI/HALT.
НО…
Тут весьма странная «ловушка» имеет место:
Если, как предполагать по документации, внешнее прерывание всегда обеспечивает сохранность контента (Y, X, A, CC) в стек, то при возврате мы можем иметь проблемы с содержимым стека.
Далее о какой части контента стека идет речь – ведь адрес возврата будет в любом случае отработан? Если о кусочке из Y, X, A, CC то там должна быть коррекция содержимого указателя стека как минимум… Плюс лишние операции по загрузке стека на входе в прерывание, от которых данная фишка собственно и должна избавлять по замыслам изготовителя...
Можно лишь предположить, что в вышеуказанной ситуации прерывание в любом случае выполнит начальную загрузку стека по общим правилам, а вот IRET должна скорректировать указатель стека на адрес возврата и выскочить на нужное место без восстановления Y, X, A, CC. При том, что машина должна знать что такое действие для IRET выполняется только в случае с предшествующим прерыванию WFI/HALT и не касается нормального режима работы. Однако это только моё предположение…
В описании команд WFI/HALT о такой ситуации информации не имеется. В описании системы прерываний также нишыша не нашел…
Второй вопросец – о каких линиях прерывания идет речь в командах
JRIH и JRIL – статус состояния «какой-то» линии, но какой конкретно?
