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

Контроллеры 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 из дистрибутива является простой и стандартной процедурой.

Для установки ИСР 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-разрядные GPR16R0…R15;
  • 8-разрядные GPR8RL0…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. Для вызова этого окна нужно либо выбрать элемент меню ViewWatch, либо выбрать иконку на панели инструментов.В окне переменных отображется следующая информация:

  • 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. На время пошаговой отладки процедур обработки прерываний приоритет ядра отладчика становится равным приоритету соответствующего прерывания. При выходе из процедуры обработки прерывания приоритет ядра отладчика восстанавливается.