|
|
  |
AVR - любительский конроллер?, Хотелось бы услышать мотивированные высказывания об обратном |
|
|
|
Dec 27 2005, 14:08
|

Гуру
     
Группа: Свой
Сообщений: 4 363
Регистрация: 13-05-05
Из: Москва
Пользователь №: 4 987

|
Цитата(defunct @ Dec 27 2005, 16:00)  Зачем так коверкать русский язык? "Глаза режет". Поддерживаю. К уважаемым гуру. Имейте хотя бы уважение к автору темы. Или сливайте ваш "русиш" на почтовые ящики друг другу, пощадите Великий и Могучий, а также наши глаза. По теме. Сам факт столь бурного обсуждения достоинств и недостатков АВР микроконтроллеров вышеупомянутыми гуру есть ответ на поставленный вопрос: если эти МК активно применяются в работе даже столь заслуженными людьми, то, следовательно, назвав их "любительскими", можно "профессионально" получить по шапке со всех сторон сразу (после чего дискуссия, несомненно, будет продолжена).
--------------------
Самонадеянность слепа. Сомнения - спутник разума. (с)
|
|
|
|
|
Dec 27 2005, 14:43
|

Шаман
     
Группа: Модераторы
Сообщений: 3 064
Регистрация: 30-06-04
Из: Киев, Украина
Пользователь №: 221

|
Цитата(defunct @ Dec 27 2005, 15:00)  Зачем так коверкать русский язык? "Глаза режет". А вот я сейчас всем непослушным деткам подарочек под Новый Год устрою  в виде предупреждений  , а там, глядишь, и говорить научатся. А что касается темы разговора. Кто-нибудь когда-нибудь слышал, чтобы фирма позиционировала свой продукт как любительский? Кто-нибудь видел любительский дивайс industrial и automotive исполнения? Теперь о сроке жизни изделия. Забудьте, уважаемые господа (кроме тех, у кого есть корпоративный пожизненный заказчик), о таких сроках как 10 - 20 - 30 лет. Сейтас реалии таковы, что если дивайс не обновляет элементной базы (и всего прочего) за 2 - 3 года, то конкуренты обходят и оглянуться не успеешь. Что касается сложности этого мероприятия, то это уж кто как работу ставит. Мы, например, уже на четвёртую платформу переходим (51-430-AVR-ARM) - и ничего, никаких истерик в течение нескольких лет - в худшим случае, пару месяцев на переход. Хотя и сертификацию прохотим и аттестацию и любую другую ...ацию и изделия идут десятками тысяч. Всецело поддерживаю мысль, что отсутствие дивайса на рынке это просчёт не разработчика, а снабженца. Т. к. по долгосрочным программам поставки работают практически ВСЕ фирмы и милионные партии товара на складе замораживать не нужно. Всё!
|
|
|
|
|
Dec 28 2005, 05:54
|

Adept
     
Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343

|
Цитата(m16 @ Dec 27 2005, 15:00)  Цитата(dxp @ Dec 27 2005, 11:32)  А на AVR канкретна я спицально залочивал 12 регисторов (r4-r15) и совершенно никакой потери производительности не заметил. Перед этим провел небольшое исследование - типо, насколько эти регистры востребованы/юзабельны - перелопатил кучу файлов листингов компилятора из своих и чужых праэктов - там что-то окло процента или полутора было. Самым нипийятным пабочным эффектом залочивания аказалось то, што арифметика с 64-битными даблами у IAR'а юзает то ли два, то ли четыре младшых ригистра (r4-r7). Фсе, в астальном все клёво было.
уважаемый , разве это недостаток AVR?? имхо компилятора Не понял вопроса. Про какой недостаток идет речь? Если имеется в виду то, что при 64-битных даблах потребовались несколько младших регистров, то тут дело и не в AVR, и не в компиляторе - а в библиотечной реализации этих самых функций дабловой арифметики. Если переписать эти функции (а они на асме написаны, компилятором они никак не затрагиваются), то и без этих младших регистров можно было бы обойтись... Я все же остаюсь при своем мнении, что 16 младших регистров в AVR бестолковы и почти бесполезны, и заложенный на них ресурс в виде пространства в опкоде и площади кристалла лучше было бы использовать на развитие функциональности старшей половины - хотя бы пусть не все регистровые пары могли бы образовывать указатели, хотя бы еще один или два - уже было бы намного легче. А так порой на сгенеренный код смотреть без слез нельзя. Цитата(Stanislav @ Dec 27 2005, 20:08)  Цитата(defunct @ Dec 27 2005, 16:00)  Зачем так коверкать русский язык? "Глаза режет". Имейте хотя бы уважение к автору темы. Или сливайте ваш "русиш" на почтовые ящики друг другу, пощадите Великий и Могучий, а также наши глаза. Прошу прощения, не ожидал, что возникнет такая реакция неприятия.  Стараюсь всегда разговарить с людьми на понятном и приятном им языке, чем и было вызвнано использование легкого "албанского" акцента.  Еще раз прошу прощения.
--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
|
|
|
|
|
Dec 28 2005, 06:33
|

pontificator
     
Группа: Свой
Сообщений: 3 055
Регистрация: 8-02-05
Из: страны Оз
Пользователь №: 2 483

|
Цитата(dxp @ Dec 28 2005, 15:24)  Я все же остаюсь при своем мнении, что 16 младших регистров в AVR бестолковы и почти бесполезны, и заложенный на них ресурс в виде пространства в опкоде и площади кристалла лучше было бы использовать на развитие функциональности старшей половины - хотя бы пусть не все регистровые пары могли бы образовывать указатели, хотя бы еще один или два - уже было бы намного легче. А так порой на сгенеренный код смотреть без слез нельзя. Полностью согласен. Избыточное кол-во регистров не просто бесполезно, а довольно вредно, как всякая лишняя сущность. Уважаемый оратор выше упоминал про переключение контекста, там чем больше регистров - тем хуже. Впрочем, архитектура AVR студентами сделана, что уж с них взять... Цитата(IgorKossak @ Dec 28 2005, 00:13)  Кто-нибудь видел любительский дивайс industrial и automotive исполнения? Сколько угодно. Скажем, многие китайские поделия до недавнего времени разрабатывались и изготавливались любителями, бо профессиналами их назвать язык не поворачивается. Может, сейчас что-то стало меняться в лучшую сторону, а несколько лет назад если внутрь заглянуть - просто страх божий
|
|
|
|
|
Dec 28 2005, 06:58
|

Йа моск ;)
     
Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610

|
Цитата(=AK= @ Dec 28 2005, 08:33)  Цитата(dxp @ Dec 28 2005, 15:24)  Я все же остаюсь при своем мнении, что 16 младших регистров в AVR бестолковы и почти бесполезны, и заложенный на них ресурс в виде пространства в опкоде и площади кристалла лучше было бы использовать на развитие функциональности старшей половины - хотя бы пусть не все регистровые пары могли бы образовывать указатели, хотя бы еще один или два - уже было бы намного легче. А так порой на сгенеренный код смотреть без слез нельзя.
Полностью согласен. Избыточное кол-во регистров не просто бесполезно, а довольно вредно, как всякая лишняя сущность. Уважаемый оратор выше упоминал про переключение контекста, там чем больше регистров - тем хуже. Впрочем, архитектура AVR студентами сделана, что уж с них взять... Все равно не пойму, почему вы считаете R0-R15 бесполезными? Потому что с непосредственными операндами не работают? Покажите какой нибудь алгоритм обработки, который только с иммедитейтом работает - думаю, не бывает таких. Всегда есть и промежуточные результаты, накопители и т.д. - все вполне ложится в нижние регистры. Другое дело, что грамотный компилятор должен оптимизировать код под их использование - это да. Нехватка индексных регистров - действительно серьезная неприятность, но уж очень сильно она сказывается при C++. Вывод - не пишите на цпп для AVR. На месте Atmel я бы вставил в новое ядро комманды для работы со стеком например в таком виде: DECSP VAL - sp-=val INCSP VAL - sp+=val LDSP Rx,DISP - rx=sp[disp] STSP Rx,DISP - sp[disp]=rx где val и disp - небольшие иммедитейты. Очень бы помогло сишному компилятору.
--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
|
|
|
|
|
Dec 28 2005, 07:18
|
Местный
  
Группа: Свой
Сообщений: 242
Регистрация: 27-01-05
Пользователь №: 2 225

|
Цитата(dxp @ Dec 28 2005, 08:54)  Цитата(m16 @ Dec 27 2005, 15:00)  Цитата(dxp @ Dec 27 2005, 11:32)  А на AVR канкретна я спицально залочивал 12 регисторов (r4-r15) и совершенно никакой потери производительности не заметил. Перед этим провел небольшое исследование - типо, насколько эти регистры востребованы/юзабельны - перелопатил кучу файлов листингов компилятора из своих и чужых праэктов - там что-то окло процента или полутора было................
уважаемый , разве это недостаток AVR?? имхо компилятора Не понял вопроса. Про какой недостаток идет речь? .............. я говорю о том , что мягко говоря глупо вминять в недостаток авру то , что компилятор не умеет (а программист не хочет) на 100% использовать регистровый файл процессора. а младшую половину с ее "недостатками"удобно использовать как для хранения переменных так и для сохранения регистров в обработчике прерываний не пользуя для этого раму что я и делаю в своих проектах.
|
|
|
|
|
Dec 28 2005, 07:24
|
Знающий
   
Группа: Свой
Сообщений: 709
Регистрация: 3-05-05
Пользователь №: 4 693

|
Вот интересно, как же реализовать 8-байтную арифметику без 16 нижних регистров? Например 64Х64(8х8)... 64/64(8/8)? В ОЗУ нырять за операндами? Толково. И чо, ИАР пользует тока 4 нижних для этого? Мой им респект. А то я всё удивлялся, как это они умудрились whetstone оттарабанить аж за 73е6 цыклов? ;О) А они, оказываецца, регистры экономили. Малацца. А если не экономить, то 28е6 цыклов. Почуствуй разниццу. Это экономика должна быть экономной, ваще-то, пацаны перепутали, ну да ланно. ;О) Контекст переключать долго? А тут выбирать надо - либо контекст, либо арифметика. Уже упоминал Моторолий MC9S08. Тормоз неописуемый. Зато какое удовольствие контекст переключать. ;О) Только этим бы и занимался. Наверное, для того и придуман. Ну а что "студенты" проектировали, дык не важен метод, важен результат. В умелых руках АВРа оттянет почти любого 8-битника, особенно в арифметике. Да и 16-битник не всякий отбицца смогёт. Такое вот моё ИМХО на сегодня. ;О)
|
|
|
|
|
Dec 28 2005, 07:58
|

Adept
     
Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343

|
Цитата(m16 @ Dec 28 2005, 13:18)  я говорю о том , что мягко говоря глупо вминять в недостаток авру то , что компилятор не умеет (а программист не хочет) на 100% использовать регистровый файл процессора. Смею Вас заверить, что в IAR'е тоже не дураки сидят. Случаев, когда не хватает 16 регистров можно по пальцам пересчитать. Цитата(m16 @ Dec 28 2005, 13:18)  а младшую половину с ее "недостатками"удобно использовать как для хранения переменных так и для сохранения регистров в обработчике прерываний не пользуя для этого раму что я и делаю в своих проектах. Это второй недостаток, про котоый я упоминал - медленная работа с памятью. Будь она нормальной, однотактовой, все бы прекрасно сохранялось в стеке. И не надо говорить, что это сделать было нельзя. PIC18 - живой пример того, что можно. А ФАПЧ там или на линиях задержки внутренние фазы формируются - это дело пятнадцатое, меня, как пользователя, это колышет в полседнюю очередь. А вот когда обыкновенный инкремент переменной в памяти занимает 2+1+2=5 тактов, из которых 4 - 80% (!) - накладные расходы на пересылку, это, пардон, красотой не назовешь ну никак!
--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
|
|
|
|
|
Dec 28 2005, 08:02
|

pontificator
     
Группа: Свой
Сообщений: 3 055
Регистрация: 8-02-05
Из: страны Оз
Пользователь №: 2 483

|
Цитата(mse @ Dec 28 2005, 16:54)  Вот интересно, как же реализовать 8-байтную арифметику без 16 нижних регистров? Например 64Х64(8х8)... 64/64(8/8)? В ОЗУ нырять за операндами? Толково. А чё, AVR для 8-байтной арифметики, оказывается, предназначен? И задач таких кругом немеряно, чтоб именно 8-битником это щелкать? Тады звиняйте, не знал... Я-то грешным делом думал, что "всякому овощу свой фрукт" (с), и сапоги должон тачать сапожник... А если серьёзно, то такой перевес в сторону числомолотилки должен засчитывться не как достоинство, а как недостаток. Бо ежели некоем создании какой-то орган переразвит - это не красота, а уродство, имхо. Гармония должна быть.
|
|
|
|
|
Dec 28 2005, 08:15
|

Йа моск ;)
     
Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610

|
Цитата(dxp @ Dec 28 2005, 09:58)  Это второй недостаток, про котоый я упоминал - медленная работа с памятью. Будь она нормальной, однотактовой, все бы прекрасно сохранялось в стеке. И не надо говорить, что это сделать было нельзя. PIC18 - живой пример того, что можно. А ФАПЧ там или на линиях задержки внутренние фазы формируются - это дело пятнадцатое, меня, как пользователя, это колышет в полседнюю очередь. А вот когда обыкновенный инкремент переменной в памяти занимает 2+1+2=5 тактов, из которых 4 - 80% (!) - накладные расходы на пересылку, это, пардон, красотой не назовешь ну никак! О да, пик - суперпроцессор. Не помню, помоему в 18 уже сделана арифметика с переносом, а давайте про любимую 16 серию. Надо выполнить простую вещь, например сложить два массива 16-битных чисел (напомню - указатели на int) for(..) { (*d)+=*s; s++;d++ } И смотрим в код. Во-первых - в пичке один индексный регистр, копирований значений - как грязи. Во-вторых - а нет же нормального сложения с переносом, надо так извращаться, просто дофига комманд на такую простую операцию, как +=. А теперь - серия 18 - массив переходит через границу странички и п...ц. Но вобщем я не о том, что пик - лайно, авр - вещь. Я про то, что есть некоторый набор требований, которые надо выполнять при программировании на AVR. Первое и самое главное - как можно меньше статических переменных. Если без них никак, тогда в начале процедуры нагрузить все в регистры, перед выходом - слить. То-есть так static char a; static char b; static char c; void foo(void) { char wa=a; char wb=b; char wc=c; //Теперь делаем чего надо wa...wc a=wa; b=wb; c=wc; } Нормально живет.
--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
|
|
|
|
|
Dec 28 2005, 08:28
|
Местный
  
Группа: Свой
Сообщений: 242
Регистрация: 27-01-05
Пользователь №: 2 225

|
Цитата(dxp @ Dec 28 2005, 10:58)  Смею Вас заверить, что в IAR'е тоже не дураки сидят. Случаев, когда не хватает 16 регистров можно по пальцам пересчитать................
.................А вот когда обыкновенный инкремент переменной в памяти занимает 2+1+2=5 тактов, из которых 4 - 80% (!) - накладные расходы на пересылку, это, пардон, красотой не назовешь ну никак! 16-ть регистров хватает с головой а вот переменную засунуть в свободный и огулять ее инкрементом за один такт гордость за IAR не позволяет. дык эту "красоту" Вам иар и устраивает ведь его не дураки писали =AK=Цитата А чё, AVR для 8-байтной арифметики, оказывается, предназначен? И задач таких кругом немеряно, чтоб именно 8-битником это щелкать? Тады звиняйте, не знал... Я-то грешным делом думал, что "всякому овощу свой фрукт" (с), и сапоги должон тачать сапожник... вот нужно мне было в 2313 64-битную замутить. ресурсов хватало тк вычислений не много было . или мне нуно было сразу арм за хобот брать дабы 2к во флеш залить??? вообщем коллеги дискуссия приобретает не профессиональный характер. лично я умываю руки и в ""этом "" процессе боле не учавствую
|
|
|
|
|
Dec 28 2005, 08:29
|

pontificator
     
Группа: Свой
Сообщений: 3 055
Регистрация: 8-02-05
Из: страны Оз
Пользователь №: 2 483

|
Цитата(Rst7 @ Dec 28 2005, 17:45)  О да, пик - суперпроцессор. Это чё-то из серии "ежли вы обижаете лордов нам - мы вам тоже написаем в щи" (с). Детский сад какой-то, право-слово... Про ПИКи особо и речи-то не было. В треде только я их упоминал, и то всего лишь как еще более говеную чем АВР архитектуру. Вы хоть в курсе истории мелкопроцессоров, и знаете ли как ПИК расшифровывается? Периферийный Интерфейсный Контроллер, только-то и всего. А ежели в AVR какашками кидать, то, помимо упомянутых выше недостатков, отмечу еще один. Это RISC процессор. Сама идея РИСК-ов изначально довольно гнилая. Поскольку всем РИСК-ам присущи такие недостатки: 1) Программная память расходуется неэффективно. 2) Как следствие, доступ к программной памяти является узким местом.
|
|
|
|
|
Dec 28 2005, 08:39
|

Йа моск ;)
     
Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610

|
Цитата(=AK= @ Dec 28 2005, 10:29)  Цитата(Rst7 @ Dec 28 2005, 17:45)  О да, пик - суперпроцессор.
Это чё-то из серии "ежли вы обижаете лордов нам - мы вам тоже написаем в щи" (с). Детский сад какой-то, право-слово... Про ПИКи особо и речи-то не было. В треде только я их упоминал, и то всего лишь как еще более говеную чем АВР архитектуру. Вы хоть в курсе истории мелкопроцессоров, и знаете ли как ПИК расшифровывается? Периферийный Интерфейсный Контроллер, только-то и всего. Мне кажется слово еще более говеную прозвучало только сейчас. А я уж было подумал, что Вы сторонник...  Я не хотел тут разводить по поводу того "какой проц лучше" и т.д. Просто так прозвучал Ваш пост "А вот на ПИК18 ....". Еще раз не хотел. Флейм мы тут действительно развели. Хотя сама постановка вопроса (первый пост) к этому и вела. Можно резюмировать. 1. На С++ не писать, писать на С 2. Глобальных переменных поменьше 3. Все грузить в регистры, потом сливать обратно 4. А вот если Atmel еще и комманды добавит - все будет нормально. Я думаю, можно закрывать тему или перемещаться в тему класса "Что лучше", если охота побазарить дальше.
--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
|
|
|
|
|
Dec 28 2005, 08:42
|
Знающий
   
Группа: Свой
Сообщений: 709
Регистрация: 3-05-05
Пользователь №: 4 693

|
Цитата А чё, AVR для 8-байтной арифметики, оказывается, предназначен? И задач таких кругом немеряно, чтоб именно 8-битником это щелкать? Тады звиняйте, не знал... А почему бы и нет? ;О) У меня, например, встречается, ну не сказать, чтобы немеряно, но, как назло, в самых быстрых местах. А уж 32бит, так почитай везде. Имею право! Мона, конешно САМ или ЛПЦ поставить, даже по деньгам ничё, дык, ведь, он пол-платы съёст и пол-питания. ИМХО, если регистры "лишние", то их можно просто не пользовать, а если нехватает, то ниоткуда не возьмёшь. В конце концов, критические переменные, из серии Цитата инкремент переменной в памяти занимает 2+1+2=5 тактов можно легко хранить в регистре. И инкрементировать за 1 такт. Критические по доступу флаги - аналогично. Единственно необъяснимая кривизна АВРа, которая не может быть оправдана, это бит- и порт-мап. Это пестня!!! ;О) Мужики оттянулись за всё. Генераторы и вообще узел синхронизаццыи, тоже атас. МСП здесь руль, бесспорно. Хотя терпимо. А всё остальное - это фичи. Кому-то по душе, кому-то нет. Но появились они неспроста, бо, опять повторюсь, соблюсти все приличия по производственно-коммерческим причинам - невозможно. Мы ведь тоже не делаем всё на 6-слойках, в конце концов. И девайсы наши не всегда от пальчиковой бабарейки 10 лет двигателем управляют. И ведь неспроста-же. Каждый моет сказать немало в своё оправдание. ;О) Прально замечено Цитата "всякому овощу свой фрукт" (с) ;О) Не нравицца - не ешь!!!
|
|
|
|
|
  |
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|