[an error occurred while processing this directive] [an error occurred while processing this directive]
Хотя я согласен с тем, что сейчас удобнее начинать с AVR'ов, а не PIC'ов (если писать на ассемблере), но ортогональность системы команд PIC'a на порядок лучше, чем у AVR (+)
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)
[an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive]

Отправлено Boris Barbaris 17 сентября 2001 г. 11:57
В ответ на: Ответ: Начинаюшие, отправлено Yuriy 16 сентября 2001 г. 21:03

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

У AVR управление портами ввода/вывода производится отдельными специфическими командами, причем для половины портов часть (очень нужных команд) недоступна; управление регистрами - другими командами; управление ОЗУ - третьими. Архитектурное ограничение на 32 регистра, причем ровно для половины из них невозможно использовать самые актуальные команды для работы с константами, из оставшихся 16 шесть используются совсем уж специфическим образом (под 16-разрядные указатели), что недоступно остальным регистрам. Некоторые команды процессора используют только определенные жестко закрепленные регистры (в частности, R0).

У PIC фактически все ячейки памяти (в пределах доступной в данной момент страницы) являются совершенно равноправными регистрами общего назначения, в том числе и порты ввода-вывода, то есть любую команду из системы команд можно применить к чему угодно. Если у кого есть возражения по поводу вспомогательного регистра W - то это просто вспомогательный регистр (манипуляции им самим по себе, кстати, весьма ограничены), не надо путать его с аккумуляторами в системах команд типа 8-разрядных Моторол или Интелов. Более того, даже при косвенной адресации, доступны все те же самые команды и выполняются за тот же самый 1 такт! (4 тика кварца). Это вообще уникальная особенность среди 8-разрядных процессоров.

Недостаток же PIC'ов (если писать на ассемблере) - мнемоники команд разработал полный отморозок, поэтому, хотя и можно использовать нормальные, например, параллаксовские или Scenix/Ubicom'овские мнемоники, но вся документация и примеры применения в оригинальных мнемониках. Система прерываний у PIC'ов также не выдерживает никакой критики. Слишком мало флешовых камней (в частности, нет 8-ножечных).
Для камней с большим объемом ОЗУ и ПЗУ и то и другое бьется на страницы, с которыми врукопашную работать весьма неудобно. Флешовые PICи в среднем несколько дороже сопоставимых AVR.

Именно из-за этих недостатков я и не советую начинать с PIC.
Из-за указанных выше особенностей я бы не посоветовал начинать и с AVR (а также из-за их прожорливости на частотах < 1 МГц).
Лучше всего было бы начать с PDP-11, но они уже, увы, канули в лету.
В принципе, очень хороший вариант для писанины на ассемблере MSP-430 от Texas Instruments (кстати, 16-разрядные, а по цене не дороже 8-разрядных), но там тоже есть недостатки. Флешовые камни только 3-вольтовые, несколько неторопливые, слабая нагрузочная способность по портам ввода-вывода, номенклатура пока что довольно узкая (по сравнению с PIC и AVR), торгуют в Москве (да наверное и всей России) ими только две фирмы. Но есть и свои очень вкусные вкусности.

Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru