Программирование микропроцессорных систем в интегрированной среде программирования keil-c: Методические указания к лабораторным работам, страница 15

for(;;);

или строкой:

while(1){ }

3.4. Описание примера программы зажигания светодиодов

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

В этой программе, построенной по одномодульному принципу используется одна единственная подпрограмма с именем main в которой выполняются все необходимые действия. Имя подпрограммы определяется языком программирования C, который после предварительной инициализации переменных всегда передаёт управление подпрограмме с именем main.

По заданию на лабораторную работу необходимо просто зажечь указанные светодиоды, поэтому команды, выполняющие эти действия должны отработать только один раз. Поэтому эти команды помещаются в блок инициализации (до бесконечного цикла). Параллельный порт, к выходам которого подключены светодиоды, расположен на восьмой странице внешней памяти данных (см. описание лабораторного стенда). Для выбора восьмой страницы в регистр DPP при помощи команды присваивания записывается константа 8.

Конкретные номера светодиодов, которые загорятся после команды присваивания переменной SvDiod определяются константой, заносимой в эту переменную. Принципы формирования этой константы описаны выше. В примере программы константа зажигает светодиод с нулевым номером.

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

3.5. Подготовка программы и трансляция исходного текста

Подготовка программы, настройка среды программирования и трансляция программы были подробно изучены в ходе выполнения лабораторных работ № 2, 3 и 4. Получение загрузочного модуля тоже можно посмотреть в методических указаниях к этим лабораторным работам.

3.6. Резидентный загрузчик НЕХ202

Резидентный загрузчик НЕХ202 располагается во Flash-памяти ADuC812. Он обеспечивает начальную инициализацию системы, загрузку программ в hex-формате в память SDK-l.l и передачу им управления.

При включении питания происходит инициализация всех регистров специального назначения их значениями по умолчанию и на ЖКИ выводится надпись «SDK-1.1, 2001 ©LMT Ltd». Одновременно на звуковой излучатель выдается короткий сигнал.

После процедуры инициализации системы последовательный канал настраивается в режим 9600 бит/сек, 8 бит данных, 1 стоп-бит, нет контроля четности и в него выдается строчка «НЕХ202-ХХ», где XX — номер версии загрузчика. Далее с интервалом примерно в 200мс выдается символ ‘.’ и ожидается ответ программы-загрузчика, запускаемой на компьютере. После успешной загрузки программы управление передаётся этой программе.

Все передаваемые из лабораторного стенда символы можно наблюдать в терминальном режиме загрузчика T167.exe.

3.7. Загрузка программ в лабораторный стенд SDK-1.1

Для облегчения работы с загрузчиком в директории проекта создан пакетный файл RUN_T167.BAT. Этот файл выполняет все необходимые действия по загрузке исполняемого модуля во внутреннюю память лабораторного стенда SDK-1.1.

При выполнении этого командного файла в конец загрузочного файла, который обязательно должен быть в hex-формате, дописывается строка, обеспечивающая запуск программы с адреса 2100h. Затем открывается последовательный порт компьютера и настраивается для работы в 8-ми битном режиме работы на скорости обмена 9600 бит/с и загружается полученный в предыдущем пункте загрузочный файл во внешнюю память лабораторного стенда. Последнее, что выполняет командный файл RUN_T167.BAT – это переводит программу T167.exe в терминальный режим, в котором отображает на экране компьютера всю информацию, получаемую от лабораторного стенда по последовательному порту.

Для выхода из терминального режима загрузчика нужно нажать на кнопку клавиатуры компьютера ‘Esc’.

Для выхода из программы загрузчика достаточно набрать строку ‘bye’.