Разработка программы для микроконтроллера

Основные этапы разработки ПО и его загрузки в стенд SDK-1.1, исключая разработку алгоритмов решения задачи, таковы (см. Рисунок 2)

· создание файлов с исходным текстом программы на выбранном языке программирования;

· трансляция исходного кода в объектный код, сборка в один объектный файл;

· приведение исполняемого кода к виду, пригодному для передачи в стенд SDK-1.1;

· загрузка его в память стенда по инструментальному каналу и передача управления на начало прикладной программы.

Написание программы для стенда производилось в среде Keil Visio. В основе данной среды лежит язык C 51.

В состав инструментальных средств для процессоров с ядром АРМ7 входит:

. Интегрированная среда разработки uVision;

. Компилятор языка C;

. Ассемблер;

. Симулятор - отладчик;

. Линкер;

. Библиотекарь;

. Комплект компиляторов с лицензией GNU.

Рассмотрим подробнее процесс работы в среде uVision;

Рисунок 18. Схема средств разработки, входящих в состав пакета Keil Software

Создание нового проекта

После создания программного проекта в интегрированной среде программирования keil-c конечным файлом трансляции является абсолютный файл. Для загрузки в микросхему обычно используется HEX файл. Для создания этого файла необходимо включить соответствующую опцию в свойствах программного проекта.

При написании программ для лабораторного стенда SDK-11 нужно учитывать такую особенность разработки программы, что программа должна находиться во внешней памяти программ. Поэтому начальный адрес памяти программ необходимо установить за пределами внутренней памяти программ, т.е. 0x2000. Начальный адрес внешней памяти данных можно установить, начиная с половины страницы, т.е. с адреса 0x8000.

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

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

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

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

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

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

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

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

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

Описание основной части кода программы для микроконтроллера

Минимальная программа, не выполняющая никаких действий, для микроконтроллера выглядит следующим образом:

#include <ADuC812.h>main(void)

{

}

Возьмем данный код за основу нашего приложения и добавим в него необходимые функции.

Инициализация АЦП, таймеров и UART будет выполнена один раз, поэтому она не будет входить в основной цикл программы, а будет расположена сразу перед ним:

//-------Инициализация UART-----------= 0xFD; // Скорость 9600 бит/с= 0x20;// Таймер 1 в режиме autoreload= 0x40;// Запуск таймера 1= 0x50;// 8 bit UART, разрешение приема&= 0x7F;// Отключение удвоения скорости= 1; // Флаги UART

Перейти на страницу: 1 2

Похожые стьтьи по экономике

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

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

Изучение проблемы трудоустройства студентов и молодых специалистов
Антенна-устройство для излучения и/или приема электромагнитных волн путем прямого преобразования электрического тока в излучение (при передаче) или излучения в электрический ток (при при ...

Разделы

© 2019 - www.frontinformatics.ru