Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Перенос проекта с AVR на ARM7. Информация к размышлению.
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
Страницы: 1, 2
zltigo
Цитата(singlskv @ Jun 30 2009, 04:21) *
Интересно, а обработчики в итоге были реализованны в стартапе
или просто воспользовались возможностями VIC ?

Странный вопрос. Сводится к тому, было прерывание IRQ единстаенным или нет, и испльзовался-ли jump на обработчик FIQ или этот обработчик сразу с 1E адреса и писался. Это имеет какое-то принципиальное значение?
Цитата
Просто интересно как у Вас реализованы обработчики IRQ/FIQ при
полной ненужности обработчиков вложенных прерываний.

Лично у меня, "как обычно", при этой самой ненужности. Применяемый многими по принципу "а чего тут думать, трясти надо" bigloop рвущийся многочисленными прерываниями хорош для ограниченного числа решений. Как только научился продумывать подход к системе, так сразу вложенные и перестали быть нужными, причем у меня это не во времена ARM сие случилось, а во времена 186/386, которые аппаратрых ограничений на вложенность не имели - вкладывайся пока стек не кончится. Только нужно это в редчайших случаях. На ARM платформе эти и так редчайшие случаи покрывает еще на 90% наличие FIQ. В сухом остатке остается вообще стремящаяся к нулю необходимость.
Dog Pawlowa
Цитата(zltigo @ Jun 30 2009, 08:14) *
Как только научился продумывать подход к системе, так сразу вложенные и перестали быть нужными, причем у меня это не во времена ARM сие случилось, а во времена 186/386, которые аппаратрых ограничений на вложенность не имели - вкладывайся пока стек не кончится.

Ну не знаю ... На embedded x86 использовал вложенность на все присутствующие 8 уровней.
Сейчас из текущих проектов на MSP430 вложенность используется для реализации программного интерфейса. Пожалуй, FIQ бы заткнул эту проблему.
Может вложенность от приложения зависит, а? wink.gif
А какая Ваша альтернатива bigloop с прерываниями? shortloop, генерация событий и их обработка? Дык обработчики событий разноприоритетные и разные по длительности. Это нужно резерв производительности иметь, а при приоритетной вложенности система просчитывается достаточно просто.
Сибирь
Цитата(SasaVitebsk @ Jun 26 2009, 00:47) *
Пытался кратко. Если что не понятно или какие вопросы - спрашивайте.

во сколько раз отличается себестоимость на арм и авр?
SergeiCh
Цитата(Dog Pawlowa @ Jun 30 2009, 14:28) *
... альтернатива bigloop с прерываниями?

Видимо, планировщик с оч. короткими обработчиками прерываний - взял данные, засунул в очередь или семафор выставил для процесса, который их обрабатывает. Какая еще может быть альтернатива big/super loop??
singlskv
Цитата(zltigo @ Jun 30 2009, 09:14) *
Как только научился продумывать подход к системе, так сразу вложенные и перестали быть нужными, причем у меня это не во времена ARM сие случилось, а во времена 186/386, которые аппаратрых ограничений на вложенность не имели - вкладывайся пока стек не кончится. Только нужно это в редчайших случаях. На ARM платформе эти и так редчайшие случаи покрывает еще на 90% наличие FIQ. В сухом остатке остается вообще стремящаяся к нулю необходимость.

Дык, я собственно так и считаю, FIQ перекрывает практически всю необходимость в вложенных IRQ,
мне просто было интересно повелся ли автор(на новой платформе) на "стандартные" для многих компиляторов
примеры стартапов с возможностью вложенных прерываний или сделал все прерывания используя
возможности векторного VIC.
SasaVitebsk
Цитата(Сибирь @ Jun 30 2009, 10:56) *
во сколько раз отличается себестоимость на арм и авр?

Первоначально я не знал чего ожидать от платформы. Соответственно сделал несколько аппаратных довесков. В результате плата на LPC2106 выглядела значительно навороченней чем таже на м640. Были существенные проблемы с разводкой. В настоящий момент разводится новая плата, с внесёнными изменениями. По загруженности она будет сопоставима с платой на AVR. Плюс по совету Vesago перешёл с 24с512 на 45db021.
Результирующая цена платы будет приблизительно на 1$ меньше. Уже закупили контроллеры LPC2106/00.151 по цене 6.5$. Меги брали по 7.5$. Также выиграем на 45db приблизительно 1$. Потеряем центов 10 на 595 регистре.

Для данного изделия себестоимость комплектующих контроллера это пара % от себестоимости изделия. Так что это было не определяющим.

Цитата(singlskv @ Jun 30 2009, 22:15) *
Дык, я собственно так и считаю, FIQ перекрывает практически всю необходимость в вложенных IRQ,
мне просто было интересно повелся ли автор(на новой платформе) на "стандартные" для многих компиляторов
примеры стартапов с возможностью вложенных прерываний или сделал все прерывания используя
возможности векторного VIC.

Честно говоря не понял вопроса.
Стартап я переписал аналогично книги Мартина. Соответственно у меня векторные прерывания IRQ на основе VIC. Одно совтовое. Очень понравилась реализация и совтового и прочих прерываний. FIQ я сделал прямым переходом, так как источник его у меня один.

На AVR у меня было сделано одно прерывание быстрое - и одно (совтовое) допускало вложенные прерывания. В связи с этим у меня теоретически работа UART на скорости выше 57600 была не возможна. На LPC у меня UART прерывание обрабатывается при заполнении буфера на 8 символов. То есть я смогу работать на любой доступной скорости. В связи с этим, я вложенность IRQ не делал. FIQ из IRQ вызывается автоматически и без проблем. Всё это легко управляется ч/з ф-ции компилятора. Короче к этому нет ни малейших претензий. Но, насколько я понял, вложенность также поддерживается компилятором и особых проблем не вызывает. Подробности этого механизма я почерпнул у GetSmart который этим широко пользуется.

У AVR не предусмотрены совтовые прерывания. И это существенный минус. Я пользовался незадействованым таймером.
zltigo
Цитата(SergeiCh @ Jun 30 2009, 16:43) *
Видимо, планировщик с оч. короткими обработчиками прерываний - взял данные, засунул в очередь или семафор выставил для процесса, который их обрабатывает.

Да, так.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.