Цитата(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 для радиолюбительских поделок, а не для серьезных промышленных (в том числе) изделий. Нормальный МК, достаточно поизводительный, достаточно простой и прозрачный, с достаточно богатой периферией, достаточно надежный. По крайней мере, почти по всем основным характеристикам не уступающий своим одноклассникам. Вполне достойное семейство для любых ембеддед применений.