Контроллеры M161, M164, M167, MF167, M168, M269, CS166-104, KA166-104, 167-104, 168-104, 269-104, E167-3UM имеют удобные средства для запуска и отладки программ в реальном времени с подключенными различными внешними устройствами — датчиками, исполнительными устройствами, клавиатурой, дисплеем и т.п. Шинный интерфейс контроллеров CS166, 167-104 позволяет подключать различные модули в стандарте PC/104. CS166 эмулирует портовое пространство PC/104, а 167-104 позволяет подключать 8- и 16-разрядные модули в стандарте PC/104.
Создание встраиваемых приложений на базе данных контроллеров требует специализированных систем разработки программного обеспечения, которые включают в себя интегрированные текстовый редактор, транслятор, линковщик, интерактивный отладчик и программатор. Все это в сочетании с удобным графическим интерфейсом является мощным инструментом в руках разработчика. Разработанная для контроллеров M161, M164, M167, MF167, M168, M269, 167-104, 168-104, 269-104, E167-3UM интегрированная среда разработки (ИСР) RIDE, работающая под управлением операционных систем Windows 95/98/ME/NT, позволяет пользователю объединять файлы исходного текста программы встраиваемого приложения в файл проекта, редактировать исходные тексты программ, транслировать и линковать файлы проекта для получения исполняемого на целевом контроллере модуля. Интегрированный в ИСР RIDE интерактивный отладчик позволяет производить отладку полученного исполняемого модуля непосредственно на целевом контроллере без помощи каких-либо дополнительных аппаратных средств.
Отладка исполняемого модуля производится на целевом контроллере при помощи интерактивного отладчика ИСР RIDE по интерфейсу RS232, который соединяет контроллер и PC-компьютер. Отладчик предоставляет следующие возможности:
- отладки исполняемого модуля на уровне исходного текста или дисассемблированного программного кода;
- пошаговой отладки как основного тела программы, так и процедур обработчиков прерываний;
- отладки с помощью точек останова;
- запуска на выполнение и остановки исполняемого модуля;
- интерактивной отладки внутренних периферийных устройств микроконтроллера
(параллельные порты ввода/вывода, контроллер внешней шины, таймеры,
блоки захвата/сравнения, блок широтно-импульсной модуляции,
аналого-цифровой преобразователь, высокоскоростной синхронный интерфейс,
CAN-интерфейс); - работы с дампом памяти микроконтроллера;
- работы с системным стеком микроконтроллера;
- настройки приоритета загружаемого в память контроллера ядра отладчика при обработке прерываний.
При отладке программы состояние регистров контроллера и его периферийных устройств отображается на экране PC-компьютера, при этом идет реальное выполнение программы на целевом контроллере, на выходах которого можно наблюдать выходные сигналы, устанавливаемые программой, а в регистрах и памяти микроконтроллера — значения сигналов, поступающих с различных внешних устройств, например с датчиков. После окончания разработки и отладки исполняемого модуля, он может быть записан во внешнюю flash-память (EEPROM) с помощью встроенного в ИСР RIDE программатора.
Стоимость ассемблера, отладчика и компилятора C входит в стоимость контроллера, поэтому при покупке контроллера пользователь получает полный комплект программных и аппаратных средств, необходимых для разработки.
Мощная симметричная система команд микроконтроллеров 80С16х, в сочетании с отладкой программ в интерактивном режиме, позволяет существенно сократить срок разработки систем и сосредоточиться разработчику встраиваемых приложений сосредоточиться на решении прикладных задач. Наличие в составе большинства контроллеров скоростных последовательных интерфейсов (RS485, CAN) и специальных команд позволяет разрабатывать распределенные системы реального времени, обладающие высокой надежностью.
ИСР RIDE
RIDE представляет собой интегрированную среду разработки программного обеспечения для контроллеров M161, M164, M167-1, M167-2, MF167, 167-104 и E167-3U на базе микроконтроллеров семейств C16x и ST10x и предназначена для создания и отладки встраиваемых приложений.
Интегрированные подсистемы, входящее в состав ИСР RIDE, позволяют создавать, редактировать и транслировать исходные тексты на языке ассемблера, группировать их в файлы проектов, линковать транслированные файлы в исполняемый модуль в двоичном или шестнадцатеричном форматах, создавать из транслированных файлов библиотеки, запускать и отлаживать программы.
В состав пакета входят следующие программы:
- ИСР RIDE — сочетает в себе возможности создания и управления проектов программного обеспечения и редактирования исходных текстов программ;
- Vasm Assembler — транслирует исходные тексты программ на языке ассемблера в объектные файлы;
- Vlink — линкует объектные файлы и библиотеки в один результирующий модуль, готовый к запуску на микроконтроллере;
- Vlib — создает из объектных файлов библиотеки и управляет ими;
- Интерактивный отладчик — позволяет отлаживать программный код непосредственно на подключенном контроллере;
- R16x Flash Programmer — программатор flash-памяти контроллеров.
Все перечисленные программы объединены в одну удобную и легкую в использовании графическую ИСР, что дает возможность разработчику встраиваемых приложений сосредоточиться на решении прикладных задач.
Установка ИСР RIDE
Установка ИСР RIDE из дистрибутива является простой и стандартной процедурой.
Для установки ИСР RIDE необходимо, чтобы компьютер и установленная на нем операционая система соответствовали следующим минимальным требованиям:
- PC-совместимый компьютер с процессором Pentium, Pentium-II и выше или с другим совместимым процессором;
- операционная система Windows 95/98/ME/NT;
- минимум 16 Мбайт ОЗУ;
- минимум 15 Мбайт свободного дискового пространства.
Запуск ИСР RIDE и создание проекта
Запуск ИСР RIDE производится из меню Пуск (Start) или двойным щелчком на иконке программы.
Для создания проекта приложения необходимо выполнить следующие шаги:
- запустить ИСР RIDE и создать файл проекта;
- создать файлы исходных текстов и добавить их в проект;
- создать необходимые целевые конфигурации проекта и настроить их параметры;
- задать правила трансляции и построения исполняемых модулей целевых конфигураций;
- построить исполняемые модули целевых конфигураций для дальнейшей их отладки и программирования в ПЗУ.
Для создания файла проекта нужно выбрать элемент меню Project — New …. При этом на экран будет выведен стандартный диалог создания нового файла проекта. После создания файла проекта нужно добавить к нему необходимые файлы с исходным текстом программы. Добавление файлов в проект возможно несколькими способами. Выбрав папку в дереве проекта, куда необходимо добавить один или группу файлов, выбирается элемент Add Files to Folder… либо из меню Project , либо из контекстного меню, вызываемого по нажатию правой кнопки мыши в окне проекта Project . Если нужной папки в дереве проекта нет, то ее можно создать либо выбором элемента меню New Folder… из меню Project, либо из контекстного меню.
Создание целевых конфигураций проекта
С помощью различных целевых конфигураций Targets можно создать несколько встраиваемых приложений из одного проекта. Вам может понадобиться одна целевая конфигурация для отладки приложения, а другая — для программирования исполняемого модуля приложения в ПЗУ. Каждая целевая конфигурация имеет свои индивидуальные настройки.
Создание целевых конфигураций производится с помощью диалога Targets, вызываемого выбором элемента Targets… в меню Project или в контекстном меню, вызываемом по нажатию правой кнопки мыши на выделенной вершине дерева проекта окна Project.
Установка активной целевой конфигурации производится требуемой конфигурации выбором из списка в панели инструментов Build.
Помимо использования различных целевых конфигураций, каждый файл в отдельности может иметь свои индивидуальные параметры, причем в каждой целевой конфигурации они могут быть разными. Поэтому каждый файл в дереве проекта имеет соответствующую его параметрам иконку.
После создания необходимых целевых конфигураций можно приступить к их настройке. Для этого сначала нужно сделать активной настраиваемую конфигурацию через панель инструментов Build, а затем нажать либо на иконку в панели инструментов, либо выбрать элемент Settings for ‘Target for Debug’ меню Project или контекстного меню окна проекта. После этого появится диалог с настройками, состоящим из следующих страниц:
- General — настройка общих параметров целевой конфигурации;
- Assembler — настройка параметров для трансляции файлов с исходным текстом;
- Link — настройка параметров для линковки объектных файлов и библиотек;
- Debug — настройка параметров отладчика.
Работа с отладчиком
После успешного старта отладчика на экране появляются окна отладки файлов с исходным текстом программы с установленным счетчиком команд PC$ в точку старта программы, а в окне проекта Project появляется окно дерева основных регистров Project — Regs: регистров общего назначения и системных регистров.
Окно регистров
Данное окно позволяет пользователю следить за изменением содержимого основных регистров во время отладки программы и редактировать их содержимое при необходимости. Используемые в окне регистры:
Регистры Общего Назначения:
- 16-разрядные GPR16 — R0…R15;
- 8-разрядные GPR8 — RL0…RL7, RH0…RH7;
Системные регистры:
- регистр банка регистров общего назначения CP;
- регистр указателя вершины стека SP;
- регистры границ стека STKOV и STKUN;
- регистры умножения MDH и MDL;
- регистры номеров страниц памяти DPP0. DPP3;
- регистр состояния микроконтроллера PSW и его биты;
- текущее значение счетчика команд PC$, являющееся полным 24-битовым адресом, получаемого из регистров CSP и IP.
Окна отладки
Окна отладки предназначены для отладки программы пользователя на уровне исходных текстов или на уровне дисассемблированного программного кода. Отладка может производиться как с помощью одного из этих отладочных окон, так и с помощью обоих окон одновременно. Окно отладки по исходному тексту используется для отладки программного кода исполняемого модуля только в пределах используемого этим модулем адресного пространства. Окно дисассемблера используется для отладки программного кода не только в пределах адресного пространства программного кода исполняемого модуля, а в пределах всего адресного пространства микроконтроллера. Окна отладки имеют слева специальное поле светло-серого цвета, в котором для строк кода, выделенных темно-серым цветом, могут отображаться в различных комбинациях специальные значки:
Значок | Описание |
---|---|
Данная строка с кодом является текущей, т.е. на нее указывает счетчик команд PC$ | |
красный многоугольник | Данная строка с кодом содержит активную точку останова |
зеленый многоугольник | Данная строка с кодом содержит запрещенную точку останова |
Окна отладки по исходному тексту
Окна отладки по исходному тексту предназначены для отладки программы пользователя на уровне исходных текстов и имеют специальную иконку. Количество окон отладки исходного текста и содержащийся в них исходный текст соответствует количеству файлов листинга и их содержимому. Файлы листинга получаются при трансляции файлов с исходным текстом программы проекта по настройкам активной целевой конфигурации.
Окно дисассемблера
Данное окно предназначено для отладки программы пользователя на уровне дисассемблированного программного кода и имеет специальную иконку. В ИСР RIDE используется только одно окно дисассемблера. Работа с данным окном аналогична работе с окнами отладки по исходному тексту.
Окно памяти
Окно памяти предназначено для отображения содержимого дампа памяти контроллера, начиная с указанного адреса. В ИСР RIDE можно одновременно работать с двумя окнами дампа памяти. Для отображения окна памяти необходимо либо выбрать соответствующий элемент меню View — Memory 1 для первого окна или View — Memory 2 — для второго, либо выбрать иконку для первого окна или — для второго на панели инструментов. Окно дампа памяти может отображать данные в различных форматах и режимах.
Окно переменных
Для просмотра и редактирования переменных программы используется окно Watch. Для вызова этого окна нужно либо выбрать элемент меню View — Watch, либо выбрать иконку на панели инструментов.В окне переменных отображется следующая информация:
- — Name — имя переменной;
- — Address — адрес переменной;
- — Data — значение переменной. В случае если переменная имеет размер больше одного байта, то они отображаются слева направо, начиная с младшего.
Окно стека
Для работы со стеком предназначено специальное окно Stack. Для вызова этого окна необходимо либо выбрать элемент меню View — Stack, либо выбрать иконку на панели инструментов. Данное окно является очень удобным и незаменимым средством для контроля передаваемых аргументов при вызове подпрограмм и возврата из них, корректировки этих значений. Также это окно позволяет изменять параметры стека: указатель вершины и границы для генерации прерываний стека.
Точки останова и пошаговая отладка
Пошаговая отладка предназначена для контроля выполнения инструкций программы с остановкой после каждой инструкции и выполнения необходимых корректирующих действий. В ИСР RIDE реализованы следующие команды пошагового выполнения программы:
Иконка | Команда | Описание |
---|---|---|
Step into | Выполнение одной инструкции с заходом в подпрограмму в случае если выполняемая инструкция является инструкцией вызова подпрограммы. | |
Step over | Выполнение одной инструкции без захода в подпрограмму. В случае если инструкция является инструкцией вызова подпрограммы, то подпрограмма выполняется целиком. | |
Step out | Выполнение программы до первой инструкции возврата из подпрограммы — ret, reti, retp, rets. | |
Run to cursor | Выполнение программы пользователя до инструкции выделенной курсором в текущем окне отладки. |
Выполнение команд пошаговой отладки осуществляется либо выбором соответствующего элемента меню Debug, либо выбором соответствующей иконки панели инструментов.
Точки останова предназначены для остановки выполнения программы на указанных инструкциях до их выполнения. В ИСР RIDE реализованы следующие команды по работе с точками останова и пошаговой отладке:
Иконка | Команда | Описание |
---|---|---|
Insert/Remove breakpoint | Установка/удаление точки останова в позиции курсора | |
Remove all breakpoints | Удалить все точки останова | |
Enable/Disable breakpoint | Разрешить/запретить точку останова в позиции курсора | |
Enable/Disable all breakpoints | Разрешить/запретить все точки останова | |
Go | Производит запуск программы на выполнение | |
Stop execution | Производит остановку выполнения пользовательской программы |
При работе с точками останова необходимо сначала установить их в нужные позиции программы, указать при необходимости значения счетчиков, если они больше 1, а затем выполнить команду Go, запустив программу на исполнение. После этого, если выполнение программы дойдет до одной из точек останова, то произойдет остановка выполнения, а счетчик команд будет установлен в той строке кода соответствующего окна отладки, в которой установлена достигнутая точка останова. В случае, если достигнутая точка останова имеет значение счетчика больше 1, то это значение будет уменьшено на 1, а вместо остановки будет продолжено выполнение.
Если необходимо, то можно в любой момент времени остановить выполнение программы, выполнив команду Stop Execution. При этом счетчик команд будет установлен в том месте программы, где ее остановили.
Счетчик команд
Счетчик команд представляет собой адрес текущей выполняемой инструкции микроконтроллера. В ИСР RIDE реализованы некоторые команды для управления положением счетчика команд во время отладки программы. Команды управления счетчиком команд:
Иконка | Команда | Описание |
---|---|---|
Set PC$ to cursor | Устанавливает счетчик команд на инструкцию в позиции курсора активного окна отладки. | |
Show PC$ | Делает активным окно отладки со строку кода, на которой находится счетчик команд. |
Помимо этих команд можно установить счетчик команд по нужному адресу. Делается это при помощи окна Project — Regs, устанавливая необходимое значение счетчика команд в элементе PC$ дерева регистров.
Особенности отладки прерываний
Ядро отладчика имеет настраиваемый пользователем приоритет, используемый при обработке прерываний. Значение приоритета складывается из двух полей — ILVL и GLVL. По умолчанию их значения равны 7 и 0 соответственно. Для изменения приоритета во время отладки необходимо установить требуемые значения полей через диалог Interrupts в регистре S0RIC. На время пошаговой отладки процедур обработки прерываний приоритет ядра отладчика становится равным приоритету соответствующего прерывания. При выходе из процедуры обработки прерывания приоритет ядра отладчика восстанавливается.