BC/NW 2006, №1, (8) : 2.1

 

 

ОТЛАДКА ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ МИКРОКОНТРОЛЛЕРОВ

 

В.В. Борисов, С.В. Малахов

 

(Смоленск, Филиал ГОУВПО «Московский энергетический институт (технический университет)», Россия)

 

 

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

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

Решить данную проблему позволяет отладка проектируемого ПО не на целевом устройстве, а на его программной модели, реализованной на одном из языков высокого уровня (C, Pascal).

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

 Моделирование проектируемого устройства проходит в два этапа: 

1.       Создание и независимая отладка кода, эмулирующего работу подключенного к МК периферийного оборудования, модулей: ЖКИ, FLASH, клавиатуры  и т.д.

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

 

 

Рисунок из файла РисунокМалахов.doc

 

 

 

 

 

Рис 1. Схема отладки устройства на МК

 

Например, для моделирования модуля ЖКИ создается класс CLCD, состоящий из области отображения (стандартное окно вывода текста или таблица), ОЗУ, в котором хранится отображаемая информация и управляющего устройства, разделяющего входной поток на команды управления и данные, которые заносятся в ОЗУ, после чего они появляются в поле отображения. Возможно также добавление обнаружения ошибок ЖКИ.

Использование модели устройства позволяет производить отладку исходного кода программы МК в обычной среде программирования для ПК (например, Microsoft Visual C++), что дает возможность использовать ее широкие отладочные возможности.