реклама на сайте
подробности

 
 
4 страниц V  « < 2 3 4  
Reply to this topicStart new topic
> Перенос проекта с AVR на ARM7. Информация к размышлению., Результаты тестов для интересующихся.
blackfin
сообщение Jun 29 2009, 03:02
Сообщение #46


Гуру
******

Группа: Свой
Сообщений: 3 106
Регистрация: 18-04-05
Пользователь №: 4 261



Цитата(zltigo @ Jun 29 2009, 01:43) *
Приходилось с радостью портировать даже с 8bit ASM на АРМ 'С' за считаные дни

Цитата(ArtemKAD @ Jun 29 2009, 04:47) *
Что-то меня терзают смутные сомнения в практической реализации подобного, если длина кода "не 40 байт", "считанные дни" не измеряются неделями или результат "авось будет работать". Разве-что речь о простых или типовых проектах...

А если код на ASM'е с самого начала сопровождался подробными комментариями в стиле Си?
Тогда нужно всего лишь закомментировать ASM и убрать лишние комменты в коде на Си..
wink.gif
Go to the top of the page
 
+Quote Post
zltigo
сообщение Jun 29 2009, 05:19
Сообщение #47


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(ArtemKAD @ Jun 29 2009, 03:47) *
Что-то меня терзают смутные сомнения в практической реализации подобного, если длина кода "не 40 байт", "считанные дни" не измеряются неделями или результат "авось будет работать".

Сишные вещи размером в десяток-другой К бинарника протируются действительно за пару дней (если не за день). То, что я поминал не портировалось а писалось заново на 'C' ровно неделю. Потом, внимание! было отпортировано за одну субботу обратно на восьмибитник, причем по размеру стало почти вдвое меньше, по производительности никаких напрягов и при полном отладочном логе. Глюки оригинала проявляющиеся в реальных условиях ушли. Секрет очень прост - первоначальное писалось человеком на ASM и много лет вот так вот по "40 байт" дописывалось-дописывалось.. латалось-латалось. Дописались и долатались в конце концов sad.gif
Цитата
Разве-что речь о простых или типовых проектах...

Не контроллер светодиода smile.gif, сразу скажу. Чисто конкретно - LAPV5.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
SergeiCh
сообщение Jun 29 2009, 10:06
Сообщение #48


Частый гость
**

Группа: Участник
Сообщений: 99
Регистрация: 22-03-07
Из: Novosibirsk
Пользователь №: 26 415



Цитата(SasaVitebsk @ Jun 26 2009, 04:47) *
Библиотеки были написаны в 2 уровнях.

В AT91Lib почти всё так сделано. Тот же At45 на Spid. По-моему, как минимум для ознакомления полезная библиотека.

Цитата(SasaVitebsk @ Jun 26 2009, 04:47) *
Зато переключение RS485 интерфейса получается просто "раком".

У AT91SAM RS485 аппаратно поддерживается. Это всего лишь информация, LPC мне тоже по-своему нравятся. smile.gif
Go to the top of the page
 
+Quote Post
SasaVitebsk
сообщение Jun 29 2009, 14:35
Сообщение #49


Гуру
******

Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521



Цитата(ArtemKAD @ Jun 29 2009, 03:47) *
Больше 2-х месяцев?!


1) Как известно сроки определяются поставленной задачей. smile.gif Параллельно выполнялось куча другой работы по сопровождению других проектов.
2) 2 месяца, это не много для нас. С другой стороны это время, потраченное, в основном, на изучение переферии. Если бы я работал с этим камнем, то это время было бы значительно короче. Сколько - не знаю. Не хочу гадать. Я привёл реальные данные.

Цитата(ArtemKAD @ Jun 29 2009, 03:47) *
Кроме того, не стоит забывать, что "менее 2-ух месяцев" это только перенос. А 20-40% кода все равно придется писать. И через 2 месяца вы все еще в начале пути.
Кроме того, нужна новая плата (новая схема, новые комплектующие, новая разводка). И кто это все делает?

Несколько не понимаю о чём вы?
Это вынужденная мера. Не потому, что я решил просто от нечего делать поменять рабочий камень. Я вынужден был перейти на новый камень, в связи с тем, что старый не справлялся с некоторыми задачами. Причина - недостаток свободной памяти. Чистый остаток 5800. После перехода, я оценив производительность решил расширить возможности новой платформы. При совместимости снизу вверх. Новая платформа будет обладать рядом функций недоступных в старой.
Так причём здесь на каком отрезке пути я нахожусь??? Я Вам так скажу, - я всегда нахожусь в сааамом начале пути. Всегда! Всегда хочется сделать лучше чем было раньше. А у Вас не так?



Цитата(GetSmart @ Jun 29 2009, 08:00) *
За помощь в моей работе хотелось бы поблагодарить ... того, того, и того-то smile.gif

biggrin.gif
За помощь в работе хотелось бы поблагодарить в первую очередь Vesago. biggrin.gif
Я его задолбал вопросами по телефону и нету. Надо признаться он стойко всё выдержал.

Ну и всех тех, кто отвечал на мои вопросы прямо и косвенно. smile.gif Короче весь форум.
Ваши разъяснения на мои вопросы я аккуратненько скопировал в файлик и сохранил. Хотя в данном проекте не воспользовался. Я всё сделал FIQ/IRQ. Вложенность не понадобилась. Ваша помощь по устранению хомутов в IRQ тоже была очень важна.
Go to the top of the page
 
+Quote Post
singlskv
сообщение Jun 30 2009, 01:21
Сообщение #50


дятел
*****

Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065



Цитата(SasaVitebsk @ Jun 29 2009, 18:35) *
Я всё сделал FIQ/IRQ. Вложенность не понадобилась.

Интересно, а обработчики в итоге были реализованны в стартапе
или просто воспользовались возможностями VIC ?
Просто интересно как у Вас реализованы обработчики IRQ/FIQ при
полной ненужности обработчиков вложенных прерываний.
Go to the top of the page
 
+Quote Post
zltigo
сообщение Jun 30 2009, 05:14
Сообщение #51


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(singlskv @ Jun 30 2009, 04:21) *
Интересно, а обработчики в итоге были реализованны в стартапе
или просто воспользовались возможностями VIC ?

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

Лично у меня, "как обычно", при этой самой ненужности. Применяемый многими по принципу "а чего тут думать, трясти надо" bigloop рвущийся многочисленными прерываниями хорош для ограниченного числа решений. Как только научился продумывать подход к системе, так сразу вложенные и перестали быть нужными, причем у меня это не во времена ARM сие случилось, а во времена 186/386, которые аппаратрых ограничений на вложенность не имели - вкладывайся пока стек не кончится. Только нужно это в редчайших случаях. На ARM платформе эти и так редчайшие случаи покрывает еще на 90% наличие FIQ. В сухом остатке остается вообще стремящаяся к нулю необходимость.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
Dog Pawlowa
сообщение Jun 30 2009, 07:28
Сообщение #52


Гуру
******

Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823



Цитата(zltigo @ Jun 30 2009, 08:14) *
Как только научился продумывать подход к системе, так сразу вложенные и перестали быть нужными, причем у меня это не во времена ARM сие случилось, а во времена 186/386, которые аппаратрых ограничений на вложенность не имели - вкладывайся пока стек не кончится.

Ну не знаю ... На embedded x86 использовал вложенность на все присутствующие 8 уровней.
Сейчас из текущих проектов на MSP430 вложенность используется для реализации программного интерфейса. Пожалуй, FIQ бы заткнул эту проблему.
Может вложенность от приложения зависит, а? wink.gif
А какая Ваша альтернатива bigloop с прерываниями? shortloop, генерация событий и их обработка? Дык обработчики событий разноприоритетные и разные по длительности. Это нужно резерв производительности иметь, а при приоритетной вложенности система просчитывается достаточно просто.


--------------------
Уходя, оставьте свет...
Go to the top of the page
 
+Quote Post
Сибирь
сообщение Jun 30 2009, 07:56
Сообщение #53


Участник
*

Группа: Участник
Сообщений: 34
Регистрация: 8-07-08
Пользователь №: 38 815



Цитата(SasaVitebsk @ Jun 26 2009, 00:47) *
Пытался кратко. Если что не понятно или какие вопросы - спрашивайте.

во сколько раз отличается себестоимость на арм и авр?
Go to the top of the page
 
+Quote Post
SergeiCh
сообщение Jun 30 2009, 13:43
Сообщение #54


Частый гость
**

Группа: Участник
Сообщений: 99
Регистрация: 22-03-07
Из: Novosibirsk
Пользователь №: 26 415



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

Видимо, планировщик с оч. короткими обработчиками прерываний - взял данные, засунул в очередь или семафор выставил для процесса, который их обрабатывает. Какая еще может быть альтернатива big/super loop??
Go to the top of the page
 
+Quote Post
singlskv
сообщение Jun 30 2009, 19:15
Сообщение #55


дятел
*****

Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065



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

Дык, я собственно так и считаю, FIQ перекрывает практически всю необходимость в вложенных IRQ,
мне просто было интересно повелся ли автор(на новой платформе) на "стандартные" для многих компиляторов
примеры стартапов с возможностью вложенных прерываний или сделал все прерывания используя
возможности векторного VIC.
Go to the top of the page
 
+Quote Post
SasaVitebsk
сообщение Jun 30 2009, 20:21
Сообщение #56


Гуру
******

Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521



Цитата(Сибирь @ 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 не предусмотрены совтовые прерывания. И это существенный минус. Я пользовался незадействованым таймером.
Go to the top of the page
 
+Quote Post
zltigo
сообщение Jun 30 2009, 20:35
Сообщение #57


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



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

Да, так.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post

4 страниц V  « < 2 3 4
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 12:01
Рейтинг@Mail.ru


Страница сгенерированна за 0.01506 секунд с 7
ELECTRONIX ©2004-2016