Программное обеспечение и системы проектирования

Рейтинг пользователей: / 0
ХудшийЛучший 
Цифровые устройства - Микропроцессоры
19.10.2009 06:54

Писать программу для микроконтроллера в машинных кодах - весьма скучное и тяжелое замятие. От нескольких десятков до несколь­ких сотен команд можно, конечно, написать и вручную, используя ру­ководств! и таблицы кодов, которые содержатся в технических описаниях радиоэлементов. Исправление ошибки пли внесение из­менения требуют значительных затрат времени на реорганизацию исполняемого кода. Но такого рода задача хорошо поддается компь­ютерной обработке. Теоретически любой компьютер пли микро-ЭВМ можно приспособить для подготовки машинного кода, предназначен­ного для любого другого микропроцессора или микроконтроллера.

Программы, способные выполнять такие задачи, называются ас­семблерами. Вначале подготавливается текст исходной программы, написанный на языке ассемблера. Текст обрабатывается программой-ассемблером, и получается исполняемый модуль (в машинном коде), организованный в байты, которые можно записать в СИ ПЗУ микро­контроллера.

Иногда в этой последовательности действий необходим промежу­точный этап объединение нескольких объектных программ, кото­рые должны быть обработаны линкером, или редактором связен, для получения полноценной «зашивки». Кроме того, существуют про­граммы-дизассемблеры, способные восстанавливать в виде списка мнемоники команд непосредственно из исполняемого кода.

Определенную проблему представляет и тестирование программы: мы слишком далеки от языка Basic, в котором простая команда Run по­зволяет провести испытание без риска «зависания» в случае ошибки.

Чтобы проверить программу микроконтроллера, надо в принципе «зашить» ее в СППЗУ, исполнить, чтобы отметить вероятные анома­лии и ошибки, а затем соответственно изменить исходный текст, пере­ассемблировать, стереть информацию в СНИЗУ и перепрограммиро­вать его новыми данными. Существуют, однако, различные методы, которые позволяют избежать подобных проблем и выиграть время.

Сначала большинство программ-ассемблеров отмечают наиболее грубые ошибки программирования, позволяя исправлять их уже на ранней стадии. В случае если микро-ЭВМ, на которой работает про­грамма-ассемблер, оснащена микропроцессором того же семейства, что и данный микроконтроллер, можно протестировать разработан­ную программу под управлением специальной программы-отладчи­ка, с помощью которой устанавливают более серьезные ошибки, что­бы избежать серьезного «зависания» машины.

К сожалению, в большинстве случаев микропроцессор компьюте­ра отличается от подготовленного к программированию микроконт­роллера. Например, совместимый ПК оснащен 386 или 486 процес­сором, а программа разрабатывается для микроконтроллеров 8051, 68НC11 или PIC. В этом случае следует прибегнуть к помощи про­граммного обеспечения, называемого обычно симулятором или про­граммным эмулятором, которое воспроизводит поведение микрокон­троллера, используя компьютер с процессором любого типа.

Кроме этого, чисто программного подхода, существует и аппарат­ное решение проблемы ~ эмулятор.

Эмулятор устройство, которое подключается к компьютеру, ис­пользуемому для ассемблирования, и имеет специальный кабель с разъемом, который можно вставить вместо СППЗУ или микрокон­троллера в панельку на печатной плате разрабатываемого устройства. При этом исполняемый код содержится во встроенной оперативной памяти эмулятора. Тестируемая система считывает программу имен­но оттуда, словно это обычное СППЗУ, а с помощью ПО системы раз­работки легко осуществить все необходимые изменения в исполняе­мом коде.

Таким образом можно установить неразрывную взаимосвязь меж­ду исходным и исполняемым кодами, что значительно ускоряет про­цесс разработки и отладки и уменьшает количество циклов стирания.

Специальные эмуляторы существуют для большинства микропро­цессоров и микроконтроллеров, но есть и более универсальные моде­ли, способные работать с различными семействами и типами этих радиоэлементов.

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

Построенный в таком случае код не всегда столь же эффективен, как код, полученный при программировании на языке ассемблера. Часто он оказывается более громоздким и обрабатывается медленнее, однако сейчас значительно увеличено быстродействие программ на языках высокого уровня (в частности, на С).