Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: AVR - любительский конроллер?
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
Страницы: 1, 2
=AK=
Цитата(mse @ Dec 26 2005, 19:36) *
Повторюсь, производитель должен думать о миграццыи не когда к заднице приближаецца петух, "с пылу-с жару", а когда новая замена стала дешевле старого. Как правило, после этого, до прекращения произвоцтва, есть год-два. Времени - залейся.

Это если других дел нету blink.gif

Вот, намедни, другая "пионэрская" фирма Cypress объявила о "последней дате покупки" EZ-FX1 в сентябре 2005-го. Конечно, переползти на FX2 технических проблем нет, он накрывает FX1 как бык овцу. Но ведь не совместим на 100%, сволочь. А на фиг нам этот геморрой? Мы бы еще года 2-3 спокойно могли выпускать изделие на FX1. А теперь придется переползать, тратить время, которого нет... angry.gif

Получается, что они делают как им удобнее, а не как мне, пользователю, удобнее. Особенно таким подходом славен Мелкософт, а на него глядя и некоторые другие борзеют. К сожалению, во многих случаях такие борзые производители являются монополистами, как в случае того же Сайпресса. А была бы возможность - послал бы нах, и юзал бы альтернативный продукт от более приличного производителя.

Поэтому я к Атмелу с опаской отношусь. Мелкочиповские процы хоть и говенее архитектурно, зато Мелкочип сильно не хамит. Хотя лет 10 назад у них тоже были взбрыки подобного плана, но ничего, отучили, видать. wink.gif

Поэтому если у меня есть возможность выбирать камень (в том числе проц), то я скорей выберу камень "респектабельной" фирмы, пусть даже характеристики у него будут поплоше, чем у каких-то технически супер-пупер молокососов. А уж оценку "респектабельности" я для себя сам веду. Скажем, Сайпресс по этой шкале где-то в заднице. Атмел у меня ранк получше имеет, но не шибко далеко от них ушел. biggrin.gif
mse
Цитата
Поэтому если у меня есть возможность выбирать камень (в том числе проц), то я скорей выберу камень "респектабельной" фирмы, пусть даже характеристики у него будут поплоше, чем у каких-то технически супер-пупер молокососов. А уж оценку "респектабельности" я для себя сам веду. Скажем, Сайпресс по этой шкале где-то в заднице. Атмел у меня ранк получше имеет, но не шибко далеко от них ушел.

Недожытки молодости. Повзрослеют - устаканяцца. Тем архитектурам 10 лет нету. Вон Интель или гнусмаС - куда уж респектабельнее, а клиентуру кидают - мама-не-горюй. Начиная с 51, кончая АРМами.
А что мешает тупо купить микросхем на всю оставшуюся программу, например? На пару лет спрогнозировать несложно, ИМХО. Мы так с Интелем и поступили в своё время. ;О)
=AK=
Цитата(mse @ Dec 26 2005, 20:42) *
Недожытки молодости. Повзрослеют - устаканяцца. Тем архитектурам 10 лет нету. Вон Интель или гнусмаС - куда уж респектабельнее, а клиентуру кидают - мама-не-горюй.

Ну вот, получается, что не все "взрослеют". Здесь, имхо, не за возрастом надо смотреть, а за политикой компании, кто там верховодит. Если там маркетинг все двигает - кинут, гады, как пить дать, при первой же возможности, бо они ничего кроме сиюминутной выгоды не понимают. А ежели инженеры, то, может, вести себя поприличнее будут. Хотя тоже варианты всякие бывают. Вот тот же Сайпресс всегда себя как "инженерную" компанию представлял. angry.gif
Alex B._
Цитата
А что мешает тупо купить микросхем на всю оставшуюся программу, например? На пару лет спрогнозировать несложно, ИМХО. Мы так с Интелем и поступили в своё время. ;О)

И сколько вы купили микросхем? 8=) Замороженные на складе деньги никому не нужны, это даже большие заводы уже понимают, не только средние и мелкие контроры.
Цитата
Мужуки, не лукавьте ;О). Если вы делаете настолько серьёзные вещи, и-или в таких количествах

Ключевое слово "количествах" тут уже 100 р это как серпом по яйцам, это может быть 10% себестоимости. А любой нормальный менеджер за 1% удушиться
dxp
Цитата(mse @ Dec 26 2005, 15:29) *
Цитата
Иными словами, персылка память-регистр и регистр-память в AVR должна занимать 1 такт! Как это сделано в других процессорах с Load/Store архитектурой (например, ADSP-21xx и др.).

Достаточно весело ;О) А не подскажет ли уважаемый Дон, сколько периодов ОСЦ содержыт "1 такт" у АДСП-21-хх и у "других" контроллеров? То-то же. А у АВР - 1:1!

Уважаемый Сеньйор должен помнить, что у АДСП-21хх любая команда выполняецца за один такт ОСЦ. Т.е. 40 МГц кварц (или внешний клок) дает 40 МИПС производительности - т.е. 40 миллионов честных апераций в секунду. И абращщение ф память - не исключение. То, что внутри растактовка на 4 идет, ничего не меняет. У AVR тоже внутри на 4 фазы побито, как они организуются - следующий вопрос (с ФАПЧем или на задержках). У АДСП - ФАПЧ. Но там и частоты недеццкие. При 8 МГц АДСП вполне бы без ФАПЧа мог абайтись. Кстате, PIC18 тоже за один такт ОСЦ успевает. И тоже с ФАПЧем. Это фсе детали реализацции.

Цитата(mse @ Dec 26 2005, 15:29) *
Нащщёт ортогональности, ваще атас. Ни разу не жалел я об отсуцтвии оной ни в 8080, ни в х86, ни в 51, ни в АВР. Не знаю даже для назачем бы она была нужна. ;О)

Если бы Вы сравнили кодогенераццийю упомнянотого MSP430 с оной обсуждаемого AVR, Вы бы без труда поняли, почему гарвардский AVR сливает фоннеймановскому MSP430 даже при работе с 8-битными данными. Именно из-за нее родимой - из-за ортогональности регистрового файла, когда нету ни одной операции пересылки между регистрами, чтобы сохранить или загрузить адрес - в каком регистре адрес пощщитали, с того и работаем. А в AVR пастаянна приходиццо туда-сюда адреса таскть из Z-поинтера и абратна в нево.

Речь идет не а том, што без нее жыть нельззя, а а том, што без нейо хуже, чем с ней. Паэтаму ацсуцтвие артаганальности скорее несдостаток, нежели достоинство. А жыть, канешно, можно, можно ваапще без AVR'ов жить - жили же и ничего, не тужили.

Цитата(mse @ Dec 26 2005, 15:29) *
Что касаемо млачшего банка у АВР, то у меня, например, R3-r15 используюцца гораздо чаще, чем R19-r25. Есть программы, где таких букв не встречяецца ни разу. Что я непрально делаю?

Это што за праграммы? На голом асме, што-ли? Не, на астме можно извращацца как угодно, только вот если кампилятором пользоваццо, то без r16:r31 не абайдетесь никак. Факт ф том, што без r0:r15 можной обойтись, а без r16:r31 - ну никак! Даже литерал не смогёте в регистор загрузить. Поэтому вопрос, какая половина нужнее, не стоИт ваапще - вопрос стоИт, насколько нужна эта нижняя половина, если вместо нее можно получить более полезную функциональность. Кстате, при испозьзовании вытесняющих RTOS количество регистров обратно пропроционально эффективности ОС, и таскать 16 бестолковых регистров там вопще некстате.

И ещщо рас повторю - жыть можно, никто не говорил, што нельзя. Вапрос только ф том, как оно лутше. Свайё имхо я сказал.

Цитата(mse @ Dec 26 2005, 15:29) *
С указателями тоже нет проблем: все вычисления адресов делаюцца в них-же. Согласен, бывает нужно обратицца во флэш с двух рук. Но это очень редко. У меня всего 1 или 2 раза с 1998г.

Ну зрасьте! Да просто скопировать кусок данных - нада два поинтера. Причем не в цыкле скопировать, а, например, несколько полей структуры/класса. А если у меня в классе массив есть и мне нужно к йево членам абращаццо? Тут получаецца, што в Z-поинтере лежит this, а адрес массива грузить некуда - X-поинтер не патходит - он не умейет со смещщением адресаваццо, Y-поинтер занят под указатель стэка. Што делаем? Пральна - сахраняйем значение Z-поинтера (указатель this), грузим в Z-пойинтер адрес массива, работаем, патом абратна вертаем this. И таких случаев ещщо есть, я не придумал это. На эту тему плотно абщалсцо с IAR'воской паддержкой, абсуждали стратегии register allocation, чтобы оверхеда было меньше. Весь гимаррой там из-за убогости системы регистов-указателей (мала их), усугубленной ацсуцтвием нармального указателя стека, штобы данные можено было им же манагить.

Цитата(mse @ Dec 26 2005, 15:29) *
Ну а что касаемо компиляторов, то тут вопрос ваще мимо кассы. Мож мне кто расскажет, когда-же ИАР разродился поддержкой аппаратного умножителя для АВР в плывучьке? Бо в 2001 я уже во всю пользовал м163. А анонсирована она была в 1999г.

И чо? Вы знаете кампилятор лучше, чем IAR для AVR? Упомянуная поддержка умножителя на плавучке - это вапще к камилятару атнашэния не имейет - это сугубо дело библиотеки, там все на астме написано. Если Вам оно так было нужно - напесали бы себе свою библу и вуаля. Сообщу еще тайну (тоже суппорт в свайо время раскалолся): разработчики компилятора (где кодогенерация, оптимизация и прочее) и библиотек - это несколько разные люди. Если в библе оно появилось поздно, это вопрос управления этим процессом - вопрос к EWAVR продукт манагеру. Этот вопрос я не задавал, мне оно без надобности было - в моих проектах плавучка и так успевала со свистом.

Цитата(mse @ Dec 26 2005, 15:29) *
Кстати, ИАРовы компилеры очень странно работают и с АРМ.

А это тут причем? IAR'овские компиляторы далеко не лучшие для фсех платформ. К примеру, для того же старика 51-го IAR'овский кампилер всегда уступал и Кейлу, и Таскингу. Нащщет АРМа не скажу, мы щяс не йево апсуждаем. А для AVR IAR - лучший кампилер абъективно!

Вапще, в чом вапрос-то? Просили недостаки азвучить. Что и сделано. Никто ж не утверждает, што AVR - аццтой. Нормальный, приличный МК. Идеального МК (как и фсего другого) нет, и, видимо, никагда не будет - у фсех фсегда что-то да не так. Ну и ладно. Но это не устраняет реальные абъективные недастаки AVR, што плохова, если аб этом будут знать те, кто еще сам не дошел, не столкнулся, не наступил и т.д.? Имхо, ничего плохого нет.

Я, кстате, еще не фсе упомянул. Там в AVR еще пенок хватает. Например, эта их идея с оддельной областью IO. Ведь ясно же было, што кончицца она. И кончилась - вон на меге 128 начался гимарой, когда за адреса 0x60 вылезли. Канешно, жыть-то можно, только фсе равно геморрой. А то, что в битовоадресуему область поместили регистр данных АЦП! Это ж нада было до этого додумацца! Битами таймера рули по маскам, а биты данных АЦП доступны индивидуально! Цирк!! Но про такие мелочи я даже упоминать не стал, думал, перечисленного значимого достаточно... ашыпся выходит.

В заключение, я нигде на AVR не наезжаю, сам долго с ним работал, если сейчас не работаю, то это просто тематика сменилась, AVR туда не катит. Я, в отличие от некоторых других участников форума, не считаю что AVR для радиолюбительских поделок, а не для серьезных промышленных (в том числе) изделий. Нормальный МК, достаточно поизводительный, достаточно простой и прозрачный, с достаточно богатой периферией, достаточно надежный. По крайней мере, почти по всем основным характеристикам не уступающий своим одноклассникам. Вполне достойное семейство для любых ембеддед применений.
mse
Цитата
Уважаемый Сеньйор должен помнить, что у АДСП-21хх любая команда выполняецца за один такт ОСЦ. Т.е. 40 МГц кварц (или внешний клок) дает 40 МИПС производительности - т.е. 40 миллионов честных апераций в секунду.

Прально, ОСЦх4. А это многое меняет, не правда ли? У 51, тогда, тоже за один "такт" было бы, если бы в те времена умели на 12 множыть. По сравнению с АВР, у АДСП синхронизированных стадий может быть в 4 раза больше, как минимум. Т.е конвейер гораздо длиннее, там может лехко разместицца write-back в ОЗУ. А на 2 ОСЦ АВРа "однотактный" доступ к ОЗУ не получить никак. Попробуйте нарисовать. ;О)
Цитата
Факт ф том, што без r0:r15 можной обойтись, а без r16:r31 - ну никак!

Дык, никак не против. Просто на стандартной длинной арифметике в 16 8-р регистрах смерть таицца. Это 16-р может позволить себе 16 регистров, а 8-р-ник никак.
Касаемо регистеров-указателей и протчего: понятно, что хотелось бы всего и много, но поместилось бы оно в систему команд? Большой вопрос. С точки зрения кривизны, АВР такое-же угрёбище как любой первый попавшийся проц. Хоцца ортогональности - получаем ортогонального тормоза типа Моторольного или МСПшного, когда на любой чих имеем 4-5 тактов ОСЦ. А в 32 регистерах мы легко размещаем 3-4 переменных и промежножуточных результата, насилуем их как нам надо однотактовым методом и пару байт сливаем как результат. Итого, на 100-200 тактов проццедуры имеем не более 10 "лишних" тактов. Чем не стратегия?
Если бы всё было так просто, то уже кто-нить давно пролистал все конфы, на бумажке выписал чё надо и забадяжыл, благо щас это не проблема. И был бы у нас МК нашей мечты, а все остальные бы издохли. Ан нет, нет ещё такого героя ;О) и не предвидицца, ИМХО.
АВРа, конечно, не подарок(битмап в особенности ;О), но в первом сообчении вы про это не сказали. ;О) Хотя это как раз "родимые пятна" АВРа. Родовая, так сказать, травма ;О). О чём во втором сообчении вы и отметили. Справедливо. Присодиняюсь. А указатели, SP и неортогональность, это просто результат разумного компромисса. Ну, типа цвета глаз. ;О) Думаю, разрабоччики пошли на это вполне осознанно.
Вот и приходицца следить за индУстрией, вдруг чего. А там ни вдруг, ни чего ;О) кроме громких фраз, ессно. Т.е. с 1996года(рожжение АВР) в 8-битном мире ничего достойного внимания не произошло. Но за счёт него ареал распространения 8 бит расширился. Сильно, ИМХО. Бо можно всерьёз сравнивать МСП, например, и АВРа. Или какого мотороллера с . ;О) И никто не смеёцца.
Цитата
И сколько вы купили микросхем? 8=) Замороженные на складе деньги никому не нужны, это даже большие заводы уже понимают, не только средние и мелкие контроры.

Ровно столько, чтобы реализовать запланированную на след. год программу выпуска(около 1000шт, кажысь). А пока она реализовывалась, мигрировали на Темико-Атымелий 51FD. Совершенно спокойно и без геморроя. Чего и другим жылаю. ;О) А замороженные деньги - меньшее зло, чем потеряное время.
Цитата
Ключевое слово "количествах" тут уже 100 р это как серпом по яйцам, это может быть 10% себестоимости. А любой нормальный менеджер за 1% удушиться

Нет, в контексте того разговора, ключевое понятие "настолько серьёзные вещи" бо там стоимость, среди приоритетных параметров устройства, даже не в первой десятке параметров, иногда.
dxp
Цитата(mse @ Dec 26 2005, 19:32) *
Цитата
Уважаемый Сеньйор должен помнить, что у АДСП-21хх любая команда выполняецца за один такт ОСЦ. Т.е. 40 МГц кварц (или внешний клок) дает 40 МИПС производительности - т.е. 40 миллионов честных апераций в секунду.

Прально, ОСЦх4. А это многое меняет, не правда ли? У 51, тогда, тоже за один "такт" было бы, если бы в те времена умели на 12 множыть. По сравнению с АВР, у АДСП синхронизированных стадий может быть в 4 раза больше, как минимум. Т.е конвейер гораздо длиннее, там может лехко разместицца write-back в ОЗУ. А на 2 ОСЦ АВРа "однотактный" доступ к ОЗУ не получить никак. Попробуйте нарисовать. ;О)

А чо пробовать, вон ПИЦ18 могет? - могет! А ФАПЧ там, пафтаряйю, или на задершках разтактофку внутренних фаз сделать - без асобой разницы. По соотношению производительность/потребление ПИЦ18 примерно соотвецтвует AVR. И по производительности тоже. А Xemics могет ващще за адин такт любую каманду выпалнять! И тут можно было сделать. Просто Атымел решыл, што и так харашо, а сейчас паравос уже ушол.

Цитата(mse @ Dec 26 2005, 19:32) *
Дык, никак не против. Просто на стандартной длинной арифметике в 16 8-р регистрах смерть таицца. Это 16-р может позволить себе 16 регистров, а 8-р-ник никак.

Спакойна может. Вон у MSP430 типо 16 регисторов, а на деле там в них PC, SP, SR и CG, тоисть 4 ригистра атымаем, астаеццо 12. Из них активно юзаются r8-r15, то есть как рас 8 16-битных, что саатвецвтвует 16-ти 8-битным. Иногда только при тижолых высчлениях еще 4 младших до кучи дабавляются. Но это уже особые случаи.

А на AVR канкретна я спицально залочивал 12 регисторов (r4-r15) и совершенно никакой потери производительности не заметил. Перед этим провел небольшое исследование - типо, насколько эти регистры востребованы/юзабельны - перелопатил кучу файлов листингов компилятора из своих и чужых праэктов - там что-то окло процента или полутора было. Самым нипийятным пабочным эффектом залочивания аказалось то, што арифметика с 64-битными даблами у IAR'а юзает то ли два, то ли четыре младшых ригистра (r4-r7). Фсе, в астальном все клёво было.

Цитата(mse @ Dec 26 2005, 19:32) *
Касаемо регистеров-указателей и протчего: понятно, что хотелось бы всего и много, но поместилось бы оно в систему команд? Большой вопрос. С точки зрения кривизны, АВР такое-же угрёбище как любой первый попавшийся проц. Хоцца ортогональности - получаем ортогонального тормоза типа Моторольного или МСПшного, когда на любой чих имеем 4-5 тактов ОСЦ.

В MSP430 тармаза не из-зо артаганальности, а из-за того, што он фоннейман - лазит в память за кодом и данными по той же шыне. И уш каким бы тормозом он не был, AVR он, как ужэ сказал, обходит - и как рас благадаря именно ортогональности.

Цитата(mse @ Dec 26 2005, 19:32) *
А в 32 регистерах мы легко размещаем 3-4 переменных и промежножуточных результата, насилуем их как нам надо однотактовым методом и пару байт сливаем как результат. Итого, на 100-200 тактов проццедуры имеем не более 10 "лишних" тактов. Чем не стратегия?

На эту тему выше напесал.

Цитата(mse @ Dec 26 2005, 19:32) *
Если бы всё было так просто, то уже кто-нить давно пролистал все конфы, на бумажке выписал чё надо и забадяжыл, благо щас это не проблема. И был бы у нас МК нашей мечты, а все остальные бы издохли. Ан нет, нет ещё такого героя ;О) и не предвидицца, ИМХО.

Тут, имхо, другая причина. Не все определяеццо фичами МК, далеко не все. Гораздо важнее зачастую такие факторы, как история развития, занятие нишы, контингент пользователей и их инерцыйя. Кагда AVR вышел на сценну, какие там были у нево канкуренты? PIC16, 51-й, какие-то древние мотороллеры. И йему там было вальготно - шустрый, простой и понятный МК, с хорошей производительностью, приличной периферийей, флешью, еепромой. А вот прецтафте, што Атмел севодня выкатил бы этот AVR - пусть даже без фсех апсуждаемых недастатков! И чего? Кто бы на него стал смотреть, кагда уже дешовых АРМов понаделали. А так они нишу свою с конца 90-х годов заняли, теперь их аттуда так просто не выкуришь - много народу подсело, а нарот - не компьютор - ему Alt+Tab не нажмешь.

Поэтому выкати сегодня очень клевый 8-битник, никто на него смотерть (серьезно) не будет. Очень трудно будет ево раскрутить. Вот паэтому и не дергаецца никто. И развитие идет только в рамках совместимости - рынок (и бабло) с таким трудом завайованные никто терять не хочет.
m16
Цитата(dxp @ Dec 27 2005, 11:32) *
А на AVR канкретна я спицально залочивал 12 регисторов (r4-r15) и совершенно никакой потери производительности не заметил. Перед этим провел небольшое исследование - типо, насколько эти регистры востребованы/юзабельны - перелопатил кучу файлов листингов компилятора из своих и чужых праэктов - там что-то окло процента или полутора было. Самым нипийятным пабочным эффектом залочивания аказалось то, што арифметика с 64-битными даблами у IAR'а юзает то ли два, то ли четыре младшых ригистра (r4-r7). Фсе, в астальном все клёво было.

уважаемый , разве это недостаток AVR?? имхо компилятора
mse
Гы, ну ПИЦ18 тоже имеет 4 такта на цыкл. Соатвецтвенна, синхронизируимых стадий конвейера у нево можна поиметь большэ. У АВРы, кстати(судя по картинке на туалетной бумажке в ДШ), синхронизируемых по ОСЦ стадий всево 4 за 2 ОСЦ. Причом 1 ОСЦ занимает выборка из флэшы. За второй ОСЦ проходит decode-execute-writeBack(в регистер). Т.е. дажэ 1/2 ОСЦ нету для генераццыи цыклы шыны для РАМ. А, думаю, нужно полный ОСЦ. Скарее всево, опять-же разумный кампрамисс между тем и этим. Вон SM для себя ваяит приблуды заказныи однотактавыи 8-разрядныи и ваще на 51 архитектуре, так жалится, что сложный декодер сильна площщядь увеличиваит, след-но, кол-во бабла в кармане - уменьшаит, а тут 16 или 32 регистра-кумулятора. Не сильно попрыгаиш.
Ну про кампеляторы я говорить не буду, бо пишу на АСМе и щщяслив пака. Смеху ради посмотрю на какой компилиравый код, или беньмарк, проблююсь и опять на АСМу. ;О) У меня, нааборот, падение производительности от уменьшения регистров сильна заметное. В разы, иногда. А кампилираписателю, наоборот, от многыя регистрофф - геммарой. У нево-то регистер один. ;О) Были бы оптимизируюсчие кампиляторы, была бы другая пестня. А так я уже писал про качества кампилирафф. Ацтой и анигдод.
А што про щяс выкатить АВР? ХЗ,хз, 8-битьник, это всё-жы вещщь в себе. Вон АРМаф скока, а у 8-битников просто цены упали и фсё. Т.е. кремневики-затейники проста уменьшыли сваи сверьхприбыли до просто прибылей ;О) Абыдна! М48 за бакс функццыанальна соотвецтвует трёхбаксовому САМу или ЛПЦ. Причом меньшэ занимает и жрёт. И толку с ихних мГГцев и Мббайтофф для 20 ног ИО. В 44-ногамм-то корпусе! Атас... Уже как-та на 2003г инфу давал, 25%МК по валу - 4р-ники. Так што есть ещё ягоды в ягодиццах и у 8-р. ;О) Так што клёвый 8-битник ещё ждёт сваиво чяса. Тем более, что есть у миня нехорошэе предположэние, что производительнасть таво-же АВРа сдержываицца искусственна. Но аб этом - тс-с-с-с... ;О)
defunct
Зачем так коверкать русский язык? "Глаза режет".
Stanislav
Цитата(defunct @ Dec 27 2005, 16:00) *
Зачем так коверкать русский язык? "Глаза режет".
Поддерживаю. К уважаемым гуру. Имейте хотя бы уважение к автору темы. Или сливайте ваш "русиш" на почтовые ящики друг другу, пощадите Великий и Могучий, а также наши глаза.

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

А вот я сейчас всем непослушным деткам подарочек под Новый Год устрою santa2.gif в виде предупреждений twak.gif smile3046.gif smile3009.gif , а там, глядишь, и говорить научатся.

А что касается темы разговора.
Кто-нибудь когда-нибудь слышал, чтобы фирма позиционировала свой продукт как любительский?
Кто-нибудь видел любительский дивайс industrial и automotive исполнения?
Теперь о сроке жизни изделия.
Забудьте, уважаемые господа (кроме тех, у кого есть корпоративный пожизненный заказчик), о таких сроках как 10 - 20 - 30 лет. Сейтас реалии таковы, что если дивайс не обновляет элементной базы (и всего прочего) за 2 - 3 года, то конкуренты обходят и оглянуться не успеешь.
Что касается сложности этого мероприятия, то это уж кто как работу ставит. Мы, например, уже на четвёртую платформу переходим (51-430-AVR-ARM) - и ничего, никаких истерик в течение нескольких лет - в худшим случае, пару месяцев на переход.
Хотя и сертификацию прохотим и аттестацию и любую другую ...ацию и изделия идут десятками тысяч. Всецело поддерживаю мысль, что отсутствие дивайса на рынке это просчёт не разработчика, а снабженца. Т. к. по долгосрочным программам поставки работают практически ВСЕ фирмы и милионные партии товара на складе замораживать не нужно.
Всё!
Stanislav
Цитата(IgorKossak @ Dec 27 2005, 17:43) *
.................
Всецело поддерживаю мысль, что отсутствие дивайса на рынке это просчёт не разработчика, а снабженца. Т. к. по долгосрочным программам поставки работают практически ВСЕ фирмы и милионные партии товара на складе замораживать не нужно.
Всё!
Согласен. В одной из разработок Вашего покорного слуги используется чип, который уже лет 6-7 нельзя нигде купить и нечем безболезненно заменить. Поставки же по контракту (весьма, надо сказать, небольшому по объёму), тем не менее, производятся регулярно.
dxp
Цитата(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) *
Зачем так коверкать русский язык? "Глаза режет".

Имейте хотя бы уважение к автору темы. Или сливайте ваш "русиш" на почтовые ящики друг другу, пощадите Великий и Могучий, а также наши глаза.

Прошу прощения, не ожидал, что возникнет такая реакция неприятия. cranky.gif Стараюсь всегда разговарить с людьми на понятном и приятном им языке, чем и было вызвнано использование легкого "албанского" акцента. smile.gif Еще раз прошу прощения.
=AK=
Цитата(dxp @ Dec 28 2005, 15:24) *
Я все же остаюсь при своем мнении, что 16 младших регистров в AVR бестолковы и почти бесполезны, и заложенный на них ресурс в виде пространства в опкоде и площади кристалла лучше было бы использовать на развитие функциональности старшей половины - хотя бы пусть не все регистровые пары могли бы образовывать указатели, хотя бы еще один или два - уже было бы намного легче. А так порой на сгенеренный код смотреть без слез нельзя.


Полностью согласен. Избыточное кол-во регистров не просто бесполезно, а довольно вредно, как всякая лишняя сущность. Уважаемый оратор выше упоминал про переключение контекста, там чем больше регистров - тем хуже. Впрочем, архитектура AVR студентами сделана, что уж с них взять...

Цитата(IgorKossak @ Dec 28 2005, 00:13) *
Кто-нибудь видел любительский дивайс industrial и automotive исполнения?

Сколько угодно. Скажем, многие китайские поделия до недавнего времени разрабатывались и изготавливались любителями, бо профессиналами их назвать язык не поворачивается. Может, сейчас что-то стало меняться в лучшую сторону, а несколько лет назад если внутрь заглянуть - просто страх божий blink.gif
Rst7
Цитата(=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 - небольшие иммедитейты. Очень бы помогло сишному компилятору.
m16
Цитата(dxp @ Dec 28 2005, 08:54) *
Цитата(m16 @ Dec 27 2005, 15:00) *

Цитата(dxp @ Dec 27 2005, 11:32) *

А на AVR канкретна я спицально залочивал 12 регисторов (r4-r15) и совершенно никакой потери производительности не заметил. Перед этим провел небольшое исследование - типо, насколько эти регистры востребованы/юзабельны - перелопатил кучу файлов листингов компилятора из своих и чужых праэктов - там что-то окло процента или полутора было................

уважаемый , разве это недостаток AVR?? имхо компилятора

Не понял вопроса. Про какой недостаток идет речь? ..............

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

Смею Вас заверить, что в IAR'е тоже не дураки сидят. Случаев, когда не хватает 16 регистров можно по пальцам пересчитать.

Цитата(m16 @ Dec 28 2005, 13:18) *
а младшую половину с ее "недостатками"удобно использовать как для хранения переменных так и для сохранения регистров в обработчике прерываний не пользуя для этого раму что я и делаю в своих проектах.

Это второй недостаток, про котоый я упоминал - медленная работа с памятью. Будь она нормальной, однотактовой, все бы прекрасно сохранялось в стеке. И не надо говорить, что это сделать было нельзя. PIC18 - живой пример того, что можно. А ФАПЧ там или на линиях задержки внутренние фазы формируются - это дело пятнадцатое, меня, как пользователя, это колышет в полседнюю очередь. А вот когда обыкновенный инкремент переменной в памяти занимает 2+1+2=5 тактов, из которых 4 - 80% (!) - накладные расходы на пересылку, это, пардон, красотой не назовешь ну никак!
=AK=
Цитата(mse @ Dec 28 2005, 16:54) *
Вот интересно, как же реализовать 8-байтную арифметику без 16 нижних регистров? Например 64Х64(8х8)... 64/64(8/8)? В ОЗУ нырять за операндами? Толково.

А чё, AVR для 8-байтной арифметики, оказывается, предназначен? И задач таких кругом немеряно, чтоб именно 8-битником это щелкать? Тады звиняйте, не знал... Я-то грешным делом думал, что "всякому овощу свой фрукт" (с), и сапоги должон тачать сапожник...

А если серьёзно, то такой перевес в сторону числомолотилки должен засчитывться не как достоинство, а как недостаток. Бо ежели некоем создании какой-то орган переразвит - это не красота, а уродство, имхо. Гармония должна быть.
Rst7
Цитата(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;
}

Нормально живет.
m16
Цитата(dxp @ Dec 28 2005, 10:58) *
Смею Вас заверить, что в IAR'е тоже не дураки сидят. Случаев, когда не хватает 16 регистров можно по пальцам пересчитать................

.................А вот когда обыкновенный инкремент переменной в памяти занимает 2+1+2=5 тактов, из которых 4 - 80% (!) - накладные расходы на пересылку, это, пардон, красотой не назовешь ну никак!

16-ть регистров хватает с головой а вот переменную засунуть в свободный и огулять ее инкрементом за один такт гордость за IAR не позволяет. дык эту "красоту" Вам иар и устраивает ведь его не дураки писали


=AK=
Цитата
А чё, AVR для 8-байтной арифметики, оказывается, предназначен? И задач таких кругом немеряно, чтоб именно 8-битником это щелкать? Тады звиняйте, не знал... Я-то грешным делом думал, что "всякому овощу свой фрукт" (с), и сапоги должон тачать сапожник...

вот нужно мне было в 2313 64-битную замутить. ресурсов хватало тк вычислений не много было . или мне нуно было сразу арм за хобот брать дабы 2к во флеш залить???
вообщем коллеги дискуссия приобретает не профессиональный характер. лично я умываю руки и в ""этом "" процессе боле не учавствую
=AK=
Цитата(Rst7 @ Dec 28 2005, 17:45) *
О да, пик - суперпроцессор.

Это чё-то из серии "ежли вы обижаете лордов нам - мы вам тоже написаем в щи" (с). Детский сад какой-то, право-слово... wink.gif

Про ПИКи особо и речи-то не было. В треде только я их упоминал, и то всего лишь как еще более говеную чем АВР архитектуру. Вы хоть в курсе истории мелкопроцессоров, и знаете ли как ПИК расшифровывается? Периферийный Интерфейсный Контроллер, только-то и всего.

А ежели в AVR какашками кидать, то, помимо упомянутых выше недостатков, отмечу еще один. Это RISC процессор. Сама идея РИСК-ов изначально довольно гнилая. Поскольку всем РИСК-ам присущи такие недостатки:
1) Программная память расходуется неэффективно.
2) Как следствие, доступ к программной памяти является узким местом.
Rst7
Цитата(=AK= @ Dec 28 2005, 10:29) *
Цитата(Rst7 @ Dec 28 2005, 17:45) *

О да, пик - суперпроцессор.

Это чё-то из серии "ежли вы обижаете лордов нам - мы вам тоже написаем в щи" (с). Детский сад какой-то, право-слово... wink.gif

Про ПИКи особо и речи-то не было. В треде только я их упоминал, и то всего лишь как еще более говеную чем АВР архитектуру. Вы хоть в курсе истории мелкопроцессоров, и знаете ли как ПИК расшифровывается? Периферийный Интерфейсный Контроллер, только-то и всего.


Мне кажется слово еще более говеную прозвучало только сейчас. А я уж было подумал, что Вы сторонник... smile.gif Я не хотел тут разводить по поводу того "какой проц лучше" и т.д. Просто так прозвучал Ваш пост "А вот на ПИК18 ....". Еще раз не хотел.

Флейм мы тут действительно развели. Хотя сама постановка вопроса (первый пост) к этому и вела.
Можно резюмировать.

1. На С++ не писать, писать на С
2. Глобальных переменных поменьше
3. Все грузить в регистры, потом сливать обратно
4. А вот если Atmel еще и комманды добавит - все будет нормально.

Я думаю, можно закрывать тему или перемещаться в тему класса "Что лучше", если охота побазарить дальше.
mse
Цитата
А чё, AVR для 8-байтной арифметики, оказывается, предназначен? И задач таких кругом немеряно, чтоб именно 8-битником это щелкать? Тады звиняйте, не знал...

А почему бы и нет? ;О) У меня, например, встречается, ну не сказать, чтобы немеряно, но, как назло, в самых быстрых местах. А уж 32бит, так почитай везде. Имею право! Мона, конешно САМ или ЛПЦ поставить, даже по деньгам ничё, дык, ведь, он пол-платы съёст и пол-питания. ИМХО, если регистры "лишние", то их можно просто не пользовать, а если нехватает, то ниоткуда не возьмёшь.
В конце концов, критические переменные, из серии
Цитата
инкремент переменной в памяти занимает 2+1+2=5 тактов

можно легко хранить в регистре. И инкрементировать за 1 такт. Критические по доступу флаги - аналогично.
Единственно необъяснимая кривизна АВРа, которая не может быть оправдана, это бит- и порт-мап. Это пестня!!! ;О) Мужики оттянулись за всё. Генераторы и вообще узел синхронизаццыи, тоже атас. МСП здесь руль, бесспорно. Хотя терпимо.
А всё остальное - это фичи. Кому-то по душе, кому-то нет. Но появились они неспроста, бо, опять повторюсь, соблюсти все приличия по производственно-коммерческим причинам - невозможно. Мы ведь тоже не делаем всё на 6-слойках, в конце концов. И девайсы наши не всегда от пальчиковой бабарейки 10 лет двигателем управляют. И ведь неспроста-же. Каждый моет сказать немало в своё оправдание. ;О) Прально замечено
Цитата
"всякому овощу свой фрукт" (с)
;О) Не нравицца - не ешь!!!
IgorKossak
Похоже, что дискуссия достигла насыщения.
Повторяться стали.
Закрываю.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.