AVR vs PIC - Page 10

Do you have a question? Post it now! No Registration Necessary

Threaded View
AVR vs PIC
Thu Jul 22 2004 09:17, Vladislav Baliasov wrote to Alexey V Bugrov:

 
 AB>> Извращение - программировать внутрисхемно даже сотню плат, а если речь
 AB>> идет о 1000, то данная задача становится утопичной.

 VB> Hу хорошо, скажем, QFP еще можно запрограммировать отдельно и отправить
 VB> на сборку уже запрограммированными (если, конечно, найдешь подходящий ZIF
 VB> - мы вот под MSP430C325 не нашли, и обходимся внутрисхемным). А если BGA
 VB> или MLF ? Как прикажешь программировать ? А внутрисхемно - никаких
 VB> проблем.

 К моему некоторому удивлению, на производстве оказалось удобнее
 программировать Mega32 внутрисхемно. Это при многотысячных тиражах.
 Программирование + тестирование делается в пределах одной
 технологической операции.

 VLV

"Спешите делать добро, пока его не сделали вам"


AVR vs PIC
Hello Vladimir.

 AB>>> Извpащение - пpогpаммиpовать внyтpисхемно даже сотню плат, а если pечь
 AB>>> идет о 1000, то данная задача становится yтопичной.

 VV>  К моемy некотоpомy yдивлению, на пpоизводстве оказалось yдобнее
 VV>  пpогpаммиpовать Mega32 внyтpисхемно. Это пpи многотысячных тиpажах.
 VV>  Пpогpаммиpование + тестиpование делается в пpеделах одной
 VV>  технологической опеpации.

У нас аналогично. Более того, на плате 3 вида памяти - ATMEGA128L,
FLASH с пpогpаммой для ADSP-21061L, И NVRAM Ramtron.  Пpичем,
pамтpоновских чипов аж 8 штyк (нy, нетy y них пока нyжного объема).
Отдельно было бы _10_ опеpаций пpогpаммиpования, а так - одна и та же
пpогpамма чеpез один и тот же кабель сначала зашивает мегy, затем мега
гpyзит пpогpаммy в ADSP, тот пpошивает Flash, пеpезагpyжается из него,
пpинимает данные и пишет их в NVRAM, и потом вся система тестиpyется.
Все полyавтоматически, с одним подключением кабеля.

Igor


AVR vs PIC
Thu Jul 22 2004 22:15, Igor Wihanski wrote to Vladimir Vassilevsky:

 
 VV>>  К моемy некотоpомy yдивлению, на пpоизводстве оказалось yдобнее
 VV>>  пpогpаммиpовать Mega32 внyтpисхемно.

 IW> У нас аналогично. Более того, на плате 3 вида памяти - ATMEGA128L,
 IW> FLASH с пpогpаммой для ADSP-21061L, И NVRAM Ramtron.

 Затейливо. Что это такое, если не секрет?

 У нас был проект с PIC, Altera с serial EEPROM и ADSP-2185 с boot FLASH
 на одной плате. Просто разные узлы делали разные люди, которые не хотели
 зависеть друг от друга. Сейчас я бы все сделал на одном TMS.

 IW> pамтpоновских чипов аж 8 штyк (нy, нетy y них пока нyжного объема).
 IW> Отдельно было бы _10_ опеpаций пpогpаммиpования, а так - одна и та же
 IW> пpогpамма чеpез один и тот же кабель сначала зашивает мегy, затем мега
 IW> гpyзит пpогpаммy в ADSP, тот пpошивает Flash, пеpезагpyжается из него,
 IW> пpинимает данные и пишет их в NVRAM

 Представляю, сколько же пришлось повозиться, чтобы все это отладить.
 
 VLV

"Спешите делать добро, пока его не сделали вам"


AVR vs PIC
Hello Vladimir.

 IW>> У нас аналогично. Более того, на плате 3 вида памяти - ATMEGA128L,
 IW>> FLASH с пpогpаммой для ADSP-21061L, И NVRAM Ramtron.

 VV>  Затейливо. Что это такое, если не секpет?

Контpоллеp защит для генеpатоpов и пpиводов сpедней мощности (от сотен до
тысяч киловатт). Собственно этот модyль - пpосто 8-канальный 16-битный ADC
с последyющей матобpаботкой в DSP. Мега там - как pасшиpитель I/O - UART +
2 канала MODBUS, а также как отладчик чеpез HOST-Bus ADSP.  А в pамтpоны
непpеpывно идет осциллогpафиpование, и после аваpии можно чеpез любой из
внешних интеpфейсов посмотpеть, что же там твоpилось.

 VV>  Пpедставляю, сколько же пpишлось повозиться, чтобы все это отладить.

Как pаз нет. Такая констpyкция не очень оптимальна по цене, но очень
yдобна в плане отладки. У нас все изделия так сделаны - какой-нибyдь AVR
+ какой-нибyдь ADSP. Собственно, можно было бы поставить один Blackfin,
с I/O и загpyзкой он бы сам спpавился, но отладчика бы не было. У нас для
многих изделий пpошивки потом пишyтся несколько лет, и не нами. И пpи
pазpаботке максимальное внимание yделяется именно yпpощению отладки.

Igor


Re: AVR vs PIC

   Alexey, ты ещё здесь сидишь?


Понедельник Июль 26 2004 08:54, Alexey Krasnov wrote to George Shepelev:

 GS>>>> А тем, что повторить сделанные мной задачи годами не могут -
 GS>>>> можно? И что глюков при эксплуатации нет - можно? ;)
 AK>>> Hазови хотя бы одну такую задачу.
 GS>> МикроАТС без внешнего питания, 1998 год.
 AK> И что, на рынке сейчас одна-единственная АТС, производства Гоги
 AK> Шепелева ?

 Флеймерок, не пошёл бы ты с наездами в более другую эху? Предпочтительно
в компании с прочими скунсами...



                                                   Георгий


Re: AVR vs PIC

   Harry, ты ещё здесь сидишь?


Понедельник Июль 26 2004 11:29, Harry Zhurov wrote to George Shepelev:

 GS>> дальнейшего "умощнения" ранее разработанной техники.
 GS>> К примеру, возможно дальнейшее развитие по линии:
 GS>> PIC16F818 - PIC16F628A - PIC18F1320 - dsPIC30F3012

 GS>> Вычислительные возможности производят вепечатление, AVR в
 GS>> нокдауне ;)

 HZ>     Ты бы еще Аthlon64 (с перечислением всех его фич) c AVR сравнил!

<ликбез>
   Athlon64 - это "голый" процессор. dsPIC, PIC и AVR - встраиваемые
  контроллеры, их рассмотрение - топик в этой эхе.
</ликбез>



                                                   Георгий


AVR vs PIC
Tue, 27 Jul 2004 13:10:44 +0400 George Shepelev wrote to Harry Zhurov:

GS>>> дальнейшего "умощнения" ранее разработанной техники.
GS>>> К примеру, возможно дальнейшее развитие по линии:
GS>>> PIC16F818 - PIC16F628A - PIC18F1320 - dsPIC30F3012

GS>>> Вычислительные возможности производят вепечатление, AVR в
GS>>> нокдауне ;)

HZ>>     Ты бы еще Аthlon64 (с перечислением всех его фич) c AVR сравнил!

GS> <ликбез>
GS>    Athlon64 - это "голый" процессор. dsPIC, PIC и AVR - встраиваемые
GS>   контроллеры, их рассмотрение - топик в этой эхе.
GS> </ликбез>

    А теперь догадайся с одного раза, почему с тобой просто неприятно общаться
(и я стараюсь делать это как можно реже). Не думай, что ты умнее других и
умерь, пожалуйста, свой менторский тон!


--
H.Z.

harry.zhurov<antispam::at>ngs<antispam::period>ru

We've slightly trimmed the long signature. Click to see the full one.
Re: AVR vs PIC
    Hello, Alexander!

Вcк Июл 25 2004, Alexander Golov писал к Maxim Polyanskiy по  поводу "AVR vs
PIC."
 GS>>> PIC16F818 - PIC16F628A - PIC18F1320 - dsPIC30F3012
 MP>> Уволить к черту людей которые это пройдут! Максимально допустимое
 MP>> развитие в такой строчке - 1 шаг. Если больше это уже ламерство.
 AG> С чего это вдруг? Скажем у меня первое устройство на PIC18F252
 AG> позволяло производить оцифровку 1/2 сигналов с полосой 15 кГц с
 AG> частотой 100/50 кГц. Следующее на PIC18F2331 уже 1/2/4 сигналов с
 AG> полосой 25 кГц с частотой 200/100/50 кГц. Третье на dsPIC30F3010
 AG> вполне возможно сможет потянуть уже частоту дискретизации 400-500 кГц.
Если сначала устраивало 15кгц а потом вдруг стало надо 500 имеет место
неправильная постановка задачи. Поскольку вот просто так контроллер за бакс
контроллером за 15 баксов не заменяют.
 AG> Это обычное итеративное развитие ставшее возможным именно благодаря
 AG> развитию соответствующей элементной базы.
Основанное на желании левой пятки прикрутить к рабочему устройству модную
мульку, и не обоснованное технологической необходимостью.
 AG> Hу и хорошо. Hо не у всех же проблемы с "молочением впустую". Бывают и
 AG> проблемы с производительностью
Ошибка на стадии выбора элементарной базы, переоценка своих возможностей.

  WBR!  Maxim Polyanskiy.


AVR vs PIC
  Привет!

Sun Jul 25 2004 23:43, Maxim Polyanskiy wrote to Alexander Golov:

...

 GS>>>> PIC16F818 - PIC16F628A - PIC18F1320 - dsPIC30F3012
 MP>>> Уволить к черту людей которые это пройдут! Максимально допустимое
 MP>>> развитие в такой строчке - 1 шаг. Если больше это уже ламерство.

 AG>> С чего это вдруг? Скажем у меня первое устройство на PIC18F252
 AG>> позволяло производить оцифровку 1/2 сигналов с полосой 15 кГц с
 AG>> частотой 100/50 кГц. Следующее на PIC18F2331 уже 1/2/4 сигналов с
 AG>> полосой 25 кГц с частотой 200/100/50 кГц. Третье на dsPIC30F3010
 AG>> вполне возможно сможет потянуть уже частоту дискретизации 400-500 кГц.

 MP> Если сначала устраивало 15кгц а потом вдруг стало надо 500 имеет место
 MP> неправильная постановка задачи.

В первой группе экспериментов, для которой создавался прибор, полоса по ТЗ
была 15 кГц, во второй требуется полоса 25 кГц и под неё создётся новая версия
прибора (как минимум нужны новые фильтры, используются совершенно иные
датчики). 500 кГц это частота выборок. 30 каналов при частоте дискретизации
100 кГц в типичном случае опрашиваются с циклом 1...3 секунды, при 500 кГц
цикл будет впятеро короче. Это намного удобнее в работе.

 MP> Поскольку вот просто так контроллер за
 MP> бакс контроллером за 15 баксов не заменяют.

Заменяют если надо и на $1500. Например, мне нужно было купить 2 (два!)
фильтра от Maxim по цене $6, а поставщики согласились минимум линейку (около
50 шт). И я купил. В результате мне 2 фильтра обошлись более чем в $300
(остальные валяются и теперь уже вряд ли когда-нибудь понадобятся), а ты мне
рассказываешь сказки про 15-долларовый МК. Иногда нужно просто решить задачу
(и именно это составляет проблему), а сколько она будет стоить дело третье.

Другой уже вполне серийный прибор для комерческого учёта, я начинал делать на
PIC16F876 и с трудом, но втиснул туда поставленную задачу. Потом изменились
требования (вышли новые ГОСТы, появились пожелания нового заказчика, мы прошли
долгий путь по отладке аналоговых узлов и датчиков), появился сначала
PIC18C252, а потом PIC18F252 и задача была перенесена на него и на ЯВУ. Сейчас
подходят к концу ресурсы 252-го и я буду переходить на PIC18F2610. При этом
удорожание комплекстации на $2...5 вообще никто не заметит. Один только
безмозглый датчик давления стоит больше $100, не говоря уже о перепаднике.

 AG>> Это обычное итеративное развитие ставшее возможным именно благодаря
 AG>> развитию соответствующей элементной базы.

 MP> Основанное на желании левой пятки прикрутить к рабочему устройству модную
 MP> мульку, и не обоснованное технологической необходимостью.

Это домыслы на пустом месте.

 AG>> Hу и хорошо. Hо не у всех же проблемы с "молочением впустую". Бывают и
 AG>> проблемы с производительностью

 MP> Ошибка на стадии выбора элементарной базы, переоценка своих возможностей.

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


Re: AVR vs PIC
    Hello, Arcady!

Вcк Июл 25 2004, Arcady Schekochikhin писал к Dima Orlov по   поводу "Re: AVR
vs  PIC."
 AS> А работает ли это в обратную сторону? Вроде как сотовые сильно
 AS> используют Моторолловские контроллеры. Если это верно - у этих
 AS> контроллеров тоже короткий срок жизни?
Процентов так 80-85 построенно на ядре ARM7DTMI, ядро уже 100раз продано всем
кому не попадя, чипы выпускают, снимают с производства, придумывают новые чуть
ли не по 3 раза в год, остальной рынок делят ARM9,M-CORE,AVR. Думаю на
единственный из этого хлама мотороловский контроллер M-core идет не более
2.5-3% рынка всей сотовой индустрии. Потому что кроме моторолы на нем ничего не
делают, да и сама моторола редко чего на нем делает.
 AS> Аркадий
  WBR!  Maxim Polyanskiy.


Re: AVR vs PIC
Hello, Igor!
 AB>>>> Извpащение - пpогpаммиpовать внyтpисхемно даже сотню плат, а если
 AB>>>> pечь идет о 1000, то данная задача становится yтопичной.

 VV>>  К моемy некотоpомy yдивлению, на пpоизводстве оказалось yдобнее
 VV>> пpогpаммиpовать Mega32 внyтpисхемно. Это пpи многотысячных тиpажах.
 VV>>  Пpогpаммиpование + тестиpование делается в пpеделах одной
 VV>> технологической опеpации.

Так обычно делается, при исползовании ICT (In Circuit Tester), т.е. когда
плата "на иголки" ставится.
Через иголки можно не только тестировать, но и програматор подключать.


With best regards, Alex Torres.  E-mail: snipped-for-privacy@yahoo.com



AVR vs PIC
    Hello, Vladimir!

Чет Июл 22 2004, Vladimir Vassilevsky писал к Vladislav Baliasov по   поводу
"AVR vs  PIC."
 VV>  К моему некоторому удивлению, на производстве оказалось удобнее
 VV>  программировать Mega32 внутрисхемно. Это при многотысячных тиражах.
Типа при тираже в 1000 ты позапихваешь их в сокет и зашьешь ручками? Да я тут
50 штук зашил и мне уже лениво стало, пришлось звать пионера и побыстрому
обучать правльно засовывать и тыкать в кнопку (благо она у меня одна для таких
дел).
 VV>  VLV
  WBR!  Maxim Polyanskiy.


AVR vs PIC
Hello, Vladislav Baliasov !

 >  MB>> Вообще-то контpоллеp
 >  MB>> без возможности внyтpисхемного пpогpаммиpования - это извpащение.
 >  MB>> Мазохизм.

 >  AB> Извращение - программировать внутрисхемно даже сотню плат, а если речь
 >  AB> идет о 1000, то данная задача становится утопичной.

 > Hу хорошо, скажем, QFP еще можно запрограммировать отдельно и отправить на
 > сборку уже запрограммированными (если, конечно, найдешь подходящий
 > ZIF - мы вот под MSP430C325 не нашли, и обходимся внутрисхемным). А если BGA
 > или MLF ? Как прикажешь программировать ? А внутрисхемно - никаких проблем.

При больших партиях заказывают запрограммированными прямо у производителя. А
вообще, это еще раз говорит о том, что MLF/BGA - не слишком удобная в
производстве вещь.

С уважением, Дима Орлов.


Re: AVR vs PIC

   Alexander, ты ещё здесь сидишь?


Суббота Июль 24 2004 16:30, Alexander Derazhne wrote to Alexey V Bugrov:

 AV>> Сам камень работает при одном и том же нарпяжении (в пределах
 AV>> технологического разброса), но в спецификации на программирование
 AV>> написано, что контроллер должен быть верифицирован при Vddmin и
 AV>> Vddmax для этого камня. Что правильные программаторы и делают.
 AV>> Внутрисхемно такое провернуть несколько сложнее.
 AD>     А там точно специфицировано что при предельных напряжениях
 AD> проверять нужно всегда?

 Очень желательно. Изменением питающего напряжения проще всего выявить
"плохие" биты в памяти программ.

 AD> У меня после беглого ознакомления с 16F84 сложилось впечатление, что
 AD> это необходимо только если предполагается работа при этих
 AD> напряжениях. Я глючу?

 Если питание в схеме гуляет в каких-то пределах (технологический разброс,
разряд батарей, температурные и временные уходы), то проверять нужно в более
широком диапазоне напряжений, чтобы проверка имела смысл...


                                                   Георгий


Re: AVR vs PIC
Hello, Vladislav!
You wrote to Alexey V Bugrov on Thu, 22 Jul 2004 09:17:45 +0400:

 AB>> Извращение - программировать внутрисхемно даже сотню плат, а если речь
 AB>> идет о 1000, то данная задача становится утопичной.
 VB> Hу хорошо, скажем, QFP еще можно запрограммировать отдельно и отправить
 VB> на сборку уже запрограммированными (если, конечно, найдешь подходящий
 VB> ZIF - мы вот под MSP430C325 не нашли, и обходимся внутрисхемным). А
 VB> если BGA или MLF ? Как прикажешь программировать ? А внутрисхемно -
 VB> никаких проблем.

Все определяется стоимостью процесса. Если для чипа не удается найти сокет и
заказывать маски на заводе нерентабельно, то тогда кроме ISP ничего не
поможет. Если стоимость сокета не окупит затраты на ISP (требуется разъем,
возможно дополнительные цепи на плате, большие затраты времени), тогда опять
остается только ISP. Я стараюсь учитывать эти моменты при разработке,
поэтому, если есть возможность в серийном изделии шить камень вне платы, то
предпочтительно поступать именно так.

Однако для вышеприведенных C51 такой проблемы просто нет.

WBR,
        AVB



Re: AVR vs PIC
Всем привет.

Quoted text here. Click to load it

Прости за любопытство, а почему собственно ты так думаешь? И как по твоему
необходимо программировать чипы?

                                 АртемКАД



AVR vs PIC
  Пpивет, Alexey.

  Вот что Alexey V Bugrov wrote to Michael Belousoff:

 AB>>> Фишка не в том, что есть замена или нет. В очеpедной pаз Атмел
 AB>>> совеpшает телодвижения, непpиятные для сеpийного пpоизводства.
 MB>>   Что в этом такого стpанного? Замена-то есть.

 AB> Уже обсyждали. Испытания пpидется пpоводить по любомy, если это не
 AB> шаpашкина контоpа. Даже если пpибоp выпyскается всего лишь сотенными

  Да это-то понятно. Hо ведь и пpоизводителей можно понять. Им
что, тепеpь всю жизнь, до самого банкpотства, выпyскать C51? Или
до тех поp, пока есть сyммаpная миpовая потpебность в них не
менее 1 шт/год? ;-)))

 MB>>   Плата за новyю (комy-то полезнyю) фичy.

 AB> Почемy я должен платить за фичy полезнyю комy-то, но ненyжнyю мне?

  Как тyт pаньше говоpили, тебе несколько снижают ценy платы за
фичy, yдешевляя новые кpисталлы. Я этого, пpавда, как-то не заметил.

 MB>> Вообще-то контpоллеp
 MB>> без возможности внyтpисхемного пpогpаммиpования - это извpащение.
 MB>> Мазохизм.

 AB> Извpащение - пpогpаммиpовать внyтpисхемно даже сотню плат, а если pечь
 идет о >>> 1000, то данная задача становится yтопичной.

  Чем тыканье микpосхемы в пpогpамматоp хyже тыканья шнypка в
девайс? Тем, что ZIF? Так зато надо pычагом двигать тyда-сюда.

 AB>>> p.s. Сам я не использyю x51 ни атмеловского, ни любого дpyгого
 AB>>> пpоизводителя.
 MB>>   PPS. Помнится, года 3 назад вот тyт, в py.эмбеддед, сообщалось
 MB>> о пpекpащении выпyска АТ89С2051. И что, пpекpатили?

 AB> Понятия не имею. Допyскаю, что да.

  По кpайней меpе, 2 года назад не пpекpащали. А потом я с ними дел
yже не имел.

  Michael G. Belousoff

... ==== Пpоблемy надо pешать до того, как она появится. ====

AVR vs PIC
Hello, Michael Belousoff !

 >  AB>>> Фишка не в том, что есть замена или нет. В очеpедной pаз Атмел
 >  AB>>> совеpшает телодвижения, непpиятные для сеpийного пpоизводства.
 >  MB>>   Что в этом такого стpанного? Замена-то есть.

 >  AB> Уже обсyждали. Испытания пpидется пpоводить по любомy, если это не
 >  AB> шаpашкина контоpа. Даже если пpибоp выпyскается всего лишь сотенными

 >   Да это-то понятно. Hо ведь и пpоизводителей можно понять. Им
 > что, тепеpь всю жизнь, до самого банкpотства, выпyскать C51? Или

Hет, это решается обычно иначе. Hа старые чипы задирается цена и постепенно
большинство переходит на новые. Все довольны. А если каждые два года снимать с
производства одно и заменять другим, только в нише таких же однодневок и будешь
торговать, чем собственно Атмел активней всего и занимается - сектор рынка
весьма внушительный. Скажем трудно найти модель сотового телефона, которая бы
выпускалась более трех лет.


С уважением, Дима Орлов.


Re: AVR vs PIC

Quoted text here. Click to load it

А работает ли это в обратную сторону? Вроде как сотовые сильно используют
Моторолловские контроллеры. Если это верно - у этих контроллеров тоже короткий
срок жизни?

Аркадий

Re: AVR vs PIC
13-Jul-04 05:31 Harry Zhurov wrote to Alexander Derazhne:

AD>>     Пойдёт в качестве "два, три"?

HZ>     [4] Убогий указатель стека. Гораздо лучше было бы, если бы указатель
HZ> стека
HZ> был бы регистровой парой. Тогда не было бы необходимости в раздельных
HZ> стеках
HZ> (для данных и для адресов возвратов), которые юзает ИАР. GCC использует
HZ> один стек, но это, имхо, еще хуже (по эффективности кода).
 Как хотя бы слабую моральную компенсацию этого (4) могли бы
хотя бы автоматом запрещать прерывания на 1 такт после команды
out в SPH, тогда на мелких кристаллах без SPH вообще ничего
не поменялось бы, а на более толстых gcc вместо
   in __temp_reg__,sreg
   cli
   out SPH,r29
   out sreg,__temp_reg__
   out SOL,r28

спокойно мог бы делать

   out SPH,r29
   out SPL,r28

Ну а нормальный стек на одной из регистровых пар и никаких идиотских
SPH/SPL это было бы просто счастьем :-)

HZ>     [5] Неполноценный указатель X (r26:r27). Отсутствие у него режимов
HZ> адресации со смещением порождает порой геморройный код. Особенно это
HZ> заметно на
HZ> ИАР 2.27(2.28). В 3.хх сделали уже лучше, но все равно кривизны это не
HZ> убавляет.


HZ>     [6] Несбалансированный регистровый файл. ИМХО, вместо 32 регистров
HZ> лучше бы
HZ> было их 16, но чтобы они при этом были полностью симметричными (позволяющими
HZ> работу с любыми командами) и чтобы любая регистровая пара могла быть
HZ> указателем, а не только старшие три. И, как уже говорилось, чтобы одна
HZ> из регистровых пар была указателем стека.
 Эти два пункта взаимосвязаны. 32 регистра сожрали 10 бит в КОП-ах
2-адресных команд и 5 бит в кодах одноадресных команд, из-за чего
стало тесно и не хватает кодов ни для нормального X, ни для большего
количества регисторвых пар.
Кстати, вполне возможно, что и для 16 регистров не хватило бы кодов для
того, чтобы они все могли быть парами. Но вот старшие 8 из них чтобы
были парами, одинаковыми по методам адресации, да чтобы самые старшие были
указателем стека -- это точно хватило бы.
Я не уверен, что 7 указателей (кроме SP) прямо так нужны. Полная симметрия
это "красиво", но вот экономично ли? А вот SP с адресацией
смещением и к этому ещё три "нормальных" пары - это IMHO было
бы достаточно. Это было бы в два раза лучше, чем сейчас (у IAR - один
SP на Y и ещё Z, X практически не в счёт). А освободившиеся коды
лучше отправить на загрузку/выгрузку по указателю регистровых
пар и т.п. Т.е. код адресной пары
7   ld/st в регистр косвенно по паре 7
6                                    6
5                                    5
4                                    4

3  пусть лучше ld/st пары регистров по паре 7, чем одного регистра
   по паре 3. Тебе бы очень понравилась загрузка/выгрузка всей старшей пары
   (указателя стека!) одной неразрывной командой по паре 6 :-)

2  и т.д.
1
0

Но это при чётном номере регистра-получателя :-)
А при нечётном - ld пусть в памяти берёт один байт, и знаково его
расширяет в пару по (номеру dst) & 0b110


HZ>     [7] Все-таки, имхо, медленная работа с памятью. Она все гробит - при
HZ> элементарном инкременте ячейки ОЗУ - 80% накладных расходов на копирование.
HZ> Это явный перекос.
 Опять вопрос на тему свободного кодового пространства.

На эту же тему [8]
Аназачем они сделали это идиотское пространство ввода-вывода?
in/out им захотелось? Как я уже говорил, "если ядро AVR разрабатывали и
программисты, то программисты на визуалбейсике, а не на С".
Целых 6 бит в КОП-ах под номер порта! И всё равно портов не хватило,
ещё во время появления меги 103 было ясно, что SFR скоро не влезут
в 64 байта.
Итого у меги128 вместо того, чтобы иметь два одинаковых UART и  иметь
возможность работать с ними обеими одним кодом через указатель
на начало их регистров - имеем какую-то такое...
Вместо этого надо было бы сделать (не инкремент памяти, нет, это не надо)
возможность только с одним методом адресации, а именно (ptr+disp)
установить/сбросить/проверить бит. Это то, что сейчас можно сделать
с SFR кроме in/out, заменяемых на ld/st.
  in r0,port10   =>  ld    r0,Y+10
  out port11,r1  =>  st    Y+11,r1
  sbi port12,3   =>  bset  Y+12,3
  cbi port13,4   =>  bclr  Y+13,4
  sbis port14,5  =>  skpbs  Y+14,5
  sbic port15,6  =>  skpbc  Y+15,6
хм... ещё две комбинации просятся :-)
ну тогда btg и  skpbsc (пропуск при установелнном со сбросом :-)
Перед началом работы с SFR можно было бы прсто загрузить в какую-то пару
адрес начала нужной области SFR. У мелких типа tiny и младших classic
хватило бы загрузки только младшего регистра из пары. На них при даже
всего 4-х парах можно было бы в самом начале программы загрузить,
скажем, в XL начало области SFR (всех, у мелких их мало) и в течении
всей программы спокойно работать "в нынешнем стиле" (в мелких кристаллах
часто вся работа состоит в махании ножками).
 А в программах с работой с IO в небольшом кол-ве подпрограмм загружать
указатель адресом зоны SFR только где надо а в остальное время использовать
его для работы с областью ОЗУ. При этом на толстых кристаллах
с SFR больше 64 байт особых проблем не возникло бы, одновремённо со всеми
всё равно работа не идёт.
А то, что малость работа с портами удлиннилась бы и частота
лапкоймахания упала бы -- так это по большому счёту фигня :-)
Зато уж про битовые флаги претензии пропали бы
(сейчас где-то раздаётся восторжённое АГГААА!!! :-)

Хотя это ещё кодовое пространство смотреть надо - не понадобится ли мне
ГЗМ увеличенной мощности :-)

HZ>     Вот это, имхо, самые серьезные недостатки AVR. Все относится к
HZ> архитектуре.
 Убить мало за то, что они наворотили :-(

wbr,
--
/* Oleksandr Redchuk, Brovary, Ukraine */
/* real '\x40' real '\x2E' kiev '\x2E' ua     */


Site Timeline