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

(Руководство разработчика по микроконтроллерам семейства HCS08)

Если в окне 2 мастера, показанном на Рис.3.3, пользователь выбрал язык С и прошел все дальнейшие шаги мастера, то ИСР сгенерирует новый проект и откроет на экране монитора два окна: окно проекта и окно текстового редактора (Рис.3.8).

Рис.3.8. Основная экранная форма для работы с проектом на этапе создания программного кода: 1 — окно проекта, 2 — окно редактора.

Окно проекта показывает файлы, включенные в проект, их состояние и некоторую дополнительную полезную информацию. Детально окно проекта представлено на Рис.3.9.


1 — Меню выбора способа отладки проекта
2 — Колонка отметки файлов с программным кодом
3 — Список файлов проекта
4 — Кнопка всплывающего окна для изменения модели МК или способа отладки проекта
5 — Кнопка всплывающего окна конфигурации проекта
6 — Кнопка для синхронизации даты последней модификации всех файлов проекта
7 — Make — кнопка для запуска компиляции проекта
8 — Debug — кнопка для перехода в режим отладки
9 — Колонка объема программного кода (байты)
10 — Колонка объема кода данных (байты)
11 — Колонка статуса отладки
12 — Общее число файлов проекта
13 — Общий объем программного кода проекта (байты)
14 — Общий объем кода данных проекта (байты)

Рис.3.9. Окно проекта.

Основное поле окна занято структурированным списком файлов, имеющих отношение к проекту (3). Наиболее важные файлы в этом списке:

  • Start08.c — файл кода запуска, автоматически сгенерированный компилятором.
  • Project.prm — файл команд компилятора, который используется для его настройки.
  • Project.map — файл распределения памяти проекта, автоматически генерируется компоновщиком.

Также в этом списке содержатся библиотечные файлы, которые были добавлены в проект в момент его генерации.

Справа в основном поле окна проекта можно увидеть три колонки. В первых двух отражается объем программной памяти, которую занимает машинный код файла (14) и объем памяти данных, которую использует каждый файл (12). В третьей колонке устанавливается маркер о включении файла в отлаживаемый программный код. Общий объем памяти, используемой всеми файлами проекта, показан внизу окна (4) и (5). Пока все эти значения равны 0, но они изменятся после первой сборки проекта.

Вверху окна находятся кнопки управления и настройки проекта, кнопка сборки проекта и начала процесса отладки.

Список (1) позволяет выбрать способ отладки (программный симулятор или внутрисхемная отладка на реальном МК) и тип аппаратного средства отладки. Кнопка (7) позволяет выбрать иную модель МК по отношению к той, которая была выбрана в окне 1 мастера проекта. Такое изменение модели МК «на лету», т.е. после начала написания программного обеспечения позволяет исправить ошибки предварительного этапа проектирования или просто «перенести» проект на более новую модель. Но не стоит забывать о том, что такое изменение может потребовать перенастройки периферийных модулей!

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

Наконец, кнопки Make (9) и Debug (8). При нажатии на кнопку Make начинается процесс сборки проекта (режим Bild), при котором все файлы проекта компилируются и компонуются. Если нажать на кнопку Debug, то произойдет то же самое, но после сборки проекта автоматически запустится программа симуляции или программа отладки. Причем, при отладке приложения на аппаратной платформе, созданный машинный код программы будет автоматически занесен во флэш-ПЗУ МК. Таким образом, ИСР CodeWarrior автоматически выполняет сначала стирание программной памяти, а затем программирует ее.

Для успешной отладки необходимо, чтобы перед началом процесса отладки файл был отмечен, как файл для отладки (11).

В Табл.3.1 приведены расширения файлов, которые поддерживает CodeWarrior.

Таблица3.1. Типы файлов среды CodeWarrior

Расширение файлаОписание
*.absФайл машинных кодов прикладной программы
*.asm
*.A08
*.inc
Файл программного кода на языке ассемблер — исходный текст программы
*.bblФайл управления драйвером программирования флэш-памяти МК
*.bptФайл контрольных точек отладчика
*.c
*.cpp
Файл программного кода на языке С — исходный текст программы
*.cmdКомандный файл отладчика. Этот файл может быть сгенерирован оператором отладки для автоматичсекого многократного воспроизведения некоторой последовательности команд отладки
*.cwwФайл конфигурации малых окон отладчика (компонентов). В этом файле запоминается набор открытых окон, их местоположение и предустановки
*.elfФайл, в котором указаны типы выходных файлов компоновщика, в том числе формат файла загрузочного модуля
*.hЗаголовочный файл
*.hwlВыходной файл отладчика
*.hwcФайл конфигурации отладчика
*.ioФайл программной симуляции входных воздействий
*.pjt
*.ini
Файл конфигурации отладчика
*.lstФайл листинга ассемблера (автоматически генерируется компилятором)
*.makФайл конфигурации для автоматического построения проекта (т.е. для выполнения команды Make)
*.mapФайл распределения памяти проекта. Иногда этот файл называют файлом символьных меток.
*.mcpФайл проекта в среде CodeWarrior
*.memФайл конфигурации памяти МК
*.o
*.obj
Файл объектных кодов, генерируется компилятором или ассемблером
*.prmФайл конфигурации компоновщика
*.recФайл записи последовательности команд отладки.
Используется для многократного воспроизведения начальных действий в процессе отладки приложения
*.regФайл регистров центрального процессора
*.s
*.s19
*.s1
*.sx
Файл абсолютных машинных кодов прикдадной программы.
Используется непосредственно для программирования памяти МК
*.vtlФайл встроенного программного инструмента Visualization tool

Теперь, имея представление о структуре проекта и об окне проекта, давайте изменим файл main.c и создадим первое приложение «Мигающий светодиод».

Для начала, необходимо открыть файл main.c в текстовом редакторе. Чтобы это сделать, следует открыть в окне проекта группу файлов Source и дважды кликнуть правой кнопкой мыши по файлу main.c. Откроется окно текстового редактора (Рис.3.10).


1 — Список заголовочных файлов
2 — Список функций
3 — Список маркеров
4 — Настройки текстового файла в окне редактора
5 — Контроль версии
6 — Путь к файлу
7 — Исходный текст программы

Рис.3.10. Окно текстового редактора.

Окно редактора выглядит достаточно просто, однако обладает развитыми сервисными функциями, такими как подсветка кода, различные настройки форматирования, например для открывающих и закрывающих скобок для оператора switch, форматирование отступов и т.д. К сожалению, нет опции структурирования кода, но эта функция присутствует в окне программы симулятора и отладчика.

Вверху окна редактора можно увидеть 5 кнопок управления: Header files (1), Functions (2), Markers (3), Document settings (4) и Version control (5).

Кнопка Header files показывает список всех файлов проекта с учетом текущего. Этот список обновляется только после очередной сборки проекта. Можно открыть любой файл, просто выбрав его в списке.

Кнопка Functions показывает все функции, объявленные в файле. Это очень полезная функция для навигации по файлу: просто выберите функцию в списке, и начало тела функции будет показано в окне редактора.

С помощью кнопки Markers можно вывести список специальных отметок в программном коде (маркеров), которые не оказывают влияния на компиляцию текста, но позволяют легко находить в тексте отмеченные программистом строки. Число маркеров с разными именами может быть произвольным.

Маркеры могут также добавляться в программный код с помощью директивы #pragma mark. Более подробно это описано в подразделе 4.2.1.

Система контроля версии ПО (CVS) полезна для контроля изменений в программе. Перед использованием ее необходимо активизировать. Для этого необходимо зайти в окно настроек, выбрав пункт меню Edit > Version Control Setting основного меню ИСР. Если CVS включена, то иконка с изображением замка превратится в карандаш.

Теперь, чтобы понять, как работает ИСР, давайте попробуем запустить простую программу. Откройте файл main.c и напишите взамен кода, который уже присутствует в этом файле, программный код, приведенный в Примере 3.1.

Пример 3.1. Мигающий светодиод

// Мигающий светодиод

#include/*Файл,позволяющийвключитьпрерывания*/
#include"derivative.h"/*Файлобъявленийрегистровпериферии*/
#include"hcs08.h"//Этонашфайлсобъявлениями!
voidmain(void)
{
unsignedinttemp;
unsignedcharcounter1;
SOPT1=bBKGDPE;//НастройкарегистраSOPT1,включениевыводаBKGDдляBDM
PTBDD=BIT_6;//Настройка6-гобитапортаBнавывод
counter1=0;
while(1)
{
PTBD_PTBD6=1;//Выключитьсветодиод
for(temp=10000;temp;temp--);//Ожидание
PTBD_PTBD6=0;//Включитьсветодиод
for(temp=10000;temp;temp--);//Ожидание
counter1++;
}
}

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

Рис.3.11. Окно ошибок и предупреждений: 1—ошибки, 2—предупреждения, 3—советы.

Если были обнаружены ошибки, то файл загрузочного модуля (машинный код прикладной программы проекта) создан не будет. Также компилятор показывает предупреждения и советы, если находит сомнительный код. На Рис.3.11 показано окно с ошибками и предупреждениями для нашего примера. В нашем случае был дан только один совет, что условие на строке 12 всегда истинно. Это не важный для рассматриваемого примера совет, поскольку именно такое действие оператора while мы и предусматривали. Вместо оператора while(1) можно использовать оператор for(;;). Принципиально ничего не изменится, но использование оператора for не приведет к появлению совета.

Ошибок не было обнаружено. Был создан файл загрузочного модуля в формате s19 и помещен в папку bin проекта. Теперь, перед запуском симулятора и отладчика, давайте посмотрим на файл настройки компоновщика.

Электронные компоненты Freescale >>>
Подробнее о компании Freescale >>>