Выбрать главу

К недостаткам AVR можно отчасти отнести то, что электрически выводы портов по уровням сигналов являются КМОП-совместимыми: это повышает помехоустойчивость (порог различения низкого-высокого уровня лежит в районе середины питания, а не ближе к нулю, как у х51), но вызывает ряд проблем (вполне, впрочем, решаемых) совместимости с различными стандартными интерфейсами. Не очень логично и построение некоторых команд в области операций с битами. Но в целом архитектура AVR, несомненно, более прогрессивна и если бы в этой отрасли моды менялись так же быстро, как это происходит в области ПК, то AVR имела бы все шансы на первенство.

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

С или ассемблер?

Это вопрос в отношении программирования МК имеет совершенно иной оттенок, нежели идиотские споры "писишников" 1980-х годов (сейчас, правда, давно забытые). Культура программирования МК и ПК различается, как небо и земля. Инженер, работающий с МК, всегда в большей степени электронщик, чем программист: для него программа не самоцель, а средство заставить систему работать. В программах для МК, например, вполне допустимо то, что в случае однозадачной DOS запросто повесит весь компьютер и для "писишников" служит признаком профнепригодности: ожидание события в бесконечном цикле без возможности его прервать. Между тем в системах на МК сам факт, что событие не состоялось, нередко означает неисправность всего устройства, и в таком случае бывает совершенно безразлично, зациклится программа или нет.

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

Если речь идет о программах для простых и малотиражных устройств, где количество строк кода не превышает сотен, а стоимость разработки является определяющей, то ассемблер оказывается целесообразнее, чем С. При этом следует учесть, что инженеру без специальной программистской подготовки, рассуждающему в терминах регистров и ячеек памяти, ассемблер дастся легче, чем С, который с его надуманной нотацией еще требуется специально изучать. Добавим еще, что стоимость IAR Embedded Workbench, наиболее популярной среды программирования на С, находится в диапазоне килобаксов, а ассемблер бесплатен (для некоторых разновидностей МК есть, правда, "опенсорсный" компилятор GCC). Тем не менее, профессиональный подход в области МК все же подразумевает использование С, и стандартных библиотек на этом языке значительно больше, чем на ассемблере. Язык С позволяет легче переходить с одного МК на другой, а программы, содержащие более нескольких тысяч команд, на ассемблере писать и отлаживать настолько тяжело, что тут уже не до компактности кода.

Гни свою линию: ZyXEL P660HTW2

Автор: Кустов,Фёдор

Технология ADSL-доступа в Интернет, несмотря на кажущуюся допотопность и атавистическую привязанность к телефонной меди, отточена так, что, единожды настроив удачно выбранный модем, забываешь обо всем этом хозяйстве на сезоны, а то и годы. Но апгрейд, как и некоторые другие события в жизни, подкрадывается незаметно.

-

все в одном: поддержка всех мыслимых частотных планов и расширений ADSL (Annex A, B, M, L), Ethernet-коммутатор, WiFi-точка доступа с мощной антенной, поддержка IPTV, простая настройка благодаря программе NetFriend, совместимость с сотнями провайдеров