Например TDA7294

Форум РадиоКот • Просмотр темы - Новости об прерываниях
Форум РадиоКот
Здесь можно немножко помяукать :)





Текущее время: Вт апр 23, 2024 11:56:47

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 13 ] 
Автор Сообщение
Не в сети
 Заголовок сообщения: Новости об прерываниях
СообщениеДобавлено: Чт май 04, 2017 08:51:15 
Друг Кота
Аватар пользователя

Карма: 62
Рейтинг сообщений: 840
Зарегистрирован: Вт апр 24, 2007 07:45:40
Сообщений: 5596
Откуда: Minsk
Рейтинг сообщения: 0
Интересная беседа возникла у нас в родственном форуме : http://programmersforum.ru/showthread.php?t=307908. Там Pavia утверждает, что в некоторых МК стек ни к чему, что они могут обрабатывать прерывания вот так :
Цитата:
в некоторых МК есть специальные регистры для обработки прерываний что-бы каждый раз не сохранять их в стеке.
. То ли я не в курсе новых веяний в МК, то ли чел гонит. У меня впечатление - скорее второе.

_________________
Изображение


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Новости об прерываниях
СообщениеДобавлено: Чт май 04, 2017 09:14:43 
Модератор
Аватар пользователя

Карма: 90
Рейтинг сообщений: 1289
Зарегистрирован: Чт мар 18, 2010 23:09:57
Сообщений: 4510
Откуда: Планета Земля
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Jack_A писал(а):
что-бы каждый раз не сохранять их в стеке
А кого "их" ?
Например, в "новоиспечённых" PIC'ах, рабочие регистры, типа аккума, статуса и т.д.. сохраняются автоматом и восстанавливаются по выходу из прерывания.
А что за
Jack_A писал(а):
специальные регистры для обработки прерываний
тут немного не понятно.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Новости об прерываниях
СообщениеДобавлено: Чт май 04, 2017 09:36:30 
Друг Кота
Аватар пользователя

Карма: 62
Рейтинг сообщений: 840
Зарегистрирован: Вт апр 24, 2007 07:45:40
Сообщений: 5596
Откуда: Minsk
Рейтинг сообщения: 0
Так и мне непонятно ! Думаю, самому автору ответа Pavia - тоже :(
Варианты могут быть разные. Например, в старых ST62ХХ вообще из программы стек недоступен, он аппаратный: нет программно-доступного указателя стека, но тем не менее туда по прерыванию укладывается PC и PSW, при возврате - извлекается. Иного способа обработки прерываний моя фантазия вообразить не может.

_________________
Изображение


Вернуться наверх
 
PCBWay - всего $5 за 10 печатных плат, первый заказ для новых клиентов БЕСПЛАТЕН

Сборка печатных плат от $30 + БЕСПЛАТНАЯ доставка по всему миру + трафарет

Онлайн просмотровщик Gerber-файлов от PCBWay + Услуги 3D печати
Не в сети
 Заголовок сообщения: Re: Новости об прерываниях
СообщениеДобавлено: Чт май 04, 2017 10:19:24 
Друг Кота
Аватар пользователя

Карма: 32
Рейтинг сообщений: 482
Зарегистрирован: Сб сен 10, 2011 17:46:25
Сообщений: 3832
Рейтинг сообщения: 0
в Холтеках в стэк записывается Program Counter only (HT68F002/HT68F0025/HT68F003)
Цитата:
Stack
This is a special part of the memory which is used to save the contents of the Program Counter
only. The stack is neither part of the data nor part of the program space, and is neither readable nor
writeable. The activated level is indexed by the Stack Pointer, and is neither readable nor writeable.
At a subroutine call or interrupt acknowledge signal, the contents of the Program Counter are pushed
onto the stack. At the end of a subroutine or an interrupt routine, signaled by a return instruction,
RET or RETI, the Program Counter is restored to its previous value from the stack. After a device
reset, the Stack Pointer will point to the top of the stack.


Вернуться наверх
 
Выбираем схему BMS для заряда литий-железофосфатных (LiFePO4) аккумуляторов

Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: Новости об прерываниях
СообщениеДобавлено: Чт май 04, 2017 14:00:03 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 97
Рейтинг сообщений: 2058
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18030
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
То ли я не в курсе новых веяний в МК, то ли чел гонит. У меня впечатление - скорее второе.
самый верный способ разобраться - это попросить его подтвердить свои слова ссылкой на даташит. и сразу все станет ясно.

_________________
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!


Вернуться наверх
 
Новый аккумулятор EVE серии PLM для GSM-трекеров, работающих в жёстких условиях (до -40°С)

Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре. Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: Новости об прерываниях
СообщениеДобавлено: Чт май 04, 2017 15:55:02 
Друг Кота
Аватар пользователя

Карма: 1
Рейтинг сообщений: 157
Зарегистрирован: Пн окт 11, 2010 19:00:08
Сообщений: 3328
Рейтинг сообщения: 0
Может речь не о том чо стек не нужен, а о том что регистры аппаратно сохраняются?
Из описаания контроллера прерываний ARM CortexM.
Спойлер
Цитата:
Если прерывание инициируется УВВ, то КВВП подключит ЦПУ Cortex к обработке
прерывания. После перехода ЦПУ Cortex в режим прерывания, он помещает набор
регистров в стек. Эта операция выполняется с помощью специального микрокода,
что упрощает прикладной код. В процессе записи данных в стек на шине инструкций
осуществляется выборка начального адреса процедуры обработки прерывания.
Благодаря этому, с момента возникновения прерывания до выполнения первой
инструкции его обработки проходит всего лишь 12 циклов.
К числу помещаемых в стек данных относятся регистр статуса программы, счетчик
программы и регистр связи. Благодаря этому, запоминается состояние, в котором
находилось ЦПУ Cortex CPU. Кроме того, также сохраняются регистры R0 - R3. Эти
регистры широко используются в инструкциях для передачи параметров, поэтому,
помещение в стек делает возможным их использование в процедуре обработке
прерывания. Замыкает список помещаемых в стек регистров - R12. Он выступает в роли
рабочего регистра внутри подпрограммы. Например, если в компиляторе активизировать
проверку стека, то будет генерироваться дополнительный код, который при потребности
в регистре ЦПУ будет использовать R12. По завершении обработки прерывания
все действия выполнятся в обратном порядке: с помощью микрокода извлекается
содержимое стека и, параллельно с этим, осуществляется выборка адреса возврата,
таким образом, для возобновления выполнения фоновой программы потребуется 12
циклов.

Если на обработке находится высокоприоритетное прерывание и, при этом, возникает
низкоприоритетное, КВВП Cortex использует метод непрерывной обработки с
исключением внутренних операций над стеком, который гарантирует минимальность
задержки при переходе к обработке следующего прерывания.
Если возникает два прерывания, первым со стандартной задержкой в 12 циклов
обслуживается прерывание с более высоким приоритетом. Однако, по окончании
его обработки, ЦПУ Cortex не возвращается к выполнению фоновой программы и
содержимое стека не извлекается. Вместо этого, осуществляется выборка адреса
процедуры обработки следующего прерывания с учетом приоритета. Таким образом,
задержка перехода к обработке следующего прерывания составит всего лишь 6 циклов.
По завершении обработки последнего прерывания извлекается содержимое стека и
выполняется выборка адреса возврата. Таким образом, через 12 циклов возобновляется
выполнение фоновой программы.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Новости об прерываниях
СообщениеДобавлено: Пт май 05, 2017 07:30:07 
Друг Кота
Аватар пользователя

Карма: 62
Рейтинг сообщений: 840
Зарегистрирован: Вт апр 24, 2007 07:45:40
Сообщений: 5596
Откуда: Minsk
Рейтинг сообщения: 0
самый верный способ разобраться - это попросить его подтвердить свои слова ссылкой на даташит. и сразу все станет ясно.

Я предложил ему указать источник - молчит, как рыба об лёд .

_________________
Изображение


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Новости об прерываниях
СообщениеДобавлено: Пт май 05, 2017 13:17:54 
Друг Кота
Аватар пользователя

Карма: 93
Рейтинг сообщений: 1351
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 14062
Откуда: ДОНЕЦК
Рейтинг сообщения: 0
Скорее всего имелось ввиду специализированная обработка прерываний аналогичная применяемой в PIC18 - сохранение важной информации от прерывания высшего уровня в специальной области ОЗУ...
:roll:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Новости об прерываниях
СообщениеДобавлено: Пт май 05, 2017 20:21:13 
Друг Кота
Аватар пользователя

Карма: 62
Рейтинг сообщений: 840
Зарегистрирован: Вт апр 24, 2007 07:45:40
Сообщений: 5596
Откуда: Minsk
Рейтинг сообщения: 0
Я с ПИКами не знаком совершенно, но по идее, специальная область ОЗУ ничем не отличается от аппаратного, программно недоступного стека упомянутых мной ST62XX.

_________________
Изображение


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Новости об прерываниях
СообщениеДобавлено: Пт май 05, 2017 23:26:35 
Первый раз сказал Мяу!
Аватар пользователя

Зарегистрирован: Чт апр 27, 2017 10:13:50
Сообщений: 34
Рейтинг сообщения: 0
Чел не врет. Например, в ARMv4 в режиме FIQ некоторые регистры продублированы. Поэтому когда происходит прерывание FIQ, процессор может обойтись без сохранения текущего контекста в стеке - он просто переключится с одного банка регистров на другой. Соответственно, если нам не нужно много локальных переменных и достаточно одних только регистров, и не будет вложенных прерываний, то можно обойтись вообще без стека.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Новости об прерываниях
СообщениеДобавлено: Сб май 06, 2017 08:18:08 
Друг Кота
Аватар пользователя

Карма: 62
Рейтинг сообщений: 840
Зарегистрирован: Вт апр 24, 2007 07:45:40
Сообщений: 5596
Откуда: Minsk
Рейтинг сообщения: 0
Да, что-то вроде я наблюдал на Z80. Впрочем, там до прерываний дело не доходило, задача была проста: реинженирить и доработать один венгерский аппарат. Дело было несложным, учитывая наличие исходника, правда, не совпадающего с прошивкой и с комментами на... венгерском языке :) Вот в этом Z80 меня напрягала невозможность подключить конкретный банк, а только переключиться между ними (это как Т-триггер без наличия асинхронных входов R и S) . Первый ( он же и последний ) опыт с Z80 вроде был успешным.
Вот только не помню - PC был там в каждом банке или один для обоих режимов.

_________________
Изображение


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Новости об прерываниях
СообщениеДобавлено: Сб май 06, 2017 08:50:03 
Друг Кота
Аватар пользователя

Карма: 93
Рейтинг сообщений: 1351
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 14062
Откуда: ДОНЕЦК
Рейтинг сообщения: 0
Речь о специализированных регистрах "теневого" хранения расширенной группы критических в отношении прерывания регистров (акумулятор, слово состояния, флаги) при вызове прерывания (или входе в подпрограмму по CALL.....) помимо стандартного хранения адреса возврата в обычном стеке.
Регистры спецхранения (shadow) частенько программно доступны, однако размещены совсем не в области стека, а в отдельной зоне ОЗУ.
(У 18-й эта область программно недоступна, а у "продвинутых среднемладших" находится в конце ОЗУ).
Подобие с Z80/mcs51 в отношении регистровых банков - только в случае с shadow - блоком загрузка и выгрузка содержимого происходит автоматически, а не командами, переключающими банки.
Весьма внимания к себе требует такая штука - ибо обычно по умолчанию закреплена за прерыванием высшего уровня и имеет всего один уровень вложения - надо следить за переполнением и "наложением содержимого" в случае, ежли использовано вручную при помощи CALL..... с внезапно пришедшим прерыванием (содержимое от прерывания затирает инфу для возврата из CALL..... ежли ранее не позаботиться о возможных проблемах).
8)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Новости об прерываниях
СообщениеДобавлено: Сб май 06, 2017 19:50:50 
Друг Кота
Аватар пользователя

Карма: 74
Рейтинг сообщений: 1244
Зарегистрирован: Вс мар 29, 2009 22:09:05
Сообщений: 7517
Рейтинг сообщения: 0
Что могло иметься в виду: Cortex-M0, например, имеет два стека: main stack и process stack (п. 2.1.2 programming manual). Соответственно, имеется два указателя стека. В режиме выполнения основной программы может использоваться main stack или process stack, в режиме обработчика исключения - только main stack.

Кроме того, этим же ядром поддерживается следующая оптимизация: если в процессе выполнения обработчика одного исключения произошло другое (но не вытеснило текущее), то по окончании обработки стек не будет сохраняться/восстанавливаться заново, а сразу произойдет переход к следующему обработчику (tail-chaining, п. 2.3.6).

_________________
Разница между теорией и практикой на практике гораздо больше, чем в теории.


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 13 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 38


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y