По поводу ARM полностью согласен :)
(«Телесистемы»: «Конференция «Микроконтроллеры и их применение»»)

миниатюрный аудио-видеорекордер mAVR

Отправлено Oldring 04 мая 2003 г. 11:38
В ответ на: Это дело вкуса отправлено BLACKEAGLE 03 мая 2003 г. 23:44

Кстати, Thumb - хороший пример, как малой кровью дать возможность программисту выбирать, когда ему нужно выжимать максимум производительности, а когда - минимальный объем кода.

По поводу AVR не согласен.

Конечно, можно сэкономить SBIW, но вот сделать вместо него EORI - затруднительно. Каждая такая команда, вроде SUBI, отжирает сразу 4096 из 65536 доступных кодов операции - проще говоря, для нее должна быть выделена уникальная старшая тетрада кода операции. Таких свободных тетрад больше не осталось, так что чем-то пришлось пожертвовать. EORI - не самый худший выбор.

Можно, конечно, было сделать смещение в LDD со знаком. За счет меньшего диапазона. Только я, например, довольно много писал на ассемблере AVR, и ни разу мне реально не понадобились отрицательные смещения в LDD. Отрицательные смещения могут понадобиться только при итерации сложной таблицы с конца, но в этом случае всегда можно декрементировать указатель перед обращением к строке таблицы.

В общем, мне система команд AVR нравится. То, что при работе с ней не возникает впечатление непродуманности - это совершенно определенно. Единственное, что мне реально нехватало - это команды копирования IO битов в T, например, и обратно. Возможно, это опять-таки связано с ограниченностью доступных кодов операции.

Некоторое время назад посмотрел внимательно на MSP, подумав о применении его для одного проекта - и понял, что при 3.3 В из 8 МГц ATMega я выжимаю большую производителность. Конечно, речь шла об эффективности критичного цикла прежде всего для некоторой коммуникационной задачи - и тем не менее. Ну, не понравилось мне очень сильно, что только операции типа регистр-регистр и операции с некоторыми константами (0, 1, 2, 4, 8, 0xffff) выполняются за 1 такт. push Rn занимает 3 такта, call по абсолютному адресу - 5. Безусловный переход по абсолютному адресу - 3 такта. Ret - те же 3 такта. РОН в итоге - только 12 штук, хоть и 16 битных. И толку-то, что в системе команд есть куча сложных редко используемых режимов адресации.

Впрочем, если писать только на С, система команд и производительность никому не интересны :)

Нет уж, MSP рядом с ARM и близко не валялся - идеология совершенно разная, и я не понимаю, как MSP при этом можно называть младшим братом ARM. С AVR, конечно, сравнивать можно - но для моей задачи при сравнении AVR некоторое время назад оказался лучше. Быстрее он с байтовыми данными управляется :).

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

Ответы



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

E-mail: info@telesys.ru