Меню

 Выше След.

Меню

Главное меню CodeMaster++ [ARM] включает в себя следующие подменю:

· Меню Файл
· Меню Редактор
· Меню Просмотр
· Меню Проект
· Меню Отладка
· Меню Конфигурация
· Меню Инструменты
· Меню Сценарии
· Меню Окна
· Меню Справка

Чтобы открыть меню, используйте мышь или комбинацию клавиш Alt+буква, где «буква»—это подчёркнутая буква в названии пункта или команды меню.


Меню Файл

 Выше Пред. След.

Команды меню Файл выполняют действия с файлами разрабатываемого проекта. Если для некоторой команды есть кнопка на панели инструментов, её изображение показано в первом столбце. Если команду меню можно выполнить комбинацией клавиш, эта комбинация показана в меню справа от команды.

Кнопка | Команда | Описание
 | Загрузить программу для отладки | Открывает диалог Загрузить программу/Файл данных. Можно загружать не только коды программы, но и данные в память данных.
 | Перегрузить последнюю программу | Перезагружает последнюю из ранее загруженных программ.
 | Записать файл из памяти процессора | Открывает диалог Записать файл на диск из памяти процессора для записи дисассемблированного текста программы из памяти эмулируемого микроконтроллера в файл.
 | Новый файл | Открывает окно Редактора без загрузки какого-либо файла.
 | Открыть | Открывает диалог Открыть файл. Выбранный здесь файл будет открыт в окне Редактора.
 | Сохранить | Сохраняет файл из активного окна Редактора на диск.
 | Сохранить как | Запрашивает новое имя для файла из активного окна Редактора и сохраняет этот файл с новым именем на диск.
 | Печать | Открывает стандартный диалог Print для принтера, заданного по умолчанию. Можно распечатать весь файл или выделенный блок текста.
 | Свойства | Открывает стандартный диалог Свойства для файла из активного окна.
 | Конфигурационные файлы | Открывает суб–меню для действий с файлами конфигурации.
 | Список примеров | Открывает диалог Примеры со списком проектов и исходных программ.
exit1 | Выход | Закрывает сеанс работы CodeMaster++ [ARM] . Также, можно использовать другие стандартные способы завершения работы приложения Windows (комбинации клавиш Alt+F4 или Alt+X).


Диалог Загрузить программу/Файл данных

Этот диалог предназначен для загрузки файла в указанное адресное пространство эмулируемого микроконтроллера.

Элемент диалога | Описание
Имя файла программы/ данных | Текстовое поле для имени загружаемого файла. Имя можно напечатать, выбрать из списка с кнопочкой, который накапливает имена недавно загруженных файлов программ, или найти на диске, нажав кнопку Обзор.
Обзор | Открывает диалог Загрузить файл программы для отладки.
Формат файла / расширение | Задаёт отладочный формат загружаемого файла по расширению.
Адрес загрузки двоичного файла | Определяет начальный адрес памяти эмулируемого микроконтроллера,в которую будет загружаться двоичный файл. Конечный адрес файла автоматически определяется из размера файла. Файлы всех остальных форматов уже содержат в себе начальный адрес загрузки.
Не сбрасывать символьную информацию при загрузке файла | Определяет условия, когда символьная отладочная информация не сбрасывается при загрузке файла в пространство памяти или пространство кода.

Когда в одной папке с файлом программы находятся прочие файлы, необходимые для отладки программы, например, файлы с символьной информацией и исходные тексты, отладчик CodeMaster++ [ARM] автоматически загружает и их. В случаях, когда файл исходного текста не был найден на его обычном месте, следует указать путь к нему в поле Дополнительные директории поиска файлов исходного текста диалога Опции отладки (через меню Отладка).

Если предстоит использовать CodeMaster++ [ARM] для отладки программ, которые скомпилированы вне CodeMaster++ [ARM] IDE, то эти программы должны содержать информацию, необходимую для отладки по исходному тексту и для символьной отладки. Следует изучить руководство пользователя для используемого Вами компилятора/линкера и сконфигурировать компилятор/линкер. После этого Ваши выходные файлы будут включать отладочную информацию.

CodeMaster++ [ARM] понимает следующие форматы загружаемых файлов:

ELF/DWARF

Этот формат используется большинством современных средств разработки. CodeMaster++ [ARM] поддерживает работу со следующими типами файлов: *.elf (%CM%>), *.axf (Keil) и *.out (IAR Systems) ,

Phyton CMC-ARM MCE format

Этот формат (*.mce) является альтернативным формату *.elf.

Стандартный/ расширенный Intel HEX

Этот формат (*.hex) используется достаточно широко. В HEX-файле содержатся совместно загрузочные адреса и код программы, в формате ASCII. Символьная информация в HEX-файле не содержится, поэтому отладка программ по исходному тексту недоступна.

Двоичный образ

Это двоичный образ области памяти (*.bin). Обычно, файлы этого типа создаются программатором EEPROM, когда он считывает содержимое ПЗУ. Символьная информация в Binary файле не содержится, поэтому отладка программ по исходному тексту недоступна.

При загрузке двоичного файла надо указать начальный адрес загрузки (конечный адрес будет подсчитан автоматически, по размеру файла).


Диалог Открыть файл

Используйте этот диалог, чтобы открыть файл исходного текста в окне Редактора.

Элемент диалога | Описание
Имя файла | Задаёт имя открываемого файла.
Обзор | Открывает диалог Открыть файл для поиска нужного файла на диске. В этом диалоге есть флаг Только чтение.
История открытия | Список ранее открытых файлов.
Не показывать имена несуществующих файлов | Отключает отображение имён файлов, которых уже нет на диске, в списке История открытия.


Диалог Записать файл на диск из памяти процессора

Этот диалог служит для сохранения содержимого памяти в файл на диске. Также можно сохранить текст дисассемблированной программы.

Элемент диалога | Описание
Имя файла | Имя сохраняемого файла. Кнопка Обзор откроет диалог для указания пути к папке, в которую надо сохранить файл.
Обзор | Открывает диалог Выгрузить файл из памяти отладчика.
Начальный адрес | Задаёт начальный адрес области, содержимое которой надо сохранить.
Конечный адрес | Задаёт конечный адрес области, содержимое которой надо сохранить. Содержимое области между начальным и конечным адресом включительно будет сохранено в файл.
Адресное пространство | Тип адресного пространства эмулируемого микроконтроллера, из которого следует сохранить данные или код программы.
Формат сохраняемого файла | Задаёт формат сохраняемого файла.

Поддерживаются следующие форматы файлов:

Стандартный Intel HEX | Файл содержит адреса загрузки и код программы, в виде ASCII текста.
Расширенный Intel HEX | Этот формат такой же, как стандартный формат Intel HEX, но с 32-битными адресами загрузки.
Двоичный | Образ памяти в виде двоичного (исполняемого) файла.
Дисассемблер | Текст дисассемблированной программы. Где возможно, дисассемблер заменяет абсолютные значения символами.
Дамп в виде текста | Двоичный образ участка памяти, записанный в виде текста ASCII (смотрите пример внизу).

Пример дампа ASCII:

C:0000 02 00 03 75 81 30 78 30 76 00 D8 FC 90 00 01 AE ...u.0x0v.+....
C:0010 83 AF 82 90 00 01 12 00 41 60 05 E4 F0 A3 80 F6 ........A`.. .А
C:0020 90                                              .


Конфигурационные файлы

При завершении сеанса работы, CodeMaster++ [ARM] автоматически сохраняет параметры своей конфигурации в нескольких файлах. В начале нового сеанса, он открывает эти ранее сохранённые файлы. Также, в любой момент времени любой из этих файлов можно сохранить или загрузить независимо друг от друга, через меню Файл, командой Конфигурационные файлы. Можно иметь несколько наборов файлов конфигурации, для разных задач отладки, и подгружать их «на ходу».

Когда Вы работаете с проектами, CodeMaster++ [ARM] содержит все необходимые параметры конфигурации в файлах рабочей области и проекта. Когда Вы используете CodeMaster++ [ARM] в роли отладчика для готовых исполняемых программ, CodeMaster++ [ARM] использует следующие два файла вместо файла проекта: Desktop и Option CodeMaster++ [ARM].

· Файл конфигурации экрана (Desktop) содержит значения параметров отображения на экране, расположение, размеры, цвета и шрифты всех специализированных окон отладчика. Расширение этого файла -(.dsk).
· Файл опций (Option) содержит данные о типе микроконтроллера, параметры отладки, точки останова, и т.д.Расширение этого файла -(.opt).

Этим двум файлам можно дать произвольные имена. По окончании работы CodeMaster++ [ARM] сохраняет их в папку, из которой они были загружены, или в которую они были сохранены прошлый раз. Эти два конфигурационных файла могут быть индивидуально загружены или сохранены при помощи команд меню Файл Конфигурационные файлы

Кроме них, CodeMaster++ [ARM] использует ещё два конфигурационных файла:

· Файл Сессии содержит данные о сеансе и указывает, какой файл конфигурации экрана и файл опций следует загрузить в начале следующего сеанса работы (если не используется файл проекта). Этот файл может быть загружен или сохранен при помощи команд Загрузить сессию и Сохранить сессию из субменю команды Конфигурационные файлы. Расширение этого файла -(.ses).
· Файл История содержит все значения, которые Вы вводили в текстовых полях всех диалогов программы CodeMaster++ [ARM].Этот файл невидимый для пользователя, но значения, которые ранее были сохранены в IDE, можно достать из History lists в CodeMaster++ [ARM]. Расширение этого файла -(.hst).


Диалог Примеры

Здесь перечислены проекты примеров, включённые в пакет CodeMaster++ [ARM]. Мы рекомендуем Вам использовать эти примеры для ознакомления с графическим пользовательским интерфейсом(GUI). Примеры поделены на группы. В описании каждого примера есть указание на пакет кросс–средств, использованный для компиляции данного примера.

По умолчанию в CodeMaster++ [ARM] всегда вначале появляется список примеров. Чтобы этот диалог не появлялся при запуске CodeMaster++ [ARM], снимите флаг Показывать этот диалог при запуске.


Подменю История Рабочих Областей

Данное меню доступно по специальной кнопке (стрелка вниз), расположенной справа от кнопки Открыть рабочую область на тулбаре CodeMaster++ [ARM].

Меню содержит список имен файлов рабочих областей (а также путей к ним, если это задано в настройках), которые до этого были загружены пользователем. При выборе пользователем одного из файлов в данном меню, CodeMaster++ [ARM] попытается загрузить его.

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


Диалог Настройки списка истории файлов

Этот диалог устанавливает параметры меню История проектов.

Элемент диалога | Описание
Отображать полный путь к файлам | Когда эта опция включена, в каждой строке меню, кроме имени файла рабочией области, отображается его полный путь. По умолчанию включена.
Отображать сначала имя файла, потом папку | Когда эта опция включена, имя файла располагается в первой колонке, а путь - во второй (иначе наоборот). По умолчанию включена.
Максимальное количество элементов списка | Задает глубину истории (максимальное количество строк в меню). По умолчанию 16.


Меню Редактор

Команды этого меню действуют в отношении активного в данный момент окна Редактора.

Кнопка

Команда

Описание

Откат

Отменяет последнюю операцию редактирования текста в этом окне. Количество шагов, которое охватывает функция отмены действия (Undo), задано в меню Конфигурация в закладке Опции редактора диалога Опции редактора.

Скопировать блок

Копирует выделенный блок в буфер обмена. Формат текста в буфере стандартный, и этот блок доступен другим программам.

Удалить блок

Удаляет выделенный блок и помещает его в буфер обмена.

Вставить блок

Копирует блок из буфера обмена, начиная с курсора.

Если копируемый блок был помещён в буфер обмена из программы CodeMaster++ [ARM], то тип блока не изменится (строчный, вертикальный или потоковый). Блоки из других приложений, будут иметь стандартный потоковый тип.

История клипборда/репозиторий

Открывает диалог История клипборда/репозиторий

Присоединить блок к клипборду

Копирует выделенный блок текста и добавляет его в конец текущего содержимого буфера обмена.

Удалить блок и присоединить к клипборду

Удаляет выделенный блок и добавляет его в конец текущего содержимого буфера обмена.

Поиск текста

Открывает диалог Поиск текста.

Повторить поиск

Повторяет поиск с теми же параметрами, которые были заданы для предыдущего поиска.

Поиск/замена текста

Открывает диалог Поиск/замена текста.

Показать результаты поиска по файлам

Повторно показывает результаты поиска в нескольких файлах в диалоге Результаты поиска по файлам.

Перейти на строку с номером

Открывает диалог Отобразить с новой строки. Исходный текст будет показан, начиная с указанной строки.

Поставить закладку

Устанавливает закладку в тексте.

Восстановить закладку

Открывает диалог Восстановить закладку для местных закладок.

Режим сжатого текста

Переключает Режим сжатого текста .

Параметры режима сжатого текста

Открывает диалог Параметры режима сжатого текста.

Найти пару для скобки/ комментария

Находит парную скобку или метку комментария для скобки или метки в позиции курсора. Если пара найдена, то курсор переместится к ней.

Скобки могут быть: круглыми ( или ), квадратными [ или ] и фигурными { или }. Метки могут быть /* или */.

Восстановить контекст редактирования

Активизирует окно Редактора предыдущего редактирования и устанавливает курсор в место последнего редактирования. Если это окно Редактора было уже закрыто, то CodeMaster++ [ARM] откроет его заново.CodeMaster++ [ARM]

Во время отладки обычно требуются частые переключения между несколькими файлами. Эта команда поможет Вам быстро перейти к месту последнего редактирования.

Скрипты пользователя

Дополнительное меню для доступа к функциям автоматизации редактирования текста.


Диалог Поиск текста

Диалог задаёт параметры поиска текстовой фразы в файлах. Одноимённые параметры в этом диалоге и диалоге Поиск/замена текста эквивалентны. Можно указывать имена файлов с одним или несколькими символами маски. Вместе с именем файла можно указывать путь. Также, можно выполнять поиск сразу в нескольких файлах, используя параметры в панели Поиск в файлах.

Элемент диалога | Описание
Строка для поиска | Задаёт фрагмент текста для поиска (искомую строку).
Учитывать регистр | Включает проверку совпадения регистра букв. По умолчанию выключен.
Только целые слова | Искать только целые слова: строка будет считаться найденной, только если она находится между знаками препинания или разделительными знаками (пробелами, символами табуляции, запятыми, кавычками, и т.д.). По умолчанию выключен.
Использовать выражения | Указывает, что искомая строка является выражением поиска. По умолчанию выключен.
Вся область | Искать во всем файле. По умолчанию включен.
Только выделеный текст | Искать только в выделенном тексте..
С позиции курсора | Искать, начиная с текущей позиции курсора
Во всей области поиска | Искать от начала или конца файла (в зависимости от направления поиска). Включена по умолчанию.
Выполнить поиск в нескольких файлах | Включает поиск в нескольких файлах проекта (смотрите примечания внизу). Если флаг снят, то поиск будет только в активном окне Редактора.
Искать во всех исходных файлах проекта | Искать во всех исходных файлах, включённых в проект.
Искать в файлах зависимостей | Искать во всех исходных файлах, включённых в проект, и всех файлах, от которых исходные файлы зависят явно или неявно. Для языка Си - это заголовочные файлы (*.h).
Маски файлов | Содержит маску или маски имён файлов, в которых выполнять поиск. Если масок несколько, их надо разделить точками с запятой. Чтобы задать длинные имена, принятые в Windows, кавычек ставить не нужно. Пример: *.txt;*.c;c:\prog\*.h. Эта опция и Искать во всех исходных файлах проекта действуют независимо друг от друга: можно искать во всех файлах проекта. И в файлах, чьи имена удовлетворяют заданной маске (маскам).
Искать в поддиректориях | Искать в поддиректориях всех папок, заданных масками и опцией Искать во всех исходных файлах проекта.
Начальный путь | Начать поиск с заданной здесь папки. Эта папка служит общим путём и удобна, когда надо подставить несколько масок следующего вида: c:\prog\text\source\*.txt;c:\prog\text\source\*.doc В таком случае, используйте маски (*.txt;*.doc) и общий путь (c:\prog\text\source).

Примечания

1. Если задан поиск в файле, открытом в окне Редактора, то поиск будет выполнен в буфере окна, а не в файле на диске.
2. Если задан поиск в нескольких файлах, то поиск выполняется во всех исходных файлах проекта и файлах зависимостей в соответствии с деревом, построенным Менеджером проектов в окне Проект. По окончании поиска открывается диалог Результаты поиска по файлам.


Диалог Поиск/замена текста

Диалог задаёт параметры поиска текстовой фразы в файлах. Одноимённые параметры в этом диалоге и диалоге Поиск/замена текста эквивалентны. Можно указывать имена файлов с одним или несколькими символами маски. Вместе с именем файла можно указывать путь. Также, можно выполнять поиск сразу в нескольких файлах, используя параметры в панели Поиск в файлах.

Элемент диалога | Описание
Строка для поиска | Задаёт фрагмент текста для поиска (искомую строку).
Заменить на | Задаёт фрагмент текста, который будет подставлен вместо найденного.
Учитывать регистр | Включает проверку совпадения регистра букв. По умолчанию выключен.
Только целые слова | Искать только целые слова: строка будет считаться найденной, только если она находится между знаками препинания или разделительными знаками (пробелами, символами табуляции, запятыми, кавычками, и т.д.). По умолчанию выключен.
Использовать выражения | Указывает, что искомая строка является выражением поиска. По умолчанию выключен.
Подтверждение замены | Указывает открывать диалог Подтвердите замену для подтверждения замены данного найденного фрагмента текста. Включён по умолчанию.
Вся область | Искать во всем файле. По умолчанию включен.
Только выделеный текст | Искать только в выделенном тексте..
С позиции курсора | Искать, начиная с текущей позиции курсора
Во всей области поиска | Искать от начала или конца файла (в зависимости от направления поиска). Включена по умолчанию.
Выполнить поиск/замену в нескольких файлах | Включает поиск в нескольких файлах проекта (смотрите примечания внизу). Если флаг снят, то поиск будет только в активном окне Редактора.
Искать во всех исходных файлах проекта | Искать во всех исходных файлах, включённых в проект.
Искать в файлах зависимостей | Искать во всех исходных файлах, включённых в проект, и всех файлах, от которых исходные файлы зависят явно или неявно. Для языка Си - это заголовочные файлы (*.h).
Маски файлов | Содержит маску или маски имён файлов, в которых выполнять поиск. Если масок несколько, их надо разделить точками с запятой. Чтобы задать длинные имена, принятые в Windows, кавычек ставить не нужно. Пример: *.txt;*.c;c:\prog\*.h. Эта опция и Искать во всех исходных файлах проекта действуют независимо друг от друга: можно искать во всех файлах проекта. И в файлах, чьи имена удовлетворяют заданной маске (маскам).
Искать в поддиректориях | Искать в поддиректориях всех папок, заданных масками и опцией Искать во всех исходных файлах проекта.
Начальный путь | Начать поиск с заданной здесь папки. Эта папка служит общим путём и удобна, когда надо подставить несколько масок следующего вида: c:\prog\text\source\*.txt;c:\prog\text\source\*.doc В таком случае, используйте маски (*.txt;*.doc) и общий путь (c:\prog\text\source).
Поиск | Заменить первый найденный экземпляр искомой строки.
Заменить все | Заменить все найденные экземпляры искомой строки.

Примечания

1. Если задан поиск в файле, открытом в окне Редактора, то поиск будет выполнен в буфере окна, а не в файле на диске.
2. Если задан поиск в нескольких файлах, то поиск выполняется во всех исходных файлах проекта и файлах зависимостей в соответствии с деревом, построенным Менеджером проектов в окне Проект. По окончании поиска открывается диалог Результаты поиска по файлам.


Диалог Подтвердите замену

Этот диалог запрашивает подтверждения на замену найденного экземпляра искомой строки. Чтобы включить или выключить этот диалог, используйте флаг Подтверждение замены в диалоге Поиск/замена текста.

Кнопка | Функция
Да | Заменить данный экземпляр искомой строки.
Нет | Не заменять. Если процедура была начата кнопкой Заменить все для всех найденных строк в области поиска, то процесс поиска и замены продолжится.
Заменить все | С этого момента, заменять все строки, найденные в этом файле, без запроса на подтверждение.
Отмена | Прекратить процесс поиска и замены.
Пропустить файл | Прекратить поиск в этом файле и перейти к следующему файлу.
Заменить во всех файлах | Заменить все строки, найденные во всех остальных файлах, без запроса на подтверждение.
Помещать курсор на кнопки Да/Нет | При установленном флаге, в каждом запросе на подтверждение замены курсор будет автоматически установлен на кнопку «Да», для облегчения работы.


Диалог Результаты поиска по файлам

Этот диалог отображает результаты поиска в нескольких файлах. Подробнее о поиске в нескольких файлах—в главе Диалог Поиск текста.

Список файлов, в которых найдена строка, содержит все файлы, где была найдена искомая строка: слева—имя файла, а его папка—справа. Строка с текстом непосредственно под этим списком отображает информацию о файле, выделенном в списке. Запись «Файл в памяти» означает, что файл открыт в окне Редактора. Если в этой строке показаны общие данные о файле (по данным файловой системы) то это означает, что данный файл не загружен в память. Панель Строка показывает строку исходного файла, содержащую искомый фрагмент.

Переключатель Сортировать файлы по задаёт способ сортировки. Когда установлен флаг Учитывать директорию, файлы в списке будут рассортированы с учётом их папок.

Кнопка Редактировать открывает выбранный файл в новом окне Редактора и помещает курсор в строку с найденным фрагментом. Найденный фрагмент будет помечен цветом фона. Чтобы проверить, есть ли в этом файле другие экземпляры искомого фрагмента, нажмите Ctrl+R или используйте меню Редактор, команду Повторить поиск.

Кнопка Закрыть закрывает диалог, но при этом результаты поиска не теряются. Чтобы ещё раз открыть этот диалог, используйте кнопку Показать результаты поиска по файлам на панели инструментов редактора, клавиши Shift+F5 или одноимённую команду меню Редактор.


Выражения поиска

Редактор текста поддерживает так называемые «выражения поиска», которые можно использовать для особых текстовых строк. Выражения поиска содержат управляющие символы в искомой текстовой строке:

? Означает один любой символ в этой позиции. Пример: если задать ?ell в качестве искомой строки, то будут найдены слова «bell», «tell», «cell», и т.д.
% Означает начало строки. Символы, следующие за «%» должны начинаться с позиции 1. Пример: %Counter —найти слово «Counter», которое начинается с первой позиции в строке.
$ Конец строки. Символы, предшествующие «$», должны находиться в последних позициях в строке. Пример: Counter$ —найти слово «Counter» в конце строк.
@ Найти непосредственно символ; «@» позволяет задавать управляющие символы, как обычные буквы. Пример: @? –найти знак вопроса.
\xNN Шестнадцатеричное значение символа. Пример: \xA7 —найти символ, шестнадцатеричный код которого равен A7.
+ Неопределённое количество единиц предыдущего символа. Например, если указать 1T+2, то редактор найдёт строки, содержащие «1», следом за которой идёт «2», между которыми находится любое количество букв T.
[c1-c2] Равенство любому символу в интервале от с1 до c2. Пример: [A-Z] означает любую букву от A до Z.
[~c1-c2] Равенство любому символу, не лежащему в интервале от c1 до c2, т.е., от 0 до c1–1 или от c2+1 до 255. Пример: [~A-Z] означает любой символ, кроме букв верхнего регистра.
text1|text2 Символ «|» обозначает логическое «ИЛИ» и редактор будет искать text1 или text2. Пример: LPT|COM|CON —найти «LPT», или «COM», или «CON».

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


Диалоги Закладки

Диалог Закладки

Закладки служит для возврата к помеченной позиции курсора в файле исходного текста. Закладки хранят не только позицию курсора, но и имя файла.

Когда Вы переходите к закладке, а соответствующий исходный файл не открыт в окне Редактора, CodeMaster++ [ARM] откроет его и поместит курсор в помеченную закладкой позицию.

Кнопка Удалить удаляет выделенную закладку из списка.

Закладки хранятся в файле конфигурации, к ним можно вернуться в следующем сеансе работы.


Режим сжатого текста

В режиме сжатого текста (Condensed), в окне отображаются только строки, удовлетворяющие заданному критерию. Всего имеется два критерия:

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

Примеры: (a) задан первый из критериев и фрагмент «counter», результат—будут отображены только строки, в которых есть слово «counter»; (b) задан второй критерий и позиция 4, результат—будут отображены только строки, в которых текст начинается с 4-й позиции.

Режим сжатого текста «собирает вместе» строки с общим признаком. Например, если строго придерживаться правила начинать объявления данных с позиции 2, процедур—с позиции 3, а обработчиков прерываний—с позиции 4, тогда режим сжатого текста будет реально ускорять поиск нужного объявления. Если Вы комментируете определённые места в тексте одинаковой строкой символов и используете режим сжатого текста с заданным фрагментом, то такой стиль помогает легко отыскивать нужные участки текста. В режиме сжатого текста можно перемещать курсор так же, как в обычном режиме.

Как управлять

Критерий отображения строк задаётся в диалоге Параметры режима сжатого текста. Чтобы включить или выключить режим сжатого текста, используйте команду меню Редактор, или кнопку Режим сжатого текста на панели инструментов редактора, или клавишу F11. Чтобы выйти из режима сжатого текста, нажмите Esc. В данном случае, при выходе из этого режима, курсор возвращается назад на своё место, где он находился перед включением этого режима. Чтобы при выходе из режима курсор остался в строке, куда Вы его поместили, пока режим был включён, нажмите Enter или начните редактировать эту строку.


Диалог Параметры режима сжатого текста

Этот диалог управляет параметрами режима сжатого текста в окне Редактора.

Переключатель Отображать строки задаёт один из двух имеющихся критериев:

1. Содержащие текст задаёт отображение строк с фрагментом текста, заданным в текстовом поле. Дополнительно, можно задать проверку регистра букв, поиск только целых слов или использование выражения поиска.

2. В которых текст начинается с позиции задаёт отображение строк, в которых текст (первый символ, не равный пробелу) начинается с позиции, заданной в поле Позиция. Обязательные параметры дополнительно характеризуют критерий:

· Равной первый символ текста должен быть точно в заданной позиции. Например, если задана 2-я позиция, в окне будут отображаться только строки, в которых текст начинается со 2-й позиции.
· Не равной первый символ текста должен быть в любой позиции, кроме заданной. Например, если задана 2-я позиция, в окне будут отображаться только строки, в которых текст начинается НЕ со 2-й позиции.
· Меньшей, чем отображать только строки, где текст начинается с позиции меньше заданной.
· Большей, чем отображать только строки, где текст начинается с позиции больше заданной.

После нажатия OK, окно Редактора переключается в режим сжатого текста.


История клипборда/репозиторий

Элемент диалога | Описание
История клипборда | Список записей в клипборд с момента старта CodeMaster++ [ARM]. записи собираются вне зависимости от приложений из которых они копировались. История клипборда теряется после выхода из CodeMaster++ [ARM].
Вставить | Вставить выбранный текст в активное окно Редактора.
Макс. записей в истории: | Максимальное количество записей, которое можно сохранить в истории клипборда. Когда максимальное количество записей достигнуто, удаляется сомая старая запись.
Не запоминать записи больше чем: | Устанавливает максимальный размер текстового блока, который может быть записан в историю клипборда. Если размер блока для записи превышает установленны, то запись этого блока будет проигнорирована.
Репозиторий клипборда | Репозиторий Клипборда - это постоянный набор записей клипборда ( блоков текста), представленный в виде дерева. Вы можете добавлять записи в репозиторий для дальнейшего их использования. Записи могут располагаться как "ветки" ("папки"). Для организации "папок" и записей используйте операции "перетаскивания".
Вставить | Вставить текст выбранной записи репозитория в активное окно Редактора.
Добавить ветку | Добавить "ветку" ("папку") в активнуу запись репозитория.
Удалить ветку/запись | Удалить выбранную ветку или запись.
Редактировать | Редактировать имя выбранной ветки.
Переместить вверх | Переместить выбранную ветку или запись вверх по дереву.
Переместить вниз | Переместить выбранную ветку или запись вниз по дереву.


Панель инструментов Редактора

На Панели Инструментов Редактора находятся кнопки основных операций редактирования, которые соответствуют командам меню Редактор. Почти все кнопки доступны только при активном окне Редактора. Информационные сообщения, посланные редактором, дублируются в информационной панели редактора.

Команды панели инструментов редактора представлены несколькими значками (Скопировать блок, Поиск текста, Установить закладку и т.д.). Вы можете подогнать команды до удобного Вам количества. После этого только выбранные Вами кнопки будут видимы.

Чтобы выбрать диалог Опции экрана надо кликнуть правой кнопкой по пустой правой части верхней панели. Во всплывшем окне выбрать Customize… Выйти в диалог Опции экрана можно (через меню Конфигурация). На правой панели окна диалога Вы можете отметить, какие кнопки Панели Инструментов Редактора Вам необходимы для работы.


Меню Просмотр

Меню Просмотр обеспечивает доступ к окнам CodeMaster++ [ARM]`а:

Кнопка | Пункт меню | Открывает
FileSource32 | Исходный текст | окно Редактора
Project | Рабочая область | окно Рабочая область
Messages | Сообщения | окно Сообщения.
 | Переменные | окно Переменные..
 | Переменные с автопросмотром | окно Переменные с автоповтором.
SoftwareStack | Стек вызовов | окно Стек вызовов (только для симулятора - смотрите примечание).
Dump | Дамп памяти | окно Дамп.
Coverage | Анализатор выполнения/доступа | окно Анализатор выполнения/доступа (только для симулятора - смотрите примечание).
MemoryLayout | Распределение памяти | окно Распределение памяти.
Browser | Браузер кода | окно Браузер кода.
 | Время выполнения программы | окно Время выполнения программы (только для симулятора - смотрите примечание).
Disassembler | Дисассемблер | окно Дисассемблер.
regs | Регистры | окно Регистры.
PerfAnalyzer | Анализатор эффективности | окно Анализатор Эффективности (только для симулятора - смотрите примечание).
Tracer | Программный Трассировщик | окно Трассировщик. (разрешается только для симулятора - смотрите примечание).
Console | Консоль сообщений | окно Консоль сообщений.

Примечание. Окно доступно только если в качестве CodeMaster++ [ARM] отладчика выбран симулятор..

Если Вы выбрали пункт этого меню, и нет ни одного открытого окна этого типа, CodeMaster++ [ARM] откроет его. Если окно открыто, CodeMaster++ [ARM] поместит его впереди остальных окон.

Локальные меню

В каждом окне есть собственное локальное (контекстное) меню. Чтобы открыть такое меню, надо нажать правую кнопку мыши в пределах окна или нажать комбинацию Ctrl+Enter или Ctrl+F10.

Для некоторых команд локального меню (но не для каждой), есть кнопка на панели инструментов этого окна.


Меню Проект

Это меню содержит команды для работы с рабочими областями и проектами.

Кнопка | Команда | Описание
 | Рабочая область | Дополнительное меню для доступа к командам работы с рабочими областями.
 | Настройки активного проекта | Открывает диалог Опции проекта для пересмотра или изменения параметров активного проекта.
 | Список примеров | Открывает диалог Примеры со списком проектов и исходных программ.

Содержимое дополнительного меню "Рабочая область".

Кнопка | Команда | Описание
 | Создать | Открывает диалог Создать новую рабочую область.
 | Открыть | Открывает стандартный диалог Открыть рабочую область для загрузки рабочей области.
 | Репозиторий | Открывает диалог Репозиторий рабочих областей
 | Сохранить | Сохраняет открытую рабочую область.
 | Закрыть | Закрывает открытую рабочую обасть.


Проект, рабочая область, конфигурация

Проект включает в себя всю необходимую информацию для сборки прожигаемого файла или библиотеки, а именно: набор исходных файлов, специфических библиотек, пути к include-файлам и библиотекам, весь набор опций компиляции и линковки, команды вызова дополнительных утилит и другое. Каждый проект в CodeMaster++ [ARM] имеет собственный файл конфигурации, хранящий всю информацию, относящуюся к проекту. Файл конфигурации проекта имеет вид prj_name.ipp, где prj_name - имя проекта.

Рабочая область дает возможность пользователю группировать проекты, загружать и сохранять всю группу целиком и быстро переключаться между проектами в рамках этой группы. Также рабочая область хранит информацию о параметрах экрана и содержит набор конфигураций (см. ниже). В каждый момент времени CodeMaster++ [ARM] может работать с одной рабочей областью; параметры всех рабочих областей пользователя хранятся в файлах вида workspace_name.iww, где workspace_name - имя рабочей области.

При создании новой рабочей области открывается окно Рабочая область. Все проекты рабочей области отображаются в самой первой, основной вкадке окна Рабочая область. При добавлениии проектов в рабочую область в этом окне появляются вкладки с именами добавляемых проектов. Работать с конкретным проектом можно находясь в основной вкладке или перейдя на вкладку этого проекта.

Конфигурация - именованный набор параметров проекта, таких как целевой микроконтроллер, опции кросс-средств (компилятора, ассемблера, компоновщика и библиотекаря), опции отдадки и др. Такие наборы параметров каждого проекта, входящего в рабочую область, объединяются по именам конфигураций, что позволяет их быстро переключать сразу для всех проектов рабочей области. По умолчанию, CodeMaster++ [ARM] создает для каждой рабочей области две конфигурации - Debug и Release. При этом, пользователь может редактировать набор конфигураций рабочей области используя диалог Конфигурации.
Активный проект - это проект, для которого выполняются команды главного меню - запуск отладчика, настройка опций и т.д. В основной (первой) вкдпадке окна Рабочая область имя активного проета выделено жирным шрифтом.


Диалог Создать новую рабочую область

В диалоге задаются общие опции рабочей области.

Элемент диалога | Описание
Имя рабочей области | Задаёт название рабочей области , т.е., имя ее файла конфигурации без пути. Расширение можно не указывать, по умолчанию расширение .IWW.
Директория рабочей области | Задаёт папку для размещения рабочей области.
Обзор | Открывает диалог Обзор папок.
Проводник | Открывает окно Проводника Windows на папке, указанной в поле Директория рабочей области.
Комментарий к названию рабочей области | Содержит произвольный текст описания рабочей области Этот текст отображается в строке заголовка окна Рабочей области.


Диалог Репозиторий рабочих областей

Репозиторий рабочих областей — это небольшая база данных, хранящая ссылки на файлы рабочих областей. С ее помощью можно рассортировать и сгруппировать рабочие области по своему усмотрению, для удобного отображения и доступа. Программа CodeMaster++ [ARM] отображает репозиторий рабочих областей в виде дерева, аналогично файловой системе Windows Explorer.

Действия с репозиторием никак не отражаются на самих файлах рабочих областей. Репозиторий работает только со ссылками на файлы рабочих областей.

Ветвь дерева может содержать рабочие области и другие ветви. Одна и та же ветвь может содержать разные рабочие области с одинаковыми именами файла рабочей области. Разные ветви могут содержать ссылки на одну и ту же рабочую область. При инсталляции новой версии программы CodeMaster++ [ARM] с переносом рабочего окружения от уже установленной версии, новая версия унаследует существующий репозиторий проектов (файл repos.ini).

Управление репозиторием

Для всех действий с репозиторием проектов используйте диалог Репозиторий проектов. (Проект>Рабочая область>Репозиторий). В левом окне диалога показаны все рабочие области репозитория и содержащиеся в них проекты в виде дерева. Для каждой рабочей области или проекта на ветви отображается имя файла без пути и описание в квадратных скобках, если оно задано. Отладчик запоминает состояние ветвей дерева (раскрыта/свернута) и восстанавливает их в следующий раз, когда Вы открываете этот диалог. Контрольные кнопки на правой стороне диалога работают с рабочей областью или ветвью, которые выделены в дереве.

Элемент диалога

Описание

Добавить новую ветку

Открывает диалог Добавить ветку для указания имени новой ветви. По нажатию кнопки OK приращивает новую ветвь к выбранной ветви.

Добавить рабочую область в ветку

Открывает стандартный диалог Открыть рабочую область для выбора добавляемой рабочей области и добавления ее к выделенной ветви.

Добавить текущую рабочую область в ветку

Добавляет рабочую область, открытую в настоящий момент, к выбранной ветви.

Убрать рабочую область/ветку

Удаляет из репозитория выделенную рабочую область или ветвь. При удалении ветви будут удалены все растущие от нее ветви и расположенные на ней рабочие области.

При удалении рабочей области из репозитория CodeMaster++ [ARM] удаляет только ссылку на эту рабочую область в репозитории, но не удаляет рабочую область с диска.

Редактировать имя ветки

Открывает диалог Редактировать имя для выделенной ветви.

Переместить вверх

Перемещает выделенную рабочую область или ветвь вверх по дереву в пределах этого же уровня иерархии. Ветвь перемещается вместе со всеми растущими от нее ветвями и всеми своими рабочими областями.

Переместить вниз

Перемещает выделенную рабочую область или ветвь вниз по дереву в пределах этого же уровня иерархии. Ветвь перемещается вместе со всеми растущими от нее ветвями и всеми своими рабочими областями.

Сохранить репозиторий

Записывает репозиторий в файл на диске.

Обзор директории рабочей области

Открывает MS Windows Explorer с открытой папкой выделенной рабочей области.

Открыть рабочую область

Записывает репозиторий в файл на диске и открывает выделенную рабочую область.

Закрыть

Закрывает диалог. Если репозиторий был изменен, то предлагает сохранить его.

Панель «Свойства рабочей области / проекта»

Для проекта, выбранного на дереве, эта панель отображает некоторые его свойства, записанные в файле проекта.

Элемент диалога | Описание
Файл проекта / рабочей области | Имя файла проекта или рабочей области, с путем.
Микроконтроллер | Микроконтроллер, выбранный для проекта (заданный в группе Процессор для проекта).
Сохранен пользователем | Имя пользователя, который выполнил последнее сохранение рабочей области.
Дата сохранения | Дата и время сохранения файла рабочей области.


Диалог Опции проекта

Диалог Опции проекта предназначен для управления различными параметрами, связанными с конкретным проектом пользователя. Он может быть вызван либо из контекстного меню окна Рабочая область (для выбраннного проекта), либо из меню Проект>Настройки активного проекта (для активного проекта). Также этот диалог используется для задания опций при создании нового проекта.

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

Закладка | Описание
Общие опции | Задает основные параметры проекта (общие для всех конфигураций).
Конфигурация | Основные настройки конкретной конфигурации.
Распределение памяти | Задает карту памяти микроконтроллера (распределение кода и данных) для использования кросс-средствами.
Кросс-средства | Задает параметры для вызова кросс-средств (компилятора, ассемблера, компоновщика и библиотекаря).
Директории | Задает папки для поиска include-файлов, библиотек, исполняемых файлов кросс-средств и папки для результирующих файлов вашего проекта.


Общие Опции проекта

Данная закладка содержит основные параметры проекта (общие для всех конфигураций).

Элемент диалога

Описание

Имя проекта

Задаёт название проекта, т.е., имя его файла конфигурации без пути. Исполняемый файл программы получит такое же имя.

Директория проекта

Информационное поле; определяется автоматически в рамках рабочей области.

Описание проекта

Содержит произвольный текст описания проекта. Этот текст отображается рядом с названием проекта в окне Рабочей области.

Прервать сборку проекта

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

Проверять авто зависимости файлов

Эта опция выбирается по умолчанию и заставляет Менеджер Проектов проверять, были ли INCLUDE-файлы изменены со времени последней компиляции.

Если эта опция не выбрана, то Менеджер Проектов не проверяет, изменялись ли INCLUDE-файлы и исходный файл будет перекомпилирован только, если он сам изменился или изменились его явные зависимости

Сохранять файлы запуска компиляторов и создавать .BAT-файл

Когда выбрана эта опция, будут генерироваться файл *.bat и файлы параметров сборки при вызове команды Пересобрать весь проект.

*.bat файл может запускать сборку без запуска CodeMaster++ [ARM]. Файлы параметров сборки содержат все необходимые параметры, которые передаются компилятору, библиотекарю или компоновщику. Позже вы можете использовать эти файлы, чтобы повторить сборку.

Опции микроконтроллера

Позволяет настроить параметры целевого микроконтроллера в рамках проекта. Вызывает диалог Опции Отладки с выбранной закладкой Микроконтроллер.

Примечания:

1. При запуске Менеджера Проектов все файлы или некоторые из них могут быть перекомпилированы, затем компоновщик или библиотекарь обрабатывают выходные объектные файлы. Если определяется ошибка, компилятор останавливается и сообщение об ошибке выводится в окно Сообщения.
2. Если имеются только предупреждения, объектные файлы будут сгенерированы. Однако вы в любой момент можете прервать компиляцию и исправить программу. Кнопка Прервать сборку проекта определяет останавливать ли компиляцию по предупреждению. В любом случае при появлении любого сообщения CodeMaster++ [ARM] выведет его в окно Сообщений.


Параметры конфигурации

На основной закладке настроек конкретной конфигурации находится радиогруппа Цель проекта, позволяющая указать, что явлется результатом сборки - Прожигаемый файл (после компиляции объектные файлы линкуются компоновщиком, этот вариант выбран по умолчанию) или Библиотека (собирается из объектных файлов библиотекарем).

Все остальные настройки находятся на отдельных закладках (Распределение памяти, настройки Кросс-средств, Директории).


Распределение памяти

Закладка Распределение памяти определяет правила размещения кросс-средствами кода и данных в памяти микроконтроллера.

Установка диапазонов памяти по умолчанию

Когда вы в первый раз выбираете целевой микроконтроллер для вашего проекта, CodeMaster++ [ARM] использует конфигурацию памяти целевого микроконтроллера, чтобы сгенерировать диапазоны памяти по умолчанию в диалоге Распределение Памяти.

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

Установка диапазонов памяти

Верхняя часть диалога Распределение памяти отображает список внутренних и внешних областей памяти микроконтроллера, которые были установлены в диалоге Микроконтроллер. Вы можете установить один или более диапазонов адресов с различными свойствами для каждой области памяти. По умолчанию каждая область памяти имеет свой собственный диапазон, покрывающий весь этот диапазон и сконфигурированный в соответствии с физическим типом памяти; вы можете хранить данные в оперативной памяти и хранить код и неизменяемые данные в постоянной или флэш памяти.

Изменяя адресное пространство, вы можете обеспечить гибкость для физического распределения памяти. Например, вы можете заказать компоновщику разделить оперативную память на два адресных пространства, одно из которых может хранить код, а другое данные.

Чтобы установить параметры диапазона, выберите его из списка и нажмите кнопку Редактировать диапазон. Откроется диалог, позволяющий ввести имя диапазона (оно будет отображено в списке), начальный и конечный адреса диапазона еще надо указать, что будет размещено в этой области - данные или код. CodeMaster++ [ARM] проверяет диапазоны адресов, чтобы избежать их перекрытия.

Чтобы добавить диапазон к области памяти, выберите диапазон из списка и нажмите кнопку Добавить диапазон...

Чтобы удалить диапазон, выбранный в списке - нажмите кнопку Удалить диапазон.

Установка сегментов кода и данных

Для каждого диапазона вы можете установить сегменты кода и данных. По умолчанию распределение сегментов выполняется компоновщиком, который устанавливает принадлежность сегмента диапазону, но вы можете вручную установить распределение для перемещаемых сегментов. Детали именования сегментов обсуждаются в справочном руководстве для кросс- средств, используемых вами.

Чтобы добавить сегмент к диапазону, выберите сегменты из списка и нажмите Добавить сегмент …. Система отобразит диалог, в котором вы должны установить имя сегмента.

Сегменты перечисляются в том же порядке, как они добавлялись, и их размещение в диапазоне памяти компоновщиком будет таким же, как в списке. Используйте кнопки Сегмент вверх, Сегмент вниз для изменения их порядка.

Практически никогда имена абсолютных сегментов не устанавливаются вручную. Абсолютные сегменты размещаются по определённым фиксированным адресам, компоновщик всегда знает эти адреса, и вы не можете их изменить.

После компиляции программы и её сборки, реальное распределение памяти можно увидеть в MAP файле, генерируемом компоновщиком. Чтобы открыть его для просмотра вы можете использовать окно Рабочей области. Файл MAP находится в группе Выходные файлы


Кросс-Средства

Данная группа закладок предназначена для управления процессом сборки проекта. Параметры всех кросс-средств (компилятора, ассемблера, линкера, библиотекаря) расположены на соответствующих закладках.

На корневой закладке Кросс-средства расположена кнопка сброса всех настроек пользователя в значения по умолчанию. Аналогичные кнопки есть и на закладках конкретных кросс-средств.


Опции компилятора

Вы можете выбрать следующие основные опции для Си компилятора.

Элемент диалога

Описание

Язык

Позволяет установить язык исходных файлов проекта:

· C - все исходные файлы проекта независимо от расширения файла будут компилироваться компилятором C;
· C++ - все исходные файлы проекта независимо от расширения файла будут компилироваться компилятором C++;
· По расширению файла - Исходные файлы с расширением ".c" будут компилироваться компилятором C, а исходные файлы с расширением ".cpp" будут компилироваться компилятором C++.

По умолчанию установлен C++

Embedded C++

Если включена эта опция, то компилятор будет использовать подмножество C++, которое предназначено для программирования встроенных систем. По умолчанию выключена.

Поддержка исключительных ситуаций

Если включена эта опция, устанавливается режим поддержки создания и обработки исключитетельных ситуаций. По умолчанию включена.

Поддержка RTTI

Если включена эта опция, устанавливается режим поддержки механизма Run-time type information. По умолчанию включена.

Уровень оптимизации

Позволяет установить уровень оптимизации кода:

· Нет - оптмизация отключена;
· Низкий - низкий уровень оптимизации;
· Средний - средний уровень оптимизации;
· Высокий (баланс) - высокий уровень оптимизации с соблюденим баланса между размером кода и его производительностью;
· Высокий по размеру - высокий уровень оптимизации размера кода;
· Высокий по скорости - высокий уровень оптимизации производительности кода.

Режим строгой ANSI совместимости

Если включена эта опция, устанавливается режим строгой ANSI совместимости. По умолчанию режим отключен (поддерживаются расширения языка Cи).

Считать тип char знаковым

Если включена эта опция, компилятор рассматривает тип char знаковым. По умолчанию отключена (тип char является беззнаковым).

Перечислимые типы представляются типом int

Если включена эта опция, компилятор всегда будет считать, что enum-константы имеют тип int. В противном случае тип будет оптимизирован в соответствии с диапазоном значений. По умолчанию эта опция отключена.

Отключить инлайнизацию функций

Если включена эта опция, компилятор не будет пытаться инлайнизировать функции. Эта опция обычно используется при отладке. По умолчанию выключена.

Создать файл листинга

Если включена эта опция, компилятор создает файл листинга в форме: имя_исходного_файла.LST. По умолчанию включена.

Включить отладочную информацию

Если включена эта опция, то компилятор добавляет в выходной объектный файл информацию, необходимую для отладки по исходному тексту программы на языке Си. По умолчанию включена.

Создать выходной файл процессора

Если включена эта опция, то создается препроцессорный выходной файл в форме: имя_исходного_файла.l . По умолчанию отключена.

Создать ассемблерный файл

Если включена эта опция, то создается ассемблерный файл основаный на исходном Си файле в форме: имя_исходного_файла.SCR. По умолчанию отключена.

Использовать стандартный #include файл

Если включена эта опция, в компиляцию будет включаться include файл с декларациями регистров специального назначения для выбранного микроконтроллера. Вы можете включить этот файл сами при помощи директивы #Iinclude, но в этом случае, лучше отключить эту опцию. По умолчанию включена.

Прервать компиляцию после … ошибок

Можно определить количество ошибок, после нахождения которых компиляция прекратится. По умолчанию - 10.

Выдавать не более … предупреждений

Можно ограничить количество выводимых предупреждений. По умолчанию - 50.

Установить значения по умолчанию

Сброс всех настроек на данной закладке в их значения по умолчанию.


Опции ассемблера

Вы можете выбрать следующие основные опции для ассемблера:

Элемент диалога

Описание

Различать регистр для имен

Если включена эта опция, ассемблер будет трактовать буквы верхнего и нижнего регистров в именах как различные буквы, т.е. "NAME" и "Name" будут два различных определения.

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

Отладочная информация

Если включена эта опция, будет записываться отладочная информация в выходной объектный модуль. По умолчанию включена.

Создать файл листинга

Если включена эта опция, то будет создаваться файл листинга в форме: имя_исходного_файла.LST. По умолчанию включена.

Использовать стандартный INCLUDE- файл

Если включена эта опция, в ассемблирование будет включаться INCLUDE файл с декларациями регистров специального назначения для выбранного микроконтроллера. По умолчанию отключена. Вы можете включить этот файл сами при помощи ассемблерной директивы .INCLUDE, но в этом случае, лучше отключить эту опцию.

Останов после … ошибок

Можно определить количество ошибок, после нахождения которых трансляция прекратится. По умолчанию - 10.

Выводить не более … предупреждений

Можно ограничить количество выводимых предупреждений. По умолчанию - 50.

Включать в листинг Макро исходники

Если включена эта опция, то в файле листинга пишется текст макросов. По умолчанию отключена.

Включать в листинг Макро расширения

Если включена эта опция, то в файле листинга пишутся макро расширения. По умолчанию отключена.

Включать в листинг Неактивные строки

Если включена эта опция, то в файле листинга неактивные блоки из условной трансляции. По умолчанию отключена.

Разбить на страницы

Если включена эта опция, листинг будет разбит на страницы. Размер страницы задается в поле Строк на страницу. По умолчанию отключена.

Установить значения по умолчанию

Сброс всех настроек на данной закладке в их значения по умолчанию.


Опции линкера

Вы можете выбрать следующие основные опции для линкера:

Элемент диалога | Описание
Создать map-файл | Если эта опция включена, то создаётся MAP файл (отчёт компоновщика). По умолчанию включена.
Глобальная проверка типов | Когда эта опция включена, она проверяет соответствие типов при связывании внешних имен. По умолчанию отключена.
Создать HEX-файл | Если опция включена, создаётся выходной файл формата Intel HEX. Расширение файла '.HEX'. По умолчанию отключена.
Создать MCE-файл | Если опция включена, создаётся выходной файл формата Phyton CMC-ARM MCE. Расширение файла '.MCE'. По умолчанию включена.
Прилинковать стандартную библиотеку Си | Когда эта опция включена, стандартная библиотека языка Си будет прилинкована. Стандартная библиотека обычно требуется для проектов, содержащих исходные файлы на языке Си; для проектов, содержащих только ассемблерные файлы, эта опция должна быть выключена. По умолчанию включена.
Без поддержки чисел с плавающей точкой в функциях ..printf | Когда эта опция включена, стандартная библиотека языка Си будет содержать ограниченные версии функций форматированного вывода (sprintf, printf, и т.д.). Ограниченные версии содержат более компактный код, но не поддерживают вывод чисел с плавающей точкой. По умолчанию отключена.
Размер стека | Можно определить максимальный размер стека. По умолчанию 1024 байт.
Установить значения по умолчанию | Сброс всех настроек на данной закладке в их значения по умолчанию.


Map файл линкера

Вы можете выбрать следующие опции для генерации MAP файла линкера:

Элемент диалога | Описание
Опции запуска | Если эта опция включена, то в MAP-файл включается информация об опциях запуска линкера. По умолчанию включена.
Отчет о связывании программных модулей | Если эта опция включена, то в MAP-файл включается информация о процессе связывания программных модулей. По умолчанию включена.
Символы Publics/externs программных модулей | Если эта опция включена, то в MAP-файл включается информация о символах, объявленных в программах как Public или Extern. По умолчанию отключена.
Отчет о добавлении библиотечных модулей | Если эта опция включена, то в MAP-файл включается отчет о процессе добавления библиотечных модулей. По умолчанию включена.
Символы Publics/externs библиотечных модулей | Если эта опция включена, то в MAP-файл включается информация о символах, объявленных в программах как Public или Extern в библиотечных модулях. По умолчанию отключена.
Неприлинкованные библиотечные модули | Если эта опция включена, то в MAP-файл включается библиотечные модули, которые не были прилинкованы из-за отсутствия ссылок на содержащиеся в них внешние имена. По умолчанию отключена.
Полный набор опций | Если эта опция включена, то в MAP-файл включается полный список опций для данного запуска линкера. По умолчанию включена.
Список сегментов | Если эта опция включена, то в MAP-файл включается отчет о подключении сегментов. По умолчанию включена.
Список областей памяти | Если эта опция включена, то в MAP-файл включается список адресных пространств. По умолчанию включена.
Список перемещаемых сегментов | Если эта опция включена, то в MAP-файл включается отчет о размещении перемещаемых сегментов. По умолчанию включена.
Отчет о связывании перемещаемых сегментов | Если эта опция включена, то в MAP-файл включается отчет о связывании перемещаемых сегментов. По умолчанию отключена.
Карта памяти | Если эта опция включена, то в MAP-файл включается карта памяти. По умолчанию включена.
Таблица символов Publics/externs | Если эта опция включена, то в MAP-файл включается таблица символов, объявленных в программах как Public или Extern. По умолчанию включена.
Таблица внутренних символов Publics/externs | Если эта опция включена, то в MAP-файл включается таблица резервированных/внутренних символов, объявленных в программах как Public или Extern. По умолчанию отключена.
Отчет о выходных файлах | Если эта опция включена, то в MAP-файл включается отчет о выходных файлах. По умолчанию включена.
Установить значения по умолчанию | Сброс всех настроек на данной закладке в их значения по умолчанию.


Опции библиотекаря

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

Элемент диалога | Описание
Не конвертировать | Если выбрана эта опция, никаких преобразований типов модулей не выполняется (режим по умолчанию).
В модуль библиотечного типа | Если выбрана эта опция, все входные объектные модули считаются библиотечными.
В модуль библиотечного типа с низким приоритетом | Если выбрана эта опция, все входные объектные модули считаются библиотечными низкого приоритета.
Установить значения по умолчанию | Сброс всех настроек на данной закладке в их значения по умолчанию.


Дополнительные опции командной строки

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

Для более подробной информации смотрите документацию компилятора, ассемблера или линкера.


Запустить перед...

Запустить перед компиляцией (запуском ассемблера, линковкой, сборкой библиотеки)

 Выше Пред. След.

На этих закладках Вы можете определить дополнительные приложения, которые должны запускаться перед компиляцией, ассемблированием каждого исходного файла, линковкой проекта или сборкой библиотеки. Поскольку интерфейс таких приложений неизвестен CodeMaster++ [ARM], его надо подробно описать.

Сначала выберите опцию Запустить. Затем запишите следующую строку в текстовом поле:

[exe-file] [parameters]

где:

exe-file - это полное имя исполняемого файла, который будет запущен.

parameters - это параметры командной строки для прикладной программы.

Для указания имени файла и его параметров можно использовать следующие макро-имена:

$SRCFILE – имя текущего исходного файла для компиляции (только компилятор и ассемблер).

$SRCNAME – имя текущего исходного файла без расширения (только компилятор и ассемблер).

$INCDIR - путь к папке INCLUDE-файлов по умолчанию (смотрите группу Директории).

$LIBDIR - путь к папке библиотек по умолчанию (смотрите группу Директории).

$PROJDIR - папка текущего проекта.

$PROJNAME - имя проекта.

$CHIP - название выбранного микроконтроллера.

$BINDIR - путь к дочерней папке BIN кросс-средств (смотрите группу Директории).


Запустить после...

Запустить после компиляции (запуска ассемблера, линковки, сборки библиотеки)

 Выше Пред. След.

На этих закладках Вы можете определить приложения, которые должны запускаться после компилирования (ассемблирования, компоновки, создания библиотеки). Для этого вам надо выбрать опцию Запустить и в открывшемся текстовом поле описать приложение. Например, Вы можете запустить конвертор объектов, после того как ваш проект будет собран в CodeMaster++ [ARM]. Чтобы указать такое приложение и задать его параметры командной строки, запишите в текстовом поле строку следующего вида:

[exe-file] [parameters]

где:

exe-file - это полное имя исполняемого файла, который надо запустить;

parameters - это параметры командной строки для этого приложения.

Для указания имени файла и его параметров можно использовать следующие макро-имена:

$SRCFILE – имя текущего исходного файла для компиляции (только компилятор и ассемблер).

$SRCNAME – имя текущего исходного файла без расширения (только компилятор и ассемблер).

$INCDIR - путь к папке INCLUDE-файлов по умолчанию (смотрите группу Директории).

$LIBDIR - путь к папке библиотек по умолчанию (смотрите группу Директории).

$PROJDIR - папка текущего проекта.

$PROJNAME - имя проекта.

$CHIP - название выбранного микроконтроллера.

$BINDIR - путь к дочерней папке BIN кросс-средств (смотрите группу Директории).

Установленная опция Игнорировать ошибки компилятора (ассемблера, линкера, библиотекаря) позволяет CodeMaster++ [ARM]' у запустить прикладную программу вне зависимости от наличия ошибок после компиляции (ассемблирования, компоновки, создания библиотеки).

Установленная опция Игнорировать предупреждения компилятора (ассемблера, линкера, библиотекаря) позволяет CodeMaster++ [ARM]' у запустить прикладную программу вне зависимости от наличия предупреждений и замечаний после компиляции (ассемблирования, компоновки, создания библиотеки).


Директории

Эта закладка диалога Опции Проекта используется для заданий папок для поиска INCLUDE-файлов, библиотек и папки с исполняемыми файлами кросс-средств.

Элемент диалога | Описание
Include-файлы | Задаёт путь к INCLUDE-файлам. Можно указать несколько путей через запятую или точку с запятой.
Библиотеки | Задаёт путь к библиотекам по умолчанию, то есть, библиотекам, не включённым непосредственно в проект, но которые могут быть использованы во время его сборки (например, стандартной библиотеке Си). Можно указать несколько путей через запятую или точку с запятой.
Компиляторы (*.exe) | Задаёт путь к исполняемым файлам компилятора, ассемблера, линкера и библиотекаря.
Поиск компилятора | Запускает поиск исполняемого файла компилятора на всех доступных приводах, кроме гибких дисков. Если файл найден, CodeMaster++ [ARM] откроет специальный диалог, позволяющий выбрать найденный компилятор или продолжить поиск. Если Вы выберете найденный компилятор, CodeMaster++ [ARM] автоматически заполнит поля для папок. Чтобы остановить поиск в произвольный момент, используйте кнопку Отмена.
Показать установленные версии | Открывает список версий продукта CodeMaster++ [ARM], установленных на Вашем компьютере.
Проверять версию компилятора | Если эта опция включена, то перед каждой сборкой проекта проверяется соответствие версий выбранных кросс-средств версиям кросс-средств, входящих в инсталляцию CodeMaster++ [ARM]. В случае расхождения будет выдано предупреждение. По умолчанию включена.

Также на выделенных закладках задаются папки для выходных файлов Вашего проекта.

Закладка | Описание
Исполняемые файлы | Задаёт папку для результирующего файла проекта (прожигаемого файла или библиотеки). По умолчанию это подкаталог вида имя_проекта\имя_конфигурации\Exe корневого каталога рабочей области.
Объектные файлы | Задаёт папку для объектных файлов. По умолчанию это подкаталог вида имя_проекта\имя_конфигурации\Obj корневого каталога рабочей области.
Листинги | Задаёт папку для дополнительных выходных файлов проекта (файлов листинга, map–файлов, и т.д.). По умолчанию это подкаталог вида имя_проекта\имя_конфигурации\List корневого каталога рабочей области.

Для указания путей к файлам и папкам можно использовать следующие макро-имена:

$MCROOT – путь к папке кросс-средств (компилятор, ассемблер, линкер, библиотеки и пр.);

$PROJDIR – путь к папке проекта..


Меню Компиляция

Это меню содержит команды для запуска компиляции и сборки активного проекта или всех проектов рабочей области.

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


Меню Отладка

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

Кнопка

Команда

Описание

Выбрать отладчик

Открывает диалог Выберите отладчик CodeMaster++ [ARM] .

Опции отладки

Открывает диалог Опции Отладки с закладками: Микроконтроллер, Настройки JEM-NT-CM4 или Настройки симулятора, Настройки Flash/ROM, Загрузка кода и Отображение переменных.

Выполнить шаг

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

Выполнить шаг без захода в подпрограммы

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

Выполнить инструкцию процессора

Выполняет один шаг низкого уровня, т.е., одну машинную инструкцию.

Выполнить инструкцию без захода в подпрограммы

Выполняет один шаг низкого уровня без захода в подпрограмму, если текущая инструкция вызывает подпрограмму. CodeMaster++ [ARM] ставит точку останова на инструкции, следующей после текущей, и запускает непрерывное выполнение до точки останова. Так одной командой можно не только вызвать подпрограмму, но и выполнить циклы.

Если текущей инструкцией является инструкция перехода или возврата из подпрограммы, то будет выполнена только эта инструкция.

Запуск/Останов

Запускает или останавливает непрерывное выполнение программы.

Выполнить до адреса

Открывает диалог Выполнить программу до адреса.

После ввода адреса запускается программа и выполняется до тех пор, пока не достигнет указанного адреса.

Выполнить фунццию до возврата

Выполняет программу до момента возврата из процедуры.

Автоматический пошаговый режим

Включает автоматический пошаговый режим. В этом режиме CodeMaster++ [ARM] выполняет загруженную программу по шагам, делая паузу после каждого шага. Изображение на экране полностью обновляется после каждого шага.

Для останова программы и выхода из этого режима, используйте команду Запуск/Останов.

Опции авто-обновления экрана

Открывает диалог Опции АвтоШагания/обновления экрана для установки параметров автоматического пошагового режима.

Точки останова по коду

Открывает диалог Точки останова по коду.

Условные точки останова

Открывает диалог Условные точки останова (доступно только если выбран программный симулятор).

Очистить все точки останова

Очистить точки останова всех типов.

Сброс процессора

Выполняет сброс эмуляционного микроконтроллера.

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

Erase

Стереть флэш-память

Очищает флэш-память, используемую для программ и константных данных пользователя. См. также Аварийное стирание флэш-памяти.

Обновить экран

Один раз обновляет изображение на экране, т.е. содержимое всех окон все окна CodeMaster++ [ARM]. Действует при непрерывном выполнении программы.

Подробнее о выполнении программы по шагам—в главе Выполнение операторов языка высокого уровня.

Чтобы выполнить программу до некоторой строчки исходного текста, сделайте двойной щелчок кнопкой мыши на этой строке в окне Редактора или окне Дисассемблер. Также, в окне Дисассемблер можно поместить курсор в нужную строку и нажать клавишу Enter.

Когда программа пользователя выполняется непрерывно, часть команд CodeMaster++ [ARM]'а и некоторые команды локального меню недоступны. Например, нельзя загрузить другую программу. Но по-прежнему можно перемещать или изменять размер окон на экране, просматривать и изменять любые данные и так далее. Также, можно включить автоматическое обновление изображения на экране с заданной периодичностью, через диалог Опции Авто обновления экрана, либо обновить командой Обновить экран.


Диалог выбора отладчика

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

· Симулятор;
· JTAG эмулятор JEM-NT-CM4.
· Демо-режим JTAG эмулятора JEM-NT-CM4.

В случае выбора варианта JTAG эмулятор JEM-NT-CM4 открывается дополнительный Список устройств USB, в котором нужно выбрать устройство-эмулятор (отображаются все доступные эмуляторы, подсоединенные к USB-портам Вашего компьютера).

В случае выбора варианта Демо-режим JTAG эмулятора JEM-NT-CM4 открывается дополнительный Список интерфейсных модулей и поддерживаемых микроконтроллеров.

Демо-режим JTAG эмулятора JEM-NT-CM4 предназначен для того, чтобы ознакомиться с функциями эмулятора и графическим пользовательским интерфейсом без использования JEM аппаратуры. Однако, этот "отладчик" содержит стандартные свойства CodeMaster++ [ARM] симулятора и, с другой стороны, обеспечивает доступ к аппаратнозависимым диалогам JEM эмулятора.


Аварийное стирание флэш-памяти

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

В этом случае микроконтроллер становится недоступен для JEM-NT-CM4, что делает невозможным прошивку и отладку программного кода. Для устранения этой проблемы нужно использовать орерацию Аварийное стирание флэш-памяти, которая подробно описана в разделе "Особенности и ограничения" документа "Описание эмулятора JEM-NT-CM4".


Микроконтроллер

Закладка Микроконтроллер диалога Опции отладки может быть использована для установки главных опций используемого оборудования: типа целевого микроконтроллера и конфигурации памяти.

Элемент диалога

Описание

Выбор микроконтроллера

Содержит список микроконтроллеров, поддерживаемых CodeMaster++ [ARM] . См. Примечание 1.

Физическая память отлаживаемой системы

Отображает физическую конфигурацию памяти выбранного микроконтроллера. Если целевой микроконтроллер разрешает присоединять внешнюю память, то вы можете указать, какая внешняя память присоединяется и какие адреса использованы для неё. CodeMaster++ [ARM] использует установленную конфигурацию памяти в процессе компиляции/линковки и отладки в диалоге Распределение Памяти.

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

Следующий уровень - это встроенная память микроконтроллера ("Память на кристалле") и внешняя память. CodeMaster++ [ARM] содержит информацию о встроенной памяти и отображает её для всех микроконтроллеров в списке "Выберите микроконтроллер". Также известно, позволяет ли выбранный микроконтроллер подключать внешнюю память или нет.

Третий и последний уровень – это области памяти (Address Areas). Каждая область описывает часть памяти микроконтроллера, где находится оперативная, флэш или постоянная память. Каждый тип памяти описан в строке с именем, типом и адресным пространством. См. также Примечание 2.

Использование FPU

Установка этой опции указывает CodeMaster++ [ARM], что для поддержки операций с плавающей точкой должны использоваться команды сопроцессора.

Располагать с адреса 0x0

Указывает, какая память микроконтроллера начинается с адреса 0x0. Возможные значения опции: "Загрузочная флеш", "Защищённая загрузочная флеш" и "Внешняя память".

PORTNUM

Опция доступна только при выборе опции "Внешняя память" в элементе диалога "Располагать с адреса 0x0". Позволяет указать значение поля "PORTNUM" регистра "INFO_WORD". См. документацию на К1921ВК01Т

PINNUM

Опция доступна только при выборе опции "Внешняя память" в элементе диалога "Располагать с адреса 0x0". Позволяет указать значение поля "PINNUM" регистра "INFO_WORD". См. документацию на К1921ВК01Т

EXTMEMSEL

Опция доступна только при выборе опции "Внешняя память" в элементе диалога "Располагать с адреса 0x0". Позволяет указать значение поля "EXTMEMSEL" регистра "INFO_WORD". См. документацию на К1921ВК01Т

Примечания:

1. Целевые устройства, чьи имена начинаются со слова 'Generic' - это виртуальные устройства, которые на самом деле не существуют. Эти устройства отображают главные свойства их реальных версий с архитектурой CORTEX-Mx: процессор, набор инструкций и набор регистров. Они не имеют ни периферийных устройств, ни памяти.

Generic микроконтроллеры имеют смысл в двух случаях:

1). | Ваш целевой MCU не существует в списке поддерживаемых устройств.
2). | Ваш проект требует расширения конфигурации памяти, ограничиваемой вашим целевым процессором. Виртуальные устройства позволяют использовать все 4GB адресного пространства без ограничения.

2. Если микроконтроллер поддерживает внешнюю память, вы можете добавить ветку области памяти "Внешняя память" в соответствии с физической памятью, связанной с целевым микроконтроллером.

Чтобы добавить область внешней памяти, выберите в списке строку "Внешняя память" и щёлкните по кнопке Добавить область. Система отобразит диалог, в котором вы должны установить параметры области памяти: её имя, её тип (оперативная, флэш, постоянная) и начальный и конечный адреса. Обратите внимание, что здесь вы конфигурируете физическую память, связанную с микроконтроллером. CodeMaster++ [ARM] в дальнейшем использует эти установки для:

· Установки по умолчанию конфигурации памяти в проекте.(См. Установка Распределения Памяти в Проектах)
· Контроля процесса отладки

По умолчанию, CodeMaster++ [ARM] предполагает, что вся память целевого MCU (типа оперативная, флэш, постоянная) доступна для разрабатываемой программы. Конфигурация памяти, установленная по умолчанию, может быть изменениа в диалоге Распределения Памяти.

Используйте кнопку Редактировать область для редактирования параметров внешней памяти, выбранной из списка. Чтобы удалить область, нажмите кнопку Удалить область. Не допускается редактировать или удалять области встроенной памяти. Если вы не хотите, чтобы отлаживаемая программа использовала какую-то часть встроенной памяти, или использовала её частично, установите требуемое в диалоге Распределения Памяти установок проекта.


Настройки JEM-NT-CM4

Эта закладка диалога содержит опции, которые позволяют контролировать параметры подключения эмулятора. Данная закладка доступна только когда в качестве отладчика выбран JEM-NT-CM4 (смотрите диалог Выбор отладчика).

Элемент диалога | Описание
Отладочный интерфейс | Выбор интерфейса, по которому эмулятор взаимодействует с отладочной платой: JTAG или SWD (по умолчанию JTAG).
Частота TCK/SWCLK | Устанавливает максимально возможное значение тактовой частоты отладочного интерфейса.
Измеренная частота | Реальное значение тактовой частоты, на которой JEM-NT-CM4 установил связь с целевым микроконтроллером. Значение измеренной частоты должно быть меньше или равным заданному.
Позиция микроконтроллера в цепочке JTAG | Эти опции активны при выборе отладочного интерфейса JTAG и предназначены для указания положения целевого микроконтроллера в цепочке последовательно включенных JTAG устройств.
Автоопределение | Автоматически определяет положение целевого микроконтроллера в цепи JTAG. Используется в случае с единственным целевым микроконтроллером в цепочке.
Вручную | Использует введенные пользователем номер TAP-порта и количество предшествующих IR бит для определения положения целевого микроконтроллера в JTAG цепочке.
Программные точки останова в ОЗУ (RAM) | Когда выбрана эта опция, прогараммные точки останова используются при размещении исполняемого кода в ОЗУ (RAM).
Программные точки останова во флэш (Flash) | Когда выбрана эта опция, прогараммные точки останова используются при размещении исполняемого кода во флэш (Flash).
Таблица размещена в начале | Эта опция указывает в начале какой области памяти целевого микроконтроллера должна быть размещена таблица векторов Если эта опция выбрана, то таблица будет размещаться начиная с самого первого адреса указанной области памяти. См. Примечание.
Задать адрес таблицы | Эта опция указывает с какого адреса в памяти микроконтроллера должна быть размещена таблица векторов См. Примечание.
Использовать вывод Reset микроконтроллера при сбросе | Если выбрана эта опция, значение вывода Reset MCU устанавливается в логический ноль на период действия сброса целевого MCU. Если она не выбрана, этот вывод постоянно установлен в единицу (неактивное состояние).

Включение тактирования USB

Установка этой опции позволяет получить доступ к регистрам USB микроконтроллера К1921ВК01Т в процессе отладки программы. Если эта опция не установлена, то часть регистров USB будет отображаться в окнах CodeMaster++ [ARM] (например, в окне Дамп памяти), как недоступные.

Примечание:

1. В случае размещения таблицы векторов в RAM (SRAM или Extended memory), корректная работа загружаемой в микроконтроллер программы возможна только под управлением CodeMaster++ [ARM].

2. При указании в качестве адреса начала таблицы векторов адреса вне диапазона адресов Flash следует учитывать текущую конфигурацию памяти микроконтроллера, заданную на закладке Микроконтроллер. Если Flash располагается по адресу 0x0, то перед загрузкой программы в микроконтроллер необходимо выполнить операцию стирания Flash Это связано с тем, что после выполнения Reset микроконтроллер будет считать, что таблица векторов прерывания расположена по адресу 0x0 (См. описание регистра VTOR в документации на К1921ВК01Т). Между окончанием выполнения Reset и загрузкой в регистр VTOR корректного значения может пройти некоторое время, Это означает, что микроконтроллер может успеть выполнить какой-то записанный ранее во Flash код, который может испортить содержимое RAM.


Симуляция

Настройки симулятора

Эта закладка диалога содержит опции, которые позволяют контролировать параметры программного симулятора микроконтроллера. Данная закладка доступна только когда в качестве отладчика выбран симулятор (смотрите диалог Выбор отладчика).

Элемент диалога | Описание
Тактовая частота генератора | Определяет частоту тактирования эмулируемого микроконтроллера, Гц (по умолчанию 20 Мгц).
Таблица размещена в начале | Эта опция указывает в начале какой области памяти целевого микроконтроллера должна быть размещена таблица векторов Если эта опция выбрана, то таблица будет размещаться начиная с самого первого адреса указанной области памяти.
Задать адрес таблицы | Эта опция указывает с какого адреса в памяти микроконтроллера должна быть размещена таблица векторов
Анализатор эффективности | Включает поддержку Анализатора эффективности. По умолчанию включено.

Примечания:

1. Включение опции Анализатор эффективности существенно замедляет работу программного симулятора. Рекомендуется отключать эту опцию, если данная функциональность Вам не требуется.


Настройки Flash/ROM

Эта закладка диалога содержит опции контролирующие работу с памятью микроконтроллера Flash/ROM.

Элемент диалога | Описание
Проверять чистоту флэш после стирания | Если данная опция включена, то в процессе программирования флэш-памяти CodeMaster++ [ARM] выполняет контрольное чтение всей флэш-памяти после выполнения операции стирания. По умолчанию отключена.
Проверять данные после записи | Если данная опция включена, то CodeMaster++ [ARM] выполняет контрольное чтение флеш-памяти после ее программирования. По умолчанию отключена.
Выдавать предупреждение перед программированием флэш | Если данная опция включена, то перед началом программирования флеш-памяти выдается дополнительное предупреждение. По умолчанию включена.
Включить кэширование флеш-памяти | Если данная опция включена, то CodeMaster++ [ARM] запоминает последний прошитый во флеш бинарный образ. Перед очередным программированием флеш-памяти, CodeMaster++ [ARM] сравнивает прожигаемый образ с закешированным и не производит реального программирования, если образы совпадают. По умолчанию включена.
При попытке записи в ПЗУ: | Определяет, в каких случаях выдается предупреждение при попытке записи в область памяти, определенную как ROM (всегда, при несоответствии записываемых данных, никогда). По умолчанию, предупреждение выдается всегда.

Примечания:

1. Настройки программирования флеш-памяти по умолчанию рассчитаны на максимальное ускорение процесса программирования (и, соответственно, на абсолютно исправную память).


Загрузка кода

Закладка Загрузка кода в диалоге Опции Отладки позволяет задать действия, выполняемые перед началом загрузки исполняемого кода и после загрузки (перед началом отладки). При этом, действия Запустить файл сценария и Сбрасывать процессор могут быть выполнены как до, так и после загрузки (используются отдельные опции); остальные действия выполняются после загрузки кода.

Элемент диалога

Описание

Запустить файл сценария

Если выбрана эта опция, то разрешено запустить файл сценария (смотрите меню Сценарии). Используйте кнопку Обзор для выбора файла сценария.

Не выполнять startup-код СИ-программы

Данная радиогруппа управляет положением счетчика команд (PC) после загрузки кода: на стартовом адресе (выбор по умолчанию), на первой инструкции тела функции main (startup-код будет к этому моменту выполнен автоматически) или на первой инструкции, которая соответствует какой-либо строке исходного текста.

Выполнять startup-код до функции 'main()'

Выполнять до первой встретившейся строки исходного текста

Сбрасывать процессор (Reset)

Когда установлена эта опция и в качестве отладчика используется симулятор CodeMaster++ [ARM], то перед/после загрузки программы будут обнуляться все симулируемые ресурсы MCU. Когда при установленной опции в качестве отладчика используется JEM-NT-CM4, то после загрузки программы на выводе RST эмулируемого микроконтроллера будет генерироваться сигнал Reset.

Обнулять счетчик времени выполнения

Эта опция учитывается только тогда, когда в качестве отладчика используется программный симулятор и включен режим подсчета времени выполнения программы (смотрите Настройки симулятора). Если выбрана эта опция, то счетчик времени выполнения обнуляется после загрузки программы. Подробнее смотрите в окне Время выполнения программы.

Очищать все точки останова

Если выбрана эта опция, то все точки останова всех типов очищаются после загрузки программы.

Дополнительные директории поиска файлов исходного текста

Здесь можно определить список директорий для поиска исходных файлов для окна Редактора . Вы можете определить несколько директорий, которые следует разделять запятой или точкой с запятой.

Директории из этого списка используются только тогда, когда исходный файл не найден в заявленной директории или когда имя исходного файла не содержит путь.

Загружать последнюю программу при старте CodeMaster++ [ARM]

Если CodeMaster++ [ARM] используется не для работы с проектами, а как отладчик для готовых программ, то выбор этой опции позволит при старте загружать программу, с которой последний раз работал отладчик.

Если в предыдущий раз в CodeMaster++ [ARM] была открыта рабочая область, то эта опция будет проигнорирована (загрузится рабочая область).


Отображение переменных

Этот диалог позволяет управлять настройками, связанными с отображением имен и значений переменных в процессе отладки. Данные настройки влияют на отображение переменных в окнах Переменные, Переменные с автопросмотром и Детальный просмотр.

Элемент диалога | Описание
Отображать незначащие нули в шестнадцатеричных числах | Если включена эта опция, то в шестнадцатеричных числах будут отображаться незначащие (лидирующие) нули, дополняющие число до размера типа. По умолчанию отключена.
Отображать незначащие нули в двоичных числах | Если включена эта опция, то в двоичных числах будут отображаться незначащие (лидирующие) нули, дополняющие число до размера типа. По умолчанию включена.
Hex-числа как в ассемблере (`44Н` вместо `0х44`) | Если включена эта опция, то шестнадцатеричные числа при работе с окнами будут отображаться в стиле ассемблера (с буквой 'H' в конце числа). Если эта опция отключена (по умолчанию), шестнадцатеричные числа будут отображаться в формате языка Си (с префиксом '0x').
Отображать массивы Char как строки символов | Если включена эта опция, то массивы 'char' и 'unsigned char' будут отображаться как строки в формате языка Си. При этом формат, установленный для окна игнорируется. По умолчанию включена.
Показывать строки только до завершающего нуля | Если включена эта опция, то отладчик CodeMaster++ [ARM] не будет показывать текст строки после цифры ноль. По умолчанию отключена.
Короткое отображение типов | Если включена эта опция, то Си-типы переменных отображаются в коротком формате - используя сокращения. Например, 'unsigned int' и 'signed char' в коротком формате будут выглядеть, соответственно, 'uint' и 'char'. По умолчанию отлючена.
Вообще не отображать типы | Если включена эта опция, то типы переменных не отображаются. Пишутся только имена и значения переменных. По умолчанию отлючена.
Различать регистр имен переменных | Если включена эта опция, то верхний и нижний регистры различаются в отображении имен переменных, иначе не различаются. Это относится как к окнам Переменные, Переменные с автопросмотром и Детальный просмотр, так и к другим окнам. По умолчанию включена.


Точки останова

Отладчик CodeMaster++ [ARM] поддерживает следующие типы точек останова:

Точки останова по коду

Условные точки останова (только для программного симулятора)


Точки останова по коду

Точки останова ставятся в адресном пространстве кода. Когда исполняемая программа доходит до адреса, где поставлена точка останова, она останавливается перед инструкцией, которой соответствует адрес с точкой останова («останов перед исполнением»).

Программные точки останова по коду

Программные точки останова могут устанавливаться, только если программа отлаживается либо с использованием программного симулятора, либо в оперативной или флеш-памяти. В реализации работы с эмулятором JEM-NT-CM4, программная точка останова модифицирует содержимое памяти по установленному адресу путём замены кода инструкции специальной сигнатурой. Когда точка останова удаляется, CodeMaster++ [ARM] восстанавливает исходное значение по этому адресу.

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

CodeMaster++ [ARM] осуществляет интеллектуальную поддержку точек останова во флеш-памяти :

•

когда точки останова устанавливаются или удаляются, перепрограммирование затрагивает только те сектора флеш-памяти, которые имеют отношение к точкам останова;

•

установка точки останова изначально вызывает только изменения во внутреннем кэше CodeMaster++ [ARM] . Только явное действие, предпринятое пользователем (Step, Run, и т.п.) вызывает процедуру перепрограммирования флеш-памяти. Используйте это свойство корректно, чтобы минимизировать количество циклов перепрограммирования, когда точки останова устанавливаются или сбрасываются - сначала подумайте, действительно ли необходимы точки останова для отладки, старайтесь одновременно устанавливать и сбрасывать их между отладочными действиями;

•

программный симулятор, встроенный в CodeMaster++ [ARM] исключает необходимость программирования флеш-памяти при остановке и перезапуске программы пользователя.

Окна Редактор и Дисассемблер выделяют подсветкой строку с точкой останова.

Как управлять

Можно устанавливать/снимать точки останова по коду `на лету`, без остановки процесса эмуляции. Управлять точками останова по коду можно следующими способами:

•

При помощи `горячих клавиш`. Поставьте курсор на строку в окне Редактор, или в окне Дисассемблер, или в окне Распределение памяти, или в окне Браузер кода там, где вы хотите установить или снять точку останова и нажмите клавиши F2 или Ctrl+B. Каждое нажатие переключит статус точки: или установит, или снимет (если она была установлена).

•

При помощи кнопок панели инструментов. Поставьте курсор на строку в в окне Редактора, или в окне Дисассемблер, или в окне Распределение памяти, или в окне Браузер кода, где вы хотите установить/снять точку останова и нажмите кнопку Break на панели инструментов. Каждое нажатие переключит статус точки.

•

При помощи команды локального меню Поставить/снять точку останова. Кликните правой кнопкой в окне Редактора, или в окне Дисассемблер, или в окне Распределение памяти, или в окне Браузер кода, предварительно поставив курсор на нужную строку. Это вызовет локальное меню. Затем выберите команду Поставить/снять точку останова.

•

При помощи команды Точки останова по коду меню Отладка. Выбор этой команды вызовет диалог, в котором показан адрес установленных точек останова. Чтобы снять точку останова надо выбрать ее из списка и нажать кнопку Очистить выбранную. Чтобы установить точку останова надо нажать Добавить+ и определить либо абсолютный адрес точки останова, либо Имя.

Чтобы очистить все точки останова, установленные в программе, выберите команду Очистить все точки останова в меню Отладка.

Примечание.

По умолчанию, когда перезагружается отлаживаемая программа, отладчик снимает все точки останова (так как обычно программа перезагружается после перекомпиляции). Чтобы отменить эту опцию, работающую по умолчанию, надо в меню Отладка > Опции отладки в закладке Загрузка кода снять флаг Очищать все точки останова.


Диалог Безусловные точки останова

Этот диалог предназначен для управления точками останова по коду. В нём имеется список всех существующих точек останова и диапазонов точек останова, а также следующие кнопки:

Элемент диалога | Описание
Добавить | Открывает диалог Установить диапазон точек останова по коду.
Очистить | Открывает диалог Очистить диапазон точек останова по коду.
Очистить выбранную | Снимает точку останова, выделенную в списке.
Очистить все точки | Снимает все точки останова по коду.
Установить на | Открывает диалог Установить точки останова на.
Показать | Открывает окно Редактора и окно Дисассемблер и отображает исходный текст, соответствующий адресу, на который установлена выделенная точка останова.
Готово | Применяет изменения, сделанные в диалоге, и закрывает его.

Примечание.

Помимо этого диалога, можно быстро устанавливать и снимать точки останова по коду непосредственно в окнах Редактора, Дисассемблер, Распределение памяти, Браузер кода и Анализатор выполнения/доступа. Диалог Безусловные точки останова полезен, когда необходимо просмотреть весь список установленных точек останова, снять конкретные точки останова или работать с интервалом точек останова.


Диалоги Установить/Очистить диапазон точек останова по коду

Данные диалоги предназначены для задания интервала адресов, на которые будут выставлены или с которых будут сняты точки останова по коду.

Интервал задается начальным и конечным адресами. Чтобы задать адрес единственной ячейки, достаточно ввести только начальный адрес. Адрес можно задать числом, выражением или символьным именем.

Элемент диалога | Описание
Начальный адрес | Задаёт начальный адрес интервала.
Конечный адрес | Задаёт конечный адрес интервала (включительно). Если это поле оставить пустым, то конечный адрес будет равен начальному адресу.
Имена | Когда курсор находится в поле Начальный адрес, нажатие на кнопку открывает диалог Начальный адрес точки останова по коду со списком символьных имён (имён подпрограмм, функций и т.п.). Когда курсор находится в поле Конечный адрес, нажатие на кнопку открывает диалог Конечный адрес точки останова по коду. Соответственно, можно выбрать имя метки как начальный или конечный адрес останова по коду.


Диалог Установить точки останова на

Этот диалог предназначен для массовой установки точек останова по коду на адреса точек входов во все функции, объявленные в одном или во всех исходных файлах проекта / программы.

Элемент диалога | Описание
Точки входа во все функции в файле | Если выбран этот пункт радиогруппы, то точки останова будут установлены на все точки входа в функции внутри указанного исходного файла.
Точки входа во все функции во всех файлах | Если выбран этот пункт радиогруппы, то точки останова будут установлены на все точки входа в функции программы.


Условные точки останова

Условные точки останова доступны при работе с программным симулятором набора команд.

Условные точки останова определяют условия остановки исполнения программы и/или запись отладочной информации в файл. Эти условия включают условное выражение, адрес точки останова и счётчик проходов. Например, Вы можете остановить Вашу программу после указанного количества проходов заданного адреса.

Для каждой условной точки останова CodeMaster++ [ARM] выполняет следующий алгоритм:

Для доступа к списку условных точек останова используйте диалог Условные точки останова.


Диалог Условные точки останова

Данный диалог содержит список всех условных точек останова в программе. Здесь Вы можете добавить новые точки останова, разрешить, запретить или удалить существующие условные точки останова. Разрешенные точки останова - это активные работающие точки. Запрещенные точки останова - не удалены; Вы их можете в дальнейшем разрешить. Разрешить или запретить точку останова Вы можете при помощи атрибута Включить/Выключить.

Элемент диалога | Описание
Добавить | Открывает диалог Условная точка останова.
Редактировать | Открывает диалог Условная точка останова для изменения атрибутов выбранной точки останова. Можно вызвать двойным кликом точки останова в списке.
Включить | Включает точку останова, выделенную в списке.
Включить все | Включает все точки останова в списке
Выключить | Выключает точку останова, выделенную в списке.
Выключить все | Выключает все точки останова в списке.
Удалить | Удаляет точку останова, выделенную в списке.
Удалить все | Удаляет все точки останова в списке.
Файл трассы | Определяет имя файла для сохранения трассировки точек останова. В зависимости от выбранного режима, CodeMaster++ [ARM] либо создает этот файл заново для каждого отладочного сеанса, либо дописывает новую трассу в конец существующего файла.
Готово | Применяет изменения, сделанные в диалоге, и закрывает его.

Примечания

1. Когда Вы закрываете или сохраняете свой проект, CodeMaster++ [ARM] сохраняет текущие установки условных точек останова в конфигурационном файле проекта. Когда Вы заново открываете проект для отладки, CodeMaster++ [ARM] запрещает (но не удаляет) все сохраненные точки останова.

2. В течение симуляции, если Вы переключились на JEM-NT-CM4 эмулятор, CodeMaster++ [ARM] не удаляет поставленные ранее в симуляторе условные точки останова.


Диалог Настройка условных точек останова

Этот диалог предназначен для определения опций Условных точек останова.

Элемент диалога

Описание

Выключена

Если флаг выставлен, то условная точка останова будет запрещена (но не удалена).

Глобальная, адрес не проверяется

Если флаг выставлен, то после исполнения каждой машинной инструкции отладчик проверяет, выполняются ли условия останова, вне зависимости от того, какое значение выставлено в поле Адрес точки останова.

Если флаг не выставлен, то CodeMaster++ [ARM] будет проверять условия останова только, когда программный счетчик (PC) станет равным значению, установленному в поле Адрес точки останова.

Условие не проверяется

Если выбран этот вариант, то значение в поле Условное выражение игнорируется. Эта опция может быть полезна, когда вы хотите использовать Счетчик проходов для останова программы, например, на 100-м вызове подпрограммы.

Значение выражения изменилось

Если выбран этот вариант, то отладчик постоянно сверяется, изменено ли значение в поле Условное выражение программой пользователя. Когда машинная инструкция изменит значение выражения, CodeMaster++ [ARM] будет обрабатывать точку останова в соответствии с полем Счетчик проходов и полем Действие.

Значение выражения - Истина

Если Условное выражение будет истинно (т.е. не равно 0), то CodeMaster++ [ARM] будет обрабатывать точку останова в соответствии с полем Счетчик проходов и полем Действие.

Адрес точки останова

Определяет адрес точки останова. CodeMaster++ [ARM] будет использовать этот адрес только, если снят флаг Глобальная.

Чтобы определить адрес используйте номер или выражение (например, имя функции). Выражения чаще используются, чем константы. Обычно, программу запускают после редактирования, т.е. абсолютные адреса могут быть изменены, в то время как выражение остаётся тем же самым и точки останова сохраняются.

Условное выражение

Определяет условную точку останова (выражение). Оно может содержать логические операции, смотрите примеры ниже.

CodeMaster++ [ARM] обрабатывает Условное выражение в соответствии с выбранным вариантом в группе Проверка условия. Например, если стоит флаг Условие не проверяется, то поле Условное выражение будет игнорироваться.

Трассируемые выражения

Определяет одно или несколько выражений, чьи значения записываются в файл. Если вам надо несколько значений, используйте знак (";" ).

Если поле непусто, то когда условия точки останова выполнены, CodeMaster++ [ARM] запишет значения выражений в файл, который определен в диалоге Условные точки останова.

По умолчанию, CodeMaster++ [ARM] записывает протокол в шестнадцатеричном формате. Информация о других форматах дана ниже.

Счетчик проходов

Определяет значение счетчика проходов для точки останова. Текущий счетчик показывает текущее значение проходов.

В случае если будут выполняться условия других точек останова, CodeMaster++ [ARM] будет декрементировать на 1 счетчик проходов. Когда счетчик сравняется с нулем, CodeMaster++ [ARM] выполнит действие, записанное в поле Действие, и после этого ре-инициализирует счетчик проходов.

Действие

Определяет что делать, когда условие для точки останова выполнится. CodeMaster++ [ARM] может остановить исполнение программы, записать трассируемые выражения в файл, или сделать и то и другое.

Примеры условных выражений

SP > STACK_TOP - 16

cur_char >= '0' && cur_char <= '9'

var != 0

Форматы выражений

Чтобы изменить формат, который устанавливается по умолчанию, надо перед выражением записать специальный ключ:

/B —для двоичного выхода;

/H —для шестнадцатеричного выхода;

/D — для десятичного выхода;

/A — для выхода в ASCII коде.

Примеры:

PC; SP; /A cur_char;

/B PORT_0; /D Counter;


Режимы выполнения программы

Рассмотренные ниже команды меню Отладка контролируют исполнение программы.

Кнопка

Команда

Описание

Выполнить шаг

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

Выполнить шаг без захода в подпрограммы

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

Выполнить инструкцию процессора

Выполняет один шаг низкого уровня, т.е., одну машинную инструкцию.

Выполнить инструкцию процессора без захода в подпрограммы

Выполняет один шаг низкого уровня без захода в подпрограмму, если текущая инструкция вызывает подпрограмму. CodeMaster++ [ARM] ставит точку останова на инструкции, следующей после текущей, и запускает непрерывное выполнение до точки останова. Так одной командой можно не только вызвать подпрограмму, но и выполнить циклы.

Если текущей инструкцией является инструкция перехода или возврата из подпрограммы, то будет выполнена только эта инструкция.

Запуск/Останов

Запускает или останавливает непрерывное выполнение программы.

Выполнить до адреса

Открывает диалог Выполнить программу до адреса.

После ввода адреса запускается программа и выполняется до тех пор, пока счетчик команд (PC) не достигнет указанного адреса.

Выполнить функцию до возврата

Выполняет программу до момента возврата из процедуры.

Автоматический пошаговый режим

Включает Автоматический пошаговый режим. В этом режиме CodeMaster++ [ARM] выполняет загруженную программу по шагам, делая паузу после каждого шага. Изображение на экране полностью обновляется после каждого шага.

Для останова программы и выхода из этого режима, используйте команду Запуск/Останов.

Опции авто-обновления экрана

Открывает диалог Опции АвтоШагания/Обновления экрана для установки параметров автоматического пошагового режима.

Сброс процессора

Выполняет сброс микроконтроллера.

Кроме этого, микроконтроллер сбрасывается автоматически при загрузке программы для отладки. Чтобы отключить такой сброс используйте закладку Загрузка кода диалога Опции отладки.

Обновить экран

Один раз обновляет изображение на экране, т.е. содержимое всех окон CodeMaster++ [ARM]. Действует при непрерывном выполнении программы.

Примечания.

1. Подробнее о выполнении программы по шагам смотрите Выполнение операторов языка высокого уровня.
2. Чтобы выполнить программу до некоторой строчки исходного текста, сделайте двойной щёлчок кнопкой мыши на этой строке в окне Редактор или окне Дисассемблер. Также, в окне Дисассемблер можно поместить курсор в нужную строку и нажать клавишу Enter.
3. Когда программа пользователя выполняется непрерывно, часть команд CodeMaster++ [ARM] и некоторые команды локального меню недоступны. Например, нельзя загрузить другую программу. Но по-прежнему можно перемещать или изменять размер окон на экране, просматривать и изменять любые данные и так далее. Также, можно включить автоматическое обновление изображения на экране с заданной периодичностью, через диалог Опции Авто обновления экрана, либо обновить командой Обновить экран.


Выполнение операторов высокого уровня

Если отлаживаемая программа написана на языке высокого уровня (Си), и при компиляции была включена отладочная информация, тогда CodeMaster++ [ARM] построит внутреннюю таблицу номеров строк. Эта таблица состоит из записей, задающих соответствие между адресами в программе и строками файлов исходных текстов. При отладке программы по шагам высокого уровня, CodeMaster++ [ARM] устанавливает «невидимые» точки останова на все адреса операторов языка высокого уровня и выполняет программу до очередной точки останова. Таким образом, шаг высокого уровня означает запуск и непрерывное исполнение программы с использованием точек останова.

Макроассемблер тоже обеспечивает информацию о номерах строк. CodeMaster++ [ARM] обрабатывает эту информацию точно так же, как в случае с языком высокого уровня, хотя в большинстве случаев, операторам языка ассемблера соответствует всего по одной машинной инструкции.

Выполнение команды Шаг высокого уровня без захода.

Такой шаг означает выполнение «текущей строки исходного текста», до следующей строки, т.е., без захода в подпрограммы, вызов которых может быть в текущей строке. CodeMaster++ [ARM] выставляет временную точку останова по коду на адрес, соответствующий следующей строке (по символьной информации), и запускает непрерывное выполнение.

Примечание. Возможна ситуация, когда программа так и не дойдёт до этой временной точки останова. Например, если в текущей строке есть команда перехода или возврата из подпрограммы. CodeMaster++ [ARM] не может самостоятельно обнаружить такую ситуацию, которая может создать впечатление, что программа зависла или что отладчик не работает.


Диалог Опции АвтоШагания /Обновления экрана

Этот диалог управляет параметрами автоматического пошагового режима выполнения программы и обновления изображения на экране в реальном времени.

Элемент диалога | Описание
По операторам языка высокого уровня / По машинным инструкциям | Группа из двух радио кнопок. Здесь задаётся уровень для шагов в автоматическом пошаговом режиме. Шаги высокого уровня - это операторы языка высокого уровня. Шаги низкого уровня -это машинные инструкции.
Интервал между шагами | Устанавливает длительность паузы между шагами в секундах в автоматическом пошаговом режиме. Допускается нулевое значение, при этом пауза между шагами будет 0,1 секунды.
Обновление включено | Когда эта опция выбрана, то при непрерывном выполнении программы пользователя CodeMaster++ [ARM] обновляет данные на экране - во всех специализированных окнах, с заданной в поле Интервал между обновлениями периодичностью.
Интервал между обновлениями (в секундах) | Задаёт периодичность автоматического обновления изображения на экране при непрерывном выполнении программы пользователя (в секундах). Когда опция Обновление включено выключена, значение в этом поле игнорируется.


Меню Конфигурация

Меню Конфигурация содержит две команды вызова диалогов настройки параметров конфигурации и опцию включения/выключения русского языка в диалогах и меню. .

Это меню дает доступ к следующим диалогам конфигурации CodeMaster++ [ARM]`а.

Кнопка | Команда | Описание
env | Опции экрана | Открывает диалог Опции экрана, содержащий шесть закладок: закладка Шрифты, закладка Цвета, закладка Назначение клавиш, закладка Линейка управления, закладка Сообщения и закладка Прочие.
eoptions24 | Опции редактора | Открывает диалог Опции редактора, в котором три закладки: закладка Опции редактора, закладка Отладка и закладка Назначение клавиш.


Закладка Шрифты

Закладка Шрифты диалога Опции экрана управляет шрифтами в окнах программы CodeMaster++ [ARM]. Используются только шрифты фиксированной ширины (monospaced, non-proportional), по умолчанию—это Fixedsys. В качестве пользовательской настройки внешнего вида окна можно задать другой шрифт: либо единый шрифт для всех окон, либо индивидуальный шрифт для каждого окна.

В списке Окна перечислены все типы окон. Чтобы задать параметры для некоторого типа окон, выделите его в списке. Новые установленные параметры действуют для всех окон выделенного типа, включая уже открытые.

Элемент диалога | Описание
Окно имеет заголовок | Включает строку заголовка для окон данного типа. Когда флаг снят, окна получаются меньше размером за счёт отсутствующего заголовка. См. Примечания.
Линейка управления окна | Управляет положением панели инструментов в окне данного типа.
Сетка | Включает отображение вертикальной и горизонтальной сетки в окне и разрешает изменение ширины столбцов (при включенной вертикальной сетке).
Интервал между строками | Задаёт межстрочное расстояние, которое будет добавлено к стандартному расстоянию между строками. Новое значение можно напечатать или выбрать из списка недавно использованных значений.
Выбрать шрифт | Открывает диалог Шрифт. Выбранный шрифт будет действовать для всех окон данного типа.
Этот шрифт для всех окон | Использует шрифт, установленный для окон данного типа, ко всем окнам в программе CodeMaster++ [ARM].

Примечания

1. Передвинуть окно, у которого нет строки заголовка, можно обратившись к функциям управления окном через его системное меню, нажатием комбинации клавиш Alt+<серый минус>.
2. В Локальном меню (вызывается щелчком правой кнопки мыши в окне) каждого окна есть пункт Свойства. Пункты Заголовок окна и Линейка управления субменю Свойства переключают строку заголовка и панель инструментов для данного отдельного окна.


Закладка Цвета

Закладка Цвета диалога Опции экрана управляет цветом в специализированных окнах программы CodeMaster++ [ARM]. По умолчанию, основные цвета заимствованы из Windows. Возможно, что Вам приходится подолгу работать с программойCodeMaster++ [ARM], поэтому есть смысл подобрать такие цвета, которые будут меньше утомлять глаза. Например, цвета голубой и белый нагружают зрение меньше, чем цвета чёрный и белый.

Элемент диалога

Описание

Схема цветов

Задаёт название цветовой схемы. Его можно напечатать или выбрать недавно использованное из списка с кнопкой.

Кнопка Сохранить сохраняет используемую схему на диск. Кнопка Удалить удаляет её.

Цвета

Список названий групп цветов. Каждая группа состоит из нескольких цветов.

Стандартный цвет Windows

Когда флаг установлен, выделенный цвет позаимствован из Windows. Если в последующем Вы измените цвета, Windows через панель управления, этот цвет изменится соответственно.

Этот флаг имеется только для цвета фона и текста.

Инвертированный цвет фона/текста

Когда флаг установлен, CodeMaster++ [ARM] инвертирует выделенные цвета окна (для текста и фона). Например, если в окне Переменные цвет фона белый и цвет текста чёрный, то для строки с выделенной переменной будет подсветка из черного фона и белого текста.

Выбрать

Открывает диалог Цвет, если флаги Стандартный цвет Windows и Инвертированный цвет фона/текста сняты для окон этого типа.

Диалог Color также открывается, если дважды щелкнуть по строке цвета в списке Цвета.

.

Установить для всех

Задаёт использование данного цвета во всех окнахCodeMaster++ [ARM]. Такая возможность удобна для цвета текста и фона. Например, если для окна Редактора выбрать голубой фон и жёлтый текст и потом нажать кнопку Установить для всех, то эти цвета будут заданы для фона и текста во всех окнах.

Шрифт

Для выделения синтаксиса в Окне исходного текста/редактора можно задать дополнительные атрибуты шрифта: «Жирный» и «Курсив».

В некоторых случаях, Windows увеличивает размер символов при изображении жирного шрифта и шрифт становится неприменим, потому что жирный и обычный шрифт должны быть одного размера. В таких случаях атрибут «Жирный» игнорируется.

Иногда, такой эффект случается со шрифтом Fixedsys. Если необходимо воспользоваться атрибутом «Жирный», выберите шрифт Courier New.


Назначение клавиш экрана Закладка

Закладка Назначение клавиш экрана

Закладка Назначение клавиш диалога Опции экрана позволяет присвоить комбинации клавиш вызова команды в CodeMaster++ [ARM] IDE. Столбец Команды меню отображает древообразную систему команд. Столбцы Клав. 1 (Клав. 2) содержат соответствующие комбинации клавиш, назначенные командам. Все действия в этой закладке относятся к выделенной команде.

Элемент диалога | Описание
Задать клав. 1 Задать клав. 2 | Открывает диалог Задать комбинацию клавиш. В диалоге нажмите комбинацию клавиш, которую Вы собираетесь назначить данной команде, или нажмите Отмена. Также, этот диалог можно открыть двойным щелчком в «ячейке» столбца Клав. 1 или Клав. 2.
Удалить клав. 1 Удалить клав. 2 | Отменяет назначенную комбинацию клавиш для данной команды. Также, для отмены комбинации можно щелкнуть правой клавишей мыши в «ячейке» столбца Клав. 1 или Клав. 2.


Закладка Линейка управления

Закладка Линейка управления диалога Опции экрана позволяет настраивать параметры панелей инструментов окна CodeMaster++ [ARM] и их кнопок.

Элемент диалога | Описание
Группы | Содержит список всех панелей инструментов программыCodeMaster++ [ARM]. Чтобы включить/выключить панель инструментов, установите её флажок в списке.
Кнопки / Команды | Список кнопок для панели инструментов, выделенной в списке Группы.Чтобы показать/убрать кнопку панели, установите её флажок в списке.


Сообщения IDE Закладка

Закладка Сообщения

Закладка Сообщения диалога Опции экрана предназначена для управления выводом предупреждений, которые может выдавать CodeMaster++ [ARM] .


Закладка Прочие установки

Закладка Прочие диалога Опции экрана управляет различными функциями окон и параметрами сообщений в CodeMaster++ [ARM]. Она создана для комфортной работы CodeMaster++ [ARM] IDE.

Элемент диалога | Описание
Строка статуса главного окна | Управляет наличием и расположением статусной строки окна программы CodeMaster++ [ARM].
Включить функцию «быстрого просмотра» | Включает функцию быстрого просмотра.
Двойной клик на флажках и переключателях в диалогах | Задает функцию двойного щелчка мышью, эквивалентную одиночному щелчку на соответствующем элементе диалога и нажатию кнопки OK данного диалога
Подсвечивать заголовок активной страницы в окнах | Включает подсветку текущей закладки (в стиле MS Windows) в окнах с закладками. Например, в окнах Переменные, Дамп, Сообщения, Анализатор выполнения/доступа, и других.
Показывать ‘горячие клавиши' во всплывающих описаниях | Включает/выключает отображение комбинаций клавиш быстрого доступа во всплывающей подсказке для кнопок панелей инструментов.
Градиентная заливка в активных полях окон | Управляет внешним видом фона выделенной строки активного окна.
Картинки в главном меню | Управляет выводом картинок в пунктах главного меню.
"Магнитные" окна | Управляет режимом перемещения/изменения размеров окон. При установленном флажке CodeMaster++ [ARM] пытается располагать окна вплотную друг к другу. Например, если при перемещении какого-либо окна его левая граница оказывается "близко" к правой границе другого окна, то CodeMaster++ [ARM] "прилепит" первое окно ко второму.
Не выдавать диалоги сообщений, если открыто окно консоли | Направляет все сообщения в окно Консоль сообщений, если оно открыто. Если закрыто, то сообщение будет послано в отдельном окошке.
Всегда выдавать диалоги сообщений | Отображает все сообщения в отдельных окошках. Окно Консоль сообщений также отображает эти сообщения.
Курсор помещается на кнопку ОК | Если флаг установлен, то в каждом открытом окне сообщения курсор автоматически помещается на кнопку OK этого окна. Данную функцию можно выключить, если Вы предпочитаете нажимать клавишу Enter, а не щёлкать OK мышью.
Звуковое уведомление для сообщений об ошибках | Включает звуковое уведомление при выдаче сообщений об ошибках. Информационные сообщения всегда подаются без звука.
Записывать сообщения в файл журнала | Задаёт имя файла журнала. Все сообщения заносятся в этот файл. Способ записи выбирается переключателем, у которого есть следующие позиции:
Начинать файл журнала сначала при каждом старте | Указывает создавать новый файл для каждого сеанса и удалять прежний файл, если он существует.
Записывать сообщения в конец файла | Указывает добавлять сообщения в конец существующего файла. При этом размер файла будет неограниченно расти.
Автоматические, задержка отображения | Управляет всплывающими подсказками в диалогах CodeMaster++ [ARM]. Если эта опция установлена, то подсказка будет всплывать через указанное количество секунд полсе наделения курсора мыши на элемент диалогового окна.
Активируются знаком вопроса на заголовке диалога | Если эта опция установлена, то для вызова подсказки необходимо сначала нажато клавишу "?" в заголовке окна, а затем кликнуть по интересующему элементу окна диалога.

Примечание. Сообщения от функций языка сценариев printf и _printf также заносятся в файл журнала.


Закладка Опции редактора

Закладка Опции редактора диалога Опции редактора задаёт параметры, общие для открытых окон редактора (окна Редактора).

Элемент диалога | Описание
Backspace сливает лидирующие пробелы | Переключает режим Backspace Unindent. См. Примечание 2.
Оставить концевые пробелы | Установленный флаг указывает сохранять пробелы в конце строк при копировании текста в буфер или сохранении на диск. Если флаг снят, то эти пробелы будут удаляться.
Вертикальные блоки | Включает режим вертикальных блоков для действий с блоками.
Постоянные блоки | Включает режим постоянных блоков (Persistent Blocks) для действий с блоками.
Создавать .BAK файл | Установленный флаг указывает, что нужно создавать файл *.BAK при каждом сохранении файла в окне Редактора.
Горизонтальный курсор | Установленный флаг включает отображение курсора в виде горизонтальной линии, как приглашение в командной строке DOS.
CR/LF в конце файла | Установленный флаг включает добавление пустой строки к концу файла при сохранении файла на диск, если такой строки нет.
Выделение синтаксиса цветом | Установленный флаг включает подсветку синтаксиса конструкций языка.
Выделять многострочные комментарии | Установленный флаг включает подсветку многострочных комментариев. По умолчанию, окно подсвечивает только однострочные комментарии.
Панель автодописывания/ автопросмотра | При установленном флаге, у нового открытого окна Редактора будет открыта правая панель и будет включена функция автоматического дописывания слов.
Полный путь в заголовке окна | Установленный флаг включает отображение полного пути открытого файла в строке заголовка окна Редактора.
Очищать клипборд перед копированием | При снятом флаге, копирование в буфер обмена не удаляет его прежнее содержимое.
Преобразовывать ввод с клавиатуры в OEM | Когда флаг установлен, окно Редактора преобразует символы, которые Вы вводите в окне, из кодировки MS Windows в кодировку OEM (национальную), соответствующую Вашей национальной версии ОС Windows. См. Примечание 1.
Выделять парные "(" и "{" при вводе ")" и "}" | При установленном флаге, после ввода символа ")" или "}", Редактор будет автоматически находить и выделять цветом фона фрагмент текста от введенной скобки до соответствующей открывающей скобки.
Строка статуса для ошибок/предупреждений | Установленный флаг включает вывод диагностических сообщений в строку статуса окна Редактора.
Автосохранение файлов каждые … мин | Задаёт интервал времени для автоматического сохранения файла. Введите значение в минутах в поле справа.
Размер табуляции | Задаёт ширину табуляции для отображения текста. Допустимые значения лежат в интервале от 1 до 32. Если в открытом файле есть символы табуляции ASCII, они будут заменены пробелами в соответствии с заданной шириной табуляции.
Счётчик отката | Устанавливает максимально доступное количество шагов возврата (512 по умолчанию). Если этого недостаточно, можно задать количество до 10000 шагов. Однако большие значения требуют больше объём памяти для редактора.
Автоматическое дописывание слов | Флаг Включено включает функцию автоматического дописывания слов. Поле Диапазон указывает, сколько строк текста сканировать.
Автоматический отступ | Переключает варианты автоматического отступа для новой строки, созданной нажатием клавиши Enter.
Если другое приложение изменило файл | Задает варианты поведения при изменении другим приложением файла открытого в окне Редактора.
Размер табуляции | Задает размер табуляции в пробелах.
Счетчик отката | Задает размер стека отката, используемого в операции Редактора "Откат".
Выделять цветом русские буквы | Установленный флаг включает выделение русских букв, которые не находятся внутри комментариев или не заключены в кавычки.

Примечание.

1. Флаг Преобразовывать ввод с клавиатуры в OEM следует устанавливать только в случае, когда Вы собираетесь изменить в Редакторе текст файла в кодировке OEM. Если нужно только посмотреть такой файл, то задайте шрифт Terminal для окна Редактора в закладке Шрифты диалога Опции экрана. Для этого выделите в списке Окна элемент Редактор и нажмите кнопку Выбрать шрифт.

2. Режим Backspace Unindent устанавливает результат от нажатия клавиши Backspace:

 | Backspace Unindent включён | Backspace Unindent выключен
Режим Insert | Все находящиеся слева от курсора пробелы удаляются. | Удаляется один пробел слева от курсора. Курсор и остальная часть строки справа от курсора сдвигаются на одну позицию влево.
Режим Overwrite | Курсор перемещается в первую позицию в строке. Текст в строке остаётся на своём прежнем месте. | Только курсор смещается на одну позицию влево. Текст в строке остаётся на своём прежнем месте.


Отладка

Закладка Отладка

Закладка Отладка диалога Опции редактора задаёт параметры визуализации при отладке программы

.

Элемент диалога | Описание
Интегрированное окно исходного текста с закладками | Когда флаг установлен, открывает второе и последующие окна исходных файлов в одном окне Редактора. В другом случае, CodeMaster++ [ARM] открывает второе и последующие окна раздельно.
Запоминать позиции точек останова в исходном тексте | Запоминать информацию об исходных строках, где установлены точки останова. После перекомпиляции или перезагрузки, точки останова будут установлены в кодовых адресах соответствующих исходным строкам.
Сохранять двойные строки исходного текста | Когда флаг снят, CodeMaster++ [ARM] будет оставлять только по одной записи для каждого адреса в программе, а именно, для строки с наибольшим порядковым номером.
Помечать строки с кодом | Включает выделение исходных строк, для которых компилятором сгенерирован код. Значок в виде ромба вставляется с левой стороны строки.
Рисовать стрелку в точке выполнения программы | Включает режим отрисовки стрелочки слева от текущей исполняемой строки кода.
Всплывающие описания для чисел | Включает режим всплывающей подсказки (предъявляются различные форматы представления числа) для числовых констант.
Режим отображения дисассемблера | Управляет параметрами смешанного режима отображения. См. Окно Редактора как часть IDE. Смешанный режим (Дисассемблер)
Двойной щелчок мыши | Задаёт тип действия для двойного щелчка мышью.


Закладка Назначение клавиш

При помощи закладки Назначение клавиш диалога Опции редактора можно работать со списком имеющихся команд редактора: добавлять новые команды в редактор, удалять их, назначать и переназначать комбинации клавиш для новых и встроенных команд.

В окне Описание команды левый столбец списка содержит описания команд. Во втором столбце указан тип команды (слово Command означает встроенную команду CodeMaster++ [ARM]; Script ‘XXX’ означает добавленную команду, заданную пользователем). Два столбца справа показывают две комбинации клавиш для вызова данной команды, если они есть. Обе комбинации равнозначны между собой.

Элемент диалога | Описание
Добавить | Открывает диалог Редактирование команды для добавления к списку новой команды и задания её параметров.
Удалить | Удаляет выделенную пользовательскую команду из списка. Встроенные команды удалить невозможно.
Редактировать | Открывает диалог Редактирование команды для корректировки параметров команды. Для встроенных команд можно только переназначить комбинации клавиш (поля Описание команды и Имя сценария будут недоступны).
Редактировать файл сценария | Открывает в окне Текст сценария файл исходного текста сценария выделенной команды

Создание новой команды

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

Файл исходного текста сценария—это файл в формате ASCII. Для исполнения сценария, редактор компилирует файл исходного текста сценария. Обратите внимание, что прежде, чем Вы можете воспользоваться сценарием, который только что отредактировали, надо сначала обязательно сохранить файл его исходного текста на диске, чтобы перекомпилировать его при помощи CodeMaster++ [ARM]'а.

Файлы исходного текста сценариев для новых команд должны храниться только в папке KEYCMD, находящейся в корневой папке CodeMaster++ [ARM]. Пакет программы CodeMaster++ [ARM] содержит там несколько файлов с примерами сценариев. Подробнее о разработке сценариев—в главе Файлы сценариев и автоматизация работы с эмулятором.


Диалог Редактирование команды

Этот диалог Редактирование команды предназначен для работы с параметрами новой или уже существующей команды.

Элемент диалога | Описание
Описание команды | Здесь можно ввести описание команды (не для встроенных команд). Текст этого поля отображается в списке команд.
Имя сценария | Название файла сценария, который исполняет данную команду
Задать комбинацию клавиш #1 Задать комбинацию клавиш #2 | Открывает специализированный диалог, который воспринимает комбинацию клавиш, которую Вы нажмёте в нём, и назначает/снимает эту комбинацию данной команде. Кнопки соответствуют первой и второй комбинации клавиш.
Удалить комбинацию клавиш #1 | Удаляет комбинацию клавиш #1.
Стереть комбинацию клавиш #2 | Удаляет комбинацию клавиш #2.

Файлы исходного текста сценариев для команд должны храниться только в подкаталоге KEYCMD системного каталогаCodeMaster++ [ARM]. Имя файла надо указывать без пути и расширения.

Примечания

1. Нельзя указывать комбинации клавиш, зарезервированные в Windows (например, Alt+– или Alt+Tab).
2. Не рекомендуется указывать комбинации, уже занятые в редакторе и программеCodeMaster++ [ARM], потому что в данном случае у Вас останется меньше способов воспользоваться этими командами. Например, комбинации, открывающие меню приложения, например, Alt+F, Shift+F1, Ctrl+F7, или комбинации клавиш из локального меню окна редактора.
3. Можно использовать более одной клавиши управления в комбинации. Например, можно использовать не только Ctrl+F, но также Ctrl+Shift+F или Ctrl+Alt+Shift+F.
4. Для некоторых встроенных команд, комбинации клавиш нельзя переназначить (например, клавиши перемещения курсора).


Меню Инструменты

В этом меню собраны команды, не относящиеся к какой-либо явной категории..

Команда | Описание
Калькулятор | Открывает диалог Калькулятор.
Запустить Приложение | Открывает диалог Запустить приложение, Здесь вы можете определить программы, которые вы будете запускать из CodeMaster++ [ARM] IDE.


Диалог Калькулятор

Этот диалог служит для вычисления выражений и преобразования величин из одной системы счисления в другую. Результат действий можно скопировать в буфер обмена.

Элемент диалога | Описание
Выражение | Поле для ввода выражения или числа.
Копировать в формате | Задаёт формат, в котором результат будет скопирован в буфер обмена.
Знаковые значения | Указывает, что результат надо интерпретировать и отображать, как величину со знаком (действует только для десятичных чисел).
Отображать незначащие нули | Включает отображение лидирующих нулей (в старших разрядах) в двоичных и шестнадцатеричных числах.
Копировать | Копирует результат вычисления в буфер обмена в формате, заданном переключателем Копировать в формате.
Clr | Очищает поле Выражение.
Bs | Удаляет один символ (цифру) слева от точки ввода (Backspace).
0x | Вставляет «0x».
>> | Выполняет сдвиг результата выражения вправо на указанное количество разрядов.
<< | Выполняет сдвиг результата влево на указанное количество разрядов.
Mod | Вычисляет остаток деления на заданное число.

В то время как Вы печатаете выражение в поле Выражение, CodeMaster++ [ARM] старается вычислить результат и сразу же отображает его в различных форматах в панели Результат. Также, переключатель и два флага в этой панели управляют форматом результата.

Можно присваивать значения переменным в программе и регистрам специального назначения, напечатав выражение с оператором присвоения. Например, если напечатать SP = 66h, то число 66h будет записано в SP.

Примеры выражений:

0x1234

-126

main + 33h

(float)(*ptr + SBUF_TX0)

101100b & 0xF


Диалог Запустить приложение

Этот диалог предназначен для запуска внешних приложений в CodeMaster++ [ARM] IDE, он также открывает список этих приложений. Диалог открывается командой Запустить приложение в меню Инструменты, её кнопкой на панели инструментов или клавишами Alt+F2. Содержит следующие кнопки:

Элемент диалога | Описание
Запуск | Запускает выделенное приложение.
Добавить | Открывает диалог Настройки приложения, чтобы добавить новое приложение в список.
Удалить | Удаляет выделенное приложение из списка (но при этом не удаляет приложение с диска).
Редактировать | Открывает диалог Настройки приложения, чтобы изменить параметры выделенного приложения.


Диалог Настройки приложения

Здесь можно настроить внешнее приложение, чтобы запустить его из CodeMaster++ [ARM] IDE.

Элемент диалога | Описание
Описание приложения | Этот текст будет показан в списке приложений.
Имя исполняемого файла и параметры | Указывает имя исполняемого файла приложения, его путь и параметры командной строки. Смотрите дополнительные пояснения внизу этой главы.
Рабочая директория | Указывает рабочую папку приложения. Если оставить это поле пустым, то рабочая папка будет та же, что и рабочая папка CodeMaster++ [ARM].
`Горячая клавиша` | Задаёт комбинацию клавиш для запуска приложения. Можно выбрать из 10 комбинаций, от Alt+1 до Alt+0.

Как указать имя файла приложения и параметры

Если надо указать параметры командной строки, то имя файла приложения и путь следует заключить в двойные кавычки. Например: "C:\MY PROGRAMMS\MyProg.EXE" /A.

В командную строку можно помещать так называемые «текстовые макросы», позволяющие подставлять имя загруженной в данный момент программы в командную строку:

$FILE_NAME заменяется на имя файла программы с путём, но без расширения.

$FILE_SPEC заменяется полным именем файла программы с путём.


Меню Сценарии

В этом меню собраны пользовательские команды, которые запускают файлы сценариев (ФС). Для определения файлов сценария используйте диалог Файлы Сценария.

Чтобы добавить новую команду в это меню, поместите её файл сценария в текущую папку или в папку, в которую установлена программа CodeMaster++ [ARM]. Первая непустая строка файла сценария должна содержать три символа косой чёрточки и текст, который надо показывать в меню Сценарии:

/// Название команды меню

Когда программа CodeMaster++ [ARM] строит меню Сценарии, она просматривает текущую папку и свою инсталляционную папку на предмет всех файлов *.CMD, содержащих «///» в первой строке (напоминаем, что «//» обозначает начало однострочного комментария), и добавляет текст, следующий за «///», в меню Сценарии.

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

Кнопка | Команда | Описание
 | Запуск... | Открывает диалог Файлы сценария.


Диалог Файлы сценария

Этот диалог заведует файлами сценариев (ФС).

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

Состояние файла | Описание
Stopped | Выполнение файла временно приостановлено.
Running | Файл выполняется.
Waiting | Файл ожидает появления события. Данное состояние инициируется вызовом определённых функций ожидания (например, Wait) в тексте ФС.
Cancelled | Выполнение ФС прекращено, но файл ещё не выгружен из памяти.

Выделенный ФС обозначен цветом. Чтобы выделить файл сценария, щёлкните его кнопкой мыши. Четыре кнопки справа от списка управляют выделенным ФС:

Кнопка | Описание
Завершить | Выгружает выделенный ФС, когда его можно выгрузить. В противном случае, устанавливает флаг Unload Request для выделенного ФС (у таких файлов состояние Cancelled). Следует иметь в виду, что выгрузить файл сценария можно не всегда.
Завершить все | Выгружает все файлы сценариев.
Перезапустить | Повторно запускает выделенный файл сценария.
Отлаживать | Включает режим Debugger для выделенного файла сценария. Эта команда останавливает выполнение ФС (или, если ФС находится в состоянии ожидания, то выполнение остановится, когда ФС выполнит возврат из функции ожидания) и открывает окно Текст сценария для этого ФС.

Когда Вы используете несколько файлов сценариев одновременно и выгружаете или повторно запускаете некоторые из них, следует помнить, что ФС могут сообща пользоваться глобальными данными и функциями. Если один из ФС обращается к данным или функциям другого ФС, а этот другой уже выгружен, то интерпретатор подаст сообщение об ошибке и первый ФС тоже будет выгружен.

Кнопки и поля в нижней части диалога управляют запуском файлов сценариев:

Элемент диалога | Описание
Имя файла сценария | Указывает имя файла сценария.
Обзор | Открывает диалог Load/Execute Script File, чтобы найти на диске файл сценария, имя которого надо поместить в поле Имя файла сценария.
Defines | Определяет текстовые переменные препроцессора для компиляции. Подробнее см. Текстовые переменные препроцессора внизу этого топика.
Директории для поиска #include-файлов | Задаёт папки для поиска файлов, указанных в директивах #include <file_name> в файле сценария. Можно указать несколько папок через точку с запятой. Также, будет выполнен поиск в текущей папке.
Отладка (открыть окно исходного текста) | Когда флаг установлен, после загрузки файла сценария он не будет выполняться. Вместо этого, CodeMaster++ [ARM] включает режим Debugger для этого файла, т.е., открывает окно Текст сценария для этого ФС.
Автосохранение исходных текстов сценариев | Указывает, что нужно автоматически сохранять все файлы исходного текста сценариев, открытые в окнах Текст сценария на момент нажатия кнопки Запуск.
Запуск | Запускает выполнение файла сценария, указанного в поле Имя файла сценария.

Текстовые переменные препроцессора

Поле Defines эквивалентно директиве #define. Например, если в этом поле Вы напечатаете DEBUG, результат будет такой же, как от директивы #define DEBUG, помещённой в первую строку исходного текста ФС.

Можно задавать значения переменных. Например, DEBUG=3 эквивалентно #define DEBUG 3.

Можно перечислить несколько переменных в строке, разделив их точкой с запятой. Например:

DEBUG;Passes=3;Abort=No.


Меню Окна

Команды этого меню управляют расположением окон в приложении. Также, в нижней части меню есть список открытых на данный момент окон—это стандартный способ для переключения между ними. При выборе названия окна в этом списке, оно активизируется на экране компьютера.

Команда | Описание
Расположить черепицей | Изменяет размеры и располагает окна без наложения друг на друга. При этом размеры окон примерно одинаковы.
Расположить черепицей горизонтально | Располагает все окна горизонтально, без наложения друг на друга. При этом размеры окон примерно одинаковы.
Расположить каскадно | Располагает окна уступом
Упорядочить значки | Упорядочивает расположение свёрнутых окон .
Закрыть все окна | Закрывает все окна


Меню Справка

Команды этого меню работают с системой оперативной справки.

Команда | Описание
Оглавление | Открывает закладку Содержание файла справки.
Поиск | Открывает закладку Предметный указатель файла справки.
Посетить WEB-сайт фирмы NIIET | Открывает в броузере главную страницу WEB-сайта фирмы NIIET.
Послать письмо в NIIET по e-mail | Создает в почтовом клиенте заготовку письма
О CodeMaster++ [ARM] | Открывает диалог Информация.


О CodeMaster++ [ARM]

Этот диалог показывает:

•

номер версии CodeMaster++ [ARM];

•

текущий выбранный целевой микроконтроллер;

•

номер версии ассемблера MCA-96;

•

номер версии компилятора MCC-96;

•

номер версии дампера CMDUMP;

•

номер версии библиотекаря CMLIB;

•

номер версии линкера MCLINK.

Пожалуйста, держите под рукой эту информацию, когда обращаетесь за технической поддержкой. Вполне возможно, что ваши проблемы уже решены, и вам нужно только свериться с новой версией CodeMaster++ [ARM], которая находится на WEB-сайте фирмы NIIET


Окна

В программе CodeMaster++ [ARM] используется стандартный интерфейс MS Windows с некоторыми полезными дополнениями:

1. В каждом специализированном окне есть локальное контекстное меню. Чтобы открыть его, нажмите правую клавишу мыши в пределах окна, или нажмите комбинацию клавиш Ctrl+Enter или Ctrl+F10. Каждой команде такого меню присвоена комбинация «горячих» клавиш Ctrl+<буква>. По нажатию этих клавиш в активном окне исполняется соответствующая команда.
2. У каждого специализированного окна есть своя панель инструментов. Обычно, у каждой команды локального меню есть своя кнопка на этой панели. Действие кнопок панели инструментов специализированного окна распространяется только на это конкретное окно. У главного окна программы CodeMaster++ [ARM] есть несколько панелей инструментов, которые можно включать/выключать (в меню Конфигурация, в диалоге Опции экрана, закладке Линейка управления).
3. У каждой кнопки панели инструментов есть всплывающая подсказка: если навести курсор на кнопку и задержать на пару секунд, появляется маленькое жёлтое окошко с кратким описанием этой кнопки.
4. В целях экономии места на экране у каждого окна можно отключить строку заголовка. Для этого используйте команду Свойства локального меню.
При отсутствии строки заголовка специализированные окна можно распознавать по их содержимому и положению на экране (а также, по цвету и шрифту, когда они заданы отдельно для каждого окна). Чтобы переместить окно, его можно тащить за панель инструментов: поместите курсор на участке панели, свободном от кнопок, нажмите левую клавишу мыши и перетащите окно на новое место.
5. Можно открыть любое количество окон одного типа. Например, несколько окон Дамп или несколько окон Переменные.
6. Во всех диалогах с полями для ввода текста есть списки предыдущих введённых значений. Эти списки сохраняются между сеансами работы.
7. Во всех диалогах с флажками (check boxes) и переключателями (radio buttons) двойной щелчок на флажке или переключателе производит такое же действие, как одиночный щелчок на этом флажке (переключателе) и нажатие кнопки OK. Это удобно, когда сразу после установки флажка (переключателя) Вы собираетесь закрыть этот диалог.


Окно Редактора

Окно Редактора является основным окном в CodeMaster++ [ARM] IDE. Его основное назначение — отображать и позволять редактировать исходный текст программы. В действительности, в этом окне можно полноценно редактировать любой ASCII–файл. Можно открыть столько окон Редактора, сколько нужно.

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

· Базовые (стандартные) функции редактирования, включающие: отмену сделанных действий, поиск фразы, поиск с заменой, повтор последнего поиска (во всех этих функциях можно использовать обычные текстовые строки и выражения поиска). Окно поддерживает постоянные (persistent) блоки и выполняет полный набор действий с блоками со стандартными потоковыми (stream), вертикальными (column) и строчными блоками текста.
· Клавиши редактирования («горячие клавиши») для обращения ко всем обычным функциям редактирования и некоторым дополнительным функциям.
· Расширенные возможности в режиме редактора в виде назначения «горячих клавиш» редактора и создания новых команд. Можно, по своему усмотрению, переназначить комбинации клавиш некоторых встроенных команд редактора. Можно расширить возможности самого редактора: создать новые, собственные (пользовательские) команды редактора на основе встроенного языка сценариев, которые помогут Вам в процессе разработки. Подробнее об этом — смотрите закладка Назначение клавиш (в диалоге Опции редактора).
· Панель инструментов редактора, общую для всех окон Редактора, и индивидуальную панель инструментов в каждом окне Текст.
· Правую панель для отображения дополнительных данных для левой панели.
При работе с исходным текстом, правая панель отображает список автоматического дописывания слов. В режиме отладки, правая панель отображает значения переменных, находящихся в соответствующих строках левой (основной) панели. Чтобы включить/выключить правую панель, нажмите кнопку Вкл/выкл правую панель на панели инструментов этого окна.

Окно Редактора является частью интегрированной среды разработки. После завершения редактирования исходного текстового файла, Вы можете и дальше работать с этим окном; от компиляции открытого файла до отладки программ. Более подробно об этом смотрите в Отладке..

Локальное меню

Локальное меню окна содержит следующие команды:

Команда

Описание

Выполнить программу до 'курсора'

Выполняет (возобновляет выполнение) программу до адреса, соответствующего строке, в которой находится курсор. Это же самое можно сделать, дважды щёлкнув нужную строку.

Выполнить программу назад до 'курсора'

Выполняет ретроспективный "откат" выполненного кода, до адреса, соответствующего строке, в которой находится курсор - с восстановлением контекста (значения переменных, регистров и пр.). Эта функциональность доступна только если выбран программный симулятор.

Детальный просмотр имени

Открывает окно Просмотр для объекта, у имени которого находится курсор. Если курсор не находится у какого-либо имени, команда открывает диалог Детальный просмотр для указания имени.

Добавить переменную в окно переменных

Открывает окно Переменные (если оно ещё не открыто) и помещает в него переменную, в имени которой находится курсор. Если курсор не находится в каком-либо имени, команда открывает диалог Добавить переменную в окно.

Просмотреть значение переменной

Отображает значение переменной, у которой находится курсор, либо в окно Консоль сообщений (если оно открыто), либо в окне сообщения Вычислить выражение. Если курсор не находится в каком-либо имени, команда открывает диалог Калькулятор для ввода имени переменной.

Просмотреть дисассемблер

Открывает окно Дисассемблер (если оно ещё не открыто) и отображает в нём дисассемблированный код строки текста, в которой находится курсор.

Список функций

Открывает диалог Список функций со списком функций в исходном тексте. Выделите функцию, и окно покажет её исходный текст. Если исходный текст ещё не скомпилирован, то сначала запустится компилятор.

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

Поставить/снять точку останова

Устанавливает/снимает точку останова по коду на строку (на соответствующий адрес в памяти программ).

Установить новый PC

Заносит в счётчик команд адрес строки, в которой находится курсор.

Новый адрес

Открывает диалог Отобразить с адреса. Исходный текст будет показан, начиная с указанного адреса.

Отобразить с адреса PC

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

Выбрать файл исходного текста

Открывает диалог Выбрать файл исходного текста со списком исходных файлов Вашей программы. Выберите файл, и окно покажет его текст.

Компилировать файл

Запускает компиляцию файла, открытого в активном окне.

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

Показать следующую ошибку компиляции

Переходит к следующей строке, в которой есть ошибка, о которой сообщил компилятор.

Смешанный режим (дисассемблер)

Переключает одноимённый режим отображения.

Подробнее об этом режиме— в главе про Отладку, в параграфе про специальные возможности.

Правая панель

Включает/выключает отображение Правой панели (смотрите выше).

Номера строк

Включает/выключает отображение слева от текста отдельной колонки с номерами строк.

Справка об окне

Вызывает эту контекстную справку.

Справка по слову под курсором

Вызывает контекстную справку и пытается найти раздел, имеющий отношение к слову, на котором стоит курсор.

Свойства

Управляет свойствами окна (смотрите Окна).


Окно Редактора исходного текста как часть IDE

Окно Редактора - это важный элемент в CodeMaster++ [ARM] IDE. В этом окне Вы создаете, редактируете и отлаживаете прикладные программы. Переключение от создания/редактирования к отладке находится под контролем Менеджера Проектов CodeMaster++ [ARM]`а. Когда Вы начинаете выполнение любой отладочной команды, Менеджер Проектов проверяет, изменился ли проект со времени последней сборки проекта. Если необходимо, происходит перекомпиляция/пересборка проекта перед выполнением отладочной команды. (Смотрите Сборка проекта Менеджером Проектов).

Обнаружение синтаксических ошибок

Кнопка Компилировать файл панели инструментов окна Редактора и команда Компилировать файл локального меню подают сигнал Менеджеру Проектов запустить компиляцию файла исходного текста, открытого в окне.

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

Более подробное описание взаимодействия окна Редактора и окна Сообщения смотрите в разделе окно Сообщений.

Специальные возможности во время отладки

В окне Редактора:

•

Выделяется цветом строка исходного текста, соответствующая текущему значению счётчика команд (program counter PC).

Примечание. Строка исходного текста на языке Cи при преобразовании в исполняемый код может дать несколько строк на ассемблере. Когда счётчик команд указывает на первую из строк такой группы, соответствующая исходная строка обозначается голубой полосой. Когда программный счетчик PC указывает на другие строки такой группы, соответствующая исходная строка обозначена пунктирной линией.

•

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

•

Работает функция Быстрого просмотра.

•

Показывается сгенерированный код в форме дисассемблированного текста, который смешан с исходным кодом, написанном на языке Си.

Смешанный режим (Дисассемблер)

Имеется два варианта режима отображения дисассемблера:

1. Для каждой строки исходного текста—когда дисассемблированный текст отображается для каждой строки исходного текста, для которой был сгенерирован код.
2. Только для текущей строки—когда дисассемблированный текст отображается для текущей строки, не перегружая экран дисассемблированным текстом других строк.

Текущая строка — это строка исходного текста на языке Cи, которой соответствует значение в счётчике команд. Окно Редактора может обеспечивать этот вариант, когда программа исполняется (отлаживается) по шагам. Т.е. дисассемблированный текст для строки можно видеть непосредственно перед исполнением этой строки.

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


Клавиши редактирования

Используйте следующие комбинации клавиш для успешного редактирования в окне Редактора.

Перемещение курсора

Left, Right, Up, Down На одну позицию влево, вправо, вверх или вниз, соответственно.
Home В начало строки. Позиция, в которую будет помещён курсор, зависит от режима автоотступа (Auto Indent). Если автоотступ выключен, то курсор будет помещён в позицию 1. Если Auto Indent включён, то первое нажатие клавиши Home поместит курсор в первую позицию в строке, где символ не равен пробелу (если ещё не находится там). Второе нажатие клавиши Home переместит курсор в позицию 1.
End В конец строки.
PgUp, PgDn На одну страницу вверх или вниз.
Ctrl+PgUp, Ctrl+Home В начало файла.
Ctrl+PgDn, Ctrl+End В конец файла.
Ctrl+Right, Ctrl+Left На одно слово вправо или влево.

Удаление и вставка

Tab Подставляет пробелы с текущей позиции курсора до ближайшей позиции табуляции.
Del Удаляет символ в позиции курсора.
BackSpace Удаляет символ слева от курсора. Если курсор находится в одном из нескольких пробелов в начале строки, то количество пробелов, которое будет удалено, зависит от режима Backspace Unindents. Если этот режим выключен, будут удалены все пробелы слева от позиции курсора до начала строки. В противном случае будет удалён только один пробел.
Ctrl+Y Удаляет текущую строку.
Ctrl+E Удаляет символы от позиции курсора до конца строки.
Enter Если включён режим вставки (Insert), то вставляет новую строку. В противном случае—переходит на новую строку и ставит курсор в начало строки.

Действия с блоками

Alt+Z Начинает/останавливает выделение строчного блока.

Shift+Right, Shift+Left,
Shift+Up, Shift+Down,
Shift+Home, Shift+End,
Shift+PgUp, Shift+PgDn

Перемещение границы участка, который становится выделенным блоком.
Ctrl+C, Ctrl+Ins Копирует блок в буфер обмена.
Alt+A Присоединить блок к текущему содержимому буфера обмена.
Alt+T Вырезать блок и присоединить его к текущему содержимому буфера обмена.
Del Удалить блок (если режим постоянных блоков выключен) или соответствующий символ (если включён) без копирования его в буфер обмена. Чтобы удалить постоянный блок, используйте Ctrl+X.
Ctrl+X, Ctrl+Del Удалить блок и поместить его в буфер обмена.
Ctrl+V, Shift+Ins Вставляет блок (операция paste) из буфера обмена в позицию курсора (если не выделен никакой блок, или если включён режим постоянных блоков). Если выделен непостоянный блок, то переписать содержимое буфера обмена поверх блока.
Ctrl+Alt+Ins, Shift+F1 | Копирует блок в позицию курсора без буфера обмена (должен быть включён режим постоянных блоков).
Ctrl+Shift+Ins, Shift+F2 | Перемещает блок в позицию курсора без буфера обмена (должен быть включён режим постоянных блоков).
Shift+F3 Снимает выделение блока.

Подробнее—в главе Действия с блоками.

Прочие операции

Insert Переключает режим вставки (Insert) и, соответственно, форму курсора.
Alt+BackSpace Отменяет последнее действие по редактированию.
Alt+[ Открывает диалог Установить закладку.
Alt+] Открывает диалог Восстановить закладку.
Alt+Right Принимает слово, предложенное функцией автоматического дописывания слов.
Ctrl+L Открывает диалог Отобразить с новой строки для перехода к строке с указанным номером.


Специальные функции для написания программ

Исходный текст программы часто содержит много повторяющихся и похожих фрагментов текста и элементов, образующих законченные функциональные блоки в программе. Чтобы облегчить написание исходного текста и работу с ним в последующем, окно Редактора обеспечивает два основных, широко распространённых режима:

· Отступы для похожих элементов и функциональных блоков (режим Indenting).
· Выделение цветом языковых конструкций (подсветка синтаксиса).

Когда включён режим Indenting и Вы нажимаете клавишу Enter, новая строка автоматически повторит отступ предыдущей строки текста или предыдущей фигурной скобки, а курсор будет помещён в первую позицию после отступа. Когда режим выключен, в новой строке не будет отступа и курсор будет в первой позиции.

Таким образом, исходный текст получает специальное форматирование, и в результате, становится более лёгким для чтения. Для управления режимами окна Редактора, используйте диалог Опции редактора (закладку Опции редактора и закладку Назначение клавиш).

Есть дополнение к этим упомянутым специальным режимам:

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


Подсветка синтаксиса

Отображая исходный текст, окно Редактора выделяет разные конструкции языка Cи разным цветом. Данная функция облегчает чтение текста. Индивидуальным цветом выделяются следующие элементы языка:

· Знаки препинания и специальные символы: ( ) [ ] { } . , : ; и так далее.
· Комментарии, которые начинаются с //. Комментарии, заключённые в пары символов /* */ будут выделены цветом, если открывающая и закрывающая пары находятся в одной и той же строке.
· Строки символов, заключённые в двойные или одинарные кавычки.
· Ключевые слова языка Cи (for, while, и так далее).
· Названия типов языка Cи (char, float, и так далее).
· Названия библиотечных функций языка Cи (printf, strcpy, и так далее).

Как управлять

Выделение цветом можно выключить, используя: (меню Конфигурация, команду Опции редактора, диалог Опции редактора, закладку Опции редактора, флаг Выделение синтаксиса цветом), а также изменить цвет, заданный для каждой конструкции. Чтобы изменить цвета, используйте меню Конфигурация, команду и диалог Опции экрана, закладку Цвета, список Цвета, группу Окно исходного текста/ редактора.

Дополнительная информация

В CodeMaster++ [ARM] ключевые слова, названия типов и имена библиотечных функций не определены строго. Их списки находятся в текстовых файлах с расширением .dic в системной папке CodeMaster++ [ARM] (каталоге, в который установлена программа CodeMaster++ [ARM]). Эти файлы можно редактировать по своему усмотрению: удалять ключевые слова или добавлять новые для выделения цветом.


Автоматическое дописывание слов

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

Если курсор находится в конце строки, то по мере ввода каждой следующей буквы, редактор просматривает определённое количество строк текста выше и ниже текущей строки. Если найдено только одно слово, начинающееся точно так же, как Вы уже напечатали, тогда редактор «завершит» это слово добавлением недостающей части слова, начиная с текущей позиции курсора. Если Вам нужно как раз такое слово, нажмите Alt+<стрелка вправо>, и редактор подставит остающуюся часть слова в текст так, как будто это Вы сами его напечатали.

Нажимать Alt+<стрелка вправо> можно в любой момент времени, а не только тогда, когда редактор предлагает Вам завершить слово. В данном случае, редактор откроет список слов, начинающихся с уже напечатанных букв, чтобы Вы выбрали одно из них для завершения. Если нет ни одного подходящего слова, то ничего не произойдёт. Также, если правая панель окна Редактора включена, она отображает список слов для завершения.

Как управлять

Чтобы выключить функцию автоматического дописывания, используйте диалог Опции редактора, закладку Опции редактора, флаг Автоматическое дописывание слов. Когда флаг установлен, поле Диапазон задаёт количество строк для просмотра редактором (по умолчанию выставлено значение 24 строки ниже и 24 строки выше текущей строки). Когда этот параметр больше, чем всего есть строк в файле (например, 65535), тогда редактор будет просматривать весь файл. Однако, чем больше сканируемый участок, тем больше времени отнимает сканирование.


Диалог Отобразить с адреса

Используйте этот диалог, чтобы задать новый адрес, начиная с которого следует отображать исходный текст в окне Редактора, или дисассемблированный текст в окне Дисассемблер, или дамп в окне Дамп, или распределение памяти в окне Распределение памяти.

Элемент диалога | Описание
Введите новый адрес | Задаёт новый адрес.
Список имён | Список символьных имён, определённых в программе или известных ей.
Показывать в списке имена | Указывает классы объектов для отображения в списке Список имён: символьные имена, определённые в загруженной для отладки программе, регистры специального назначения(SFR) или отладочные регистры.
Показывать в списке типы | Указывает типы объектов для отображения. Эта группа флагов действует в роли фильтра.

Примечания

1. Флаг Определённые в программе недоступен, если не загружена программа или программа не содержит символьную информацию.
2. Если этот диалог был открыт из окна Дисассемблер, то отладочные регистры и SFR будут недоступны, потому что они не имеют отношения к памяти программ.
3. Имена SFR и отладочных регистров также отображаются, вне зависимости от установок в панели Показывать в списке типы.
4. Если этот диалог был открыт из окна Дамп, символьные имена соответствуют типу памяти, отображаемому в данный момент в окне Дамп.
5. Нельзя задать новый адрес для окна Дамп, если его стартовый адрес вычисляется при каждом обновлении содержимого этого окна (если адрес задан вычисляемым выражением).

Обычно, имя функции или подпрограммы из списка Список имён используется в качестве нового адреса. То есть, адрес, начиная с которого эта функция расположена в памяти, выступит в роли нового адреса. Но также, для этого можно использовать любое другое корректное выражение.

Чтобы скопировать символьное имя в поле Имя или выражение для просмотра, щёлкните это имя в окне Список имён. Если надо скопировать символьное имя и закрыть этот диалог, дважды щёлкните это имя. Также, адрес можно напечатать с клавиатуры.

Для окна Редактора новый адрес можно задать командой Список функций локального меню этого окна.

После того, как указан новый адрес и нажата кнопка OK, CodeMaster++ [ARM] отображает соответствующую строку в окне и помещает в него курсор.

Если CodeMaster++ [ARM] может определить, какой исходный файл и какая строка исходного текста соответствуют адресу, указанному в этом диалоге, тогда окно Редактора покажет этот файл и строку текста, и поместит курсор в эту строку.


Диалог Отобразить с новой строки

Этот диалог выполняет переход в активном окне Редактора к отображению другой строки исходного текста. Следует указать номер строки или выбрать один из ранее использованных номеров в списке История ввода. Номер первой строки — 1.


Диалог Выбрать файл исходного текста

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

Чтобы выбрать файл, дважды щёлкните его имя в списке, или щёлкните имя один раз и нажмите OK. Окно Редактора покажет этот файл.

Если Вы выбираете файл, чтобы посмотреть конкретную функцию или подпрограмму, то удобнее использовать команду Новый адрес локального меню окна Редактора.


Диалог Детальный просмотр

Диалог предназначен для ввода символьного имени или выражения, для которого будет открыто окно Просмотр.

Обратите внимание, что окно Просмотр можно открыть другими способами. Подробнее об этом в главах:

Окно Редактора, Окно Переменные, Окно Переменные с автопросмотром и Окно Просмотр.

Элемент диалога | Описание
Имя или выражение для просмотра | Содержит выражение или имя объекта, который надо подробно наблюдать.
Список имён | Список символьных имён, определённых в программе или известных ей.
Показывать в списке имена | Указывает классы объектов для отображения в списке Список имён: символьные имена, определённые в загруженной для отладки программе, регистры специального назначения (SFR) или отладочные регистры.
Показывать в списке типы | Указывает типы объектов для отображения. Эта группа флагов действует в роли фильтра.

Примечания

1. Если не загружена программа, или программа не содержит символьную информацию, то Флаг Определённые в программе недоступен.
2. Имена SFR и отладочных регистров отображаются, вне зависимости от установок в панели Показывать в списке типы, если включено отображение SFR и отладочных регистров в панели Показывать в списке имена.

Обычно, имя функции или подпрограммы из списка Список имён используется в качестве нового адреса. То есть, адрес, начиная с которого эта функция расположена в памяти, выступит в роли нового адреса. Однако для этого можно использовать любое другое корректное выражение.

Чтобы скопировать символьное имя в поле Имя или выражение для просмотра, щёлкните это имя в окне Список имён. Если надо скопировать символьное имя и закрыть этот диалог, дважды щёлкните это имя. Также, адрес можно напечатать с клавиатуры.


Функция Быстрого просмотра

Функция быстрого просмотра работает следующим образом: если задержать курсор мыши над именем переменной в окне Редактора, окне Дисассемблер или окне Текст сценария, то через полсекунды появится небольшое желтое окошко с текущим значением этой переменной. При дальнейшем движении курсором мыши это окошко исчезнет.

В окне Редактора, если поместить курсор мыши над именем переменной и одновременно нажать и удерживать обе кнопки мыши, то для этой переменной откроется окно Просмотр. Чтобы закрыть его, отпустите кнопки мыши.


Окно сообщения Вычислить выражение

Это окошко отображает вычисленное значение выражения.


Диалог Список функций

Диалог служит для быстрого перехода к исходному тексту выбранной функции. В диалоге есть список функций, определённых в файле исходного текста, открытом в окне Редактора.

Чтобы выбрать функцию, дважды щёлкните её имя в списке, или щёлкните имя один раз и нажмите OK.

Чтобы получить полный список функций, определённых во всех файлах исходных текстов программы, используйте команду Новый адрес локального меню этого окна.


Действия с блоками

Операции с блоками предназначены для выполнения редактирования с более чем одним символом одновременно. Окно Редактора обеспечивает постоянные блоки (блоки с фиксацией выделения, persistent blocks) и выполняет полный набор действий с потоковыми (stream), вертикальными (column) и строчными блоками текста.

Непостоянные блоки Как только такой блок выделен, с ним надо сразу выполнять действие (удалять, копировать, и т.д.), потому что любое перемещение курсора снимает выделение блока. Если начать печатать текст в тот момент, когда выделен такой блок, то этот блок будет удалён и заменён напечатанным текстом.

Постоянные блоки Выделение блока сохраняется до тех пор, пока выделение не будет снято явно (клавишами Shift+F3) или блок не будет удалён (клавишами Ctrl+X). Для таких блоков операция вставки (paste) выполняется с особенностями. Для них есть две дополнительные операции: быстрое копирование и быстрое перемещение. Эти операции не используют буфер обмена и для выполнения им нужно меньше нажатий клавиш.

Фактически, постоянные и непостоянные блоки различаются только по фиксации выделения. Режим постоянных блоков управляется одноимённым флагом в закладке Опции редактора диалога Опции редактора.

Стандартные блоки Потоковый блок представляет собой «поток текста», который начинается с начальной строки и позиции в этой строке и заканчивается на конечной строке и позиции в конечной строке.

Стандартные блоки включены по умолчанию (снят флаг Вертикальные блоки в диалоге Опции редактора).

Строчные блоки Такой блок состоит из строк текста целиком. Чтобы выделить строчный блок, поместите курсор в любую позицию в первой строке и нажмите Alt+Z, потом поместите курсор в любой позиции в последней строке блока и нажмите Alt+Z ещё раз (второе нажатие не нужно, если блок предстоит немедленно удалить или скопировать в буфер обмена).

Строчные блоки доступны всегда, независимо от состояния флага Вертикальные блоки.

Вертикальные блоки Вертикальные блоки содержат прямоугольный фрагмент текста. Если часть блока выходит за пределы строки, то соответствующие символы блока считаются пробелами. Вертикальные блоки удобны в случаях, как в следующем примере исходного текста:

char Timer0 far ;
char Timer1 far ;
char Int0   far ;
char Int1   far ;

Предположим, что в каждой строке слово «far» надо перенести и поместить сразу после слова «char». Потоковые блоки здесь помогут мало. Но задача может быть легко выполнена одним вертикальным блоком. Выделите вертикальный постоянный блок, содержащий слово «far» в каждой строке, поместите курсор на первую букву слова «Timer0» и нажмите Shift+F2 (быстрое перемещение блока):

Флаг Вертикальные блоки переключает режим между вертикальными блоками и потоковыми блоками (флаг находится в диалоге Опции редактора, закладке Опции редактора, меню Конфигурация).

Чтобы выделить блок, либо перемещайте мышь, нажав её левую кнопку, либо используйте клавиши со стрелками клавиатуры при нажатой клавише Shift. Чтобы снять выделение блока, нажмите Shift+F3.

Копирование / перемещение блоков

Выделенный блок можно скопировать или переместить в пределах этого же окна Редактора двумя способами: непосредственно (быстрое копирование, быстрое перемещение) и через буфер обмена (обычный способ Windows). Копирование и перемещение блоков между окнами Редактора или в другое приложение возможно только через буфер обмена.

Примечание. Результат копирования потокового или вертикального непостоянного блока зависит от режима вставки (INSERT). Если режим включён, то блок будет вставлен в текст в том месте, где находится точка ввода (мигающий курсор). В противном случае, копируемый блок будет записан поверх текста на участке такого же размера.

Быстрое копирование / перемещение

Быстрое копирование и перемещение блоков в пределах одного окна выполняется непосредственно, т.е., без использования буфера обмена, и поэтому удобно, поскольку для этого требуется только одно нажатие клавиш на одно действие. Выделите постоянный блок, потом поместите курсор в позицию, куда надо поместить блок, и нажмите Shift+F1 для копирования, или Shift+F2 для перемещения.

Дополнительные сведения о работе с блоками есть в соответствующей секции главы Клавиши редактирования.


Окно Рабочей области

Окно Рабочей области можно вызвать при помощи команды Главное меню > Просмотр > Рабочая область.

Окно Рабочей области отображает в виде деревьев содержимое самой рабочей области и входящих в нее проектов. Деревья располагаются на закладках; первая закладка (Проекты) содержит полное дерево рабочей области, со всеми проектами; остальные закладки соответствуют отдельным проектам. В дереве рабочей области активный проект выделен жирным шрифтом. В деревьях проектов корневыми узлами служат конфигурации.

Для быстрого переключения текущей конфигурации в рамках рабочей служит комбобокс в верхней части окна.

В дереве проекта отображается содержимое проекта (файлы исходного текста, библиотеки, листинги, файлы препроцессора, и т.д.). Файлы сгруппированы в рамках файловых групп по типам файлов. Древообразная структура содержит следующие элементы для каждого исходного файла в проекте:

· Иконки и имена файлов.
· Описание, если есть, в квадратных скобках (смотрите пример).
· Состояние при последней компиляции (общее количество ошибок, если они случились, предупреждений и замечаний).
· Файлы зависимостей, если есть.

Пример: фраза «Error Handling» описывает файл ERROR.C, который является частью проекта, и при сборке на этот файл было выдано два предупреждения:

error.c [Error Handling] -- 2 Warning(s)

Примечание. Зависимости отображаются в древообразной структуре иначе:

1. Отображаются только их иконки и названия.
2. Файлы зависимостей в рамках дерева подчинены файлу, который зависит от них.

Операции с проектами рабочей области, конфигурациями и файлами проектов можно совершать при помощи команд Локального меню (смотрите ниже). Его вызывают, щелкнув правой кнопкой по выделенному узлу в дереве.

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

Для добавления или удаления конфигураций используйте команду Конфигурации локального меню окна.

Исходные файлы можно добавлять к проекту или удалять из проекта (по одному или по несколько файлов). После добавления файлы появляются на соответствующей ветке древообразной схемы и затем сохраняются в их соответствующем подкаталоге (если при добавлении файла Вы установили соответствующий флаг).

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

Менеджер Проектов определяет зависимости файлов исходного текста, составляющих проект, и добавляет их в древообразную схему проекта в окне. Если в исходных файлах Вы сделали изменения, касающиеся зависимостей (добавили, изменили или удалили строки с директивами #include), используйте команду Обновить зависимости локального меню для обновления изображения в окне Проект. Подробнее об этом—в главе Определение зависимостей.

Однако иногда сканер может быть не в состоянии самостоятельно идентифицировать некоторые сложные случаи зависимости. В этом случае надо добавить зависимость в проект явно, командой Добавить явную зависимость локального меню. Такая зависимость называется «явной». Чтобы удалить явную зависимость, выделите файл зависимости на дереве и используйте команду Убрать файл из проекта.

Локальное меню

Локальное меню окна содержит следующие команды:

Команда | Описание
Опции рабочей области | Открывает диалог Опции рабочей области.
Опции проекта | Открывает диалог Опции проетка для выбранного проекта.
Сделать проект активным | Устанавливает выбранный проект в качестве активного проекта рабочей области. Активный проект выделяется в дереве жирным шрифтом.
Конфигурации | Открывает диалог Конфигурации, позволяющий добавлять, удалять конфигурации и выбирать текущую конфигурацию.
Добавить > Новый проект | Открывает диалог Опции проетка в режиме создания нового проекта.
Добавить > Существующий проект | Открывает стандартный диалог выбора файла проекта.
Добавить > Существующий файл в проект | Открывает стандартный диалог выбора исходного файла. Расширение по умолчанию предлагается в зависимотси от того, для какой группы файлов была вызвана эта команда ("Ассемблерные файлы" - *.mca, "Си-файлы" - *.c).
Добавить > Новый файл в проект | Вызывает диалог для задания имени нового файла. Расширение по умолчанию предлагается в зависимотси от того, для какой группы файлов была вызвана эта команда ("Ассемблерные файлы" - *.mca, "Си-файлы" - *.c).
Добавить > Группу | Открывает диалог для задания имени новой группы файлов. Для конкретной группы можно указать, что файлы из этой группы будут игнорироваться Менеджером Проектов при сборке проекта.
Добавить > Явную зависимость | Открывает диалог Добавить зависимость. Также, смотрите Добавление явных зависимостей к исходному файлу.
Редактировать файл | Открывает окно Редактора для выбранного файла. Это же самое можно сделать, дважды щёлкнув имя файла в древообразной схеме.
Компиляция > Пересобрать проект | Запускает полную пересборку выбранного проекта (все файлы перекомпилируются, вне зависимости от того, модифицированы они или нет).
Компиляция > Cобрать проект | Запускает сборку выбранного проекта; решение о том, нужно ли перекомпилировать конкретный файл, входящий в проект, принимает Менеджер Проектов на основании анализа зависимостей..
Компиляция > Cобрать все проекты | Выполняет операцию "Собрать проект" последовательно для всех проектов рабочей области.
Компиляция > Пересобрать все проекты | Выполняет операцию "Пересобрать проект" последовательно для всех проектов рабочей области.
Компиляция > Компилировать файл | Запускает компиляцию выбранного файла.
Убрать проект, файл или группу | Удаляет выделенный проект из рабочей области, группу или файл из проекта.
Индивидуальные настройки | Открывает диалог Опции файла для выбранного файла.
Обновить зависимости | Запускает сканер зависимостей и обновляет содержимое окна Проект, чтобы отобразить новое дерево. Если Вы редактируете исходный файл, окно автоматически сохранит его на диск перед запуском сканера.
Копия проекта | Создает полную копию выбранного проекта с новым именем и включает его в рабочую область.
Переместить на одну позицию вверх | Перемещает выбранный файл исходного текста на один уровень выше на данной ветке дерева. Эта команда удобна, когда надо явно указать порядок линковки модулей.
Переместить на одну позицию вниз | Перемещает выбранный файл исходного текста на один уровень ниже на данной ветке дерева.
Запустить файл | Запускает (исполняет) выбранный файл из группы Abstract.
Справка об окне | Вызывает эту контекстную справку.
Свойства | Управляет свойствами окна (смотрите Окна).


Сборка проекта Менеджером Проектов

Чтобы запустить Менеджер Проектов, используйте команды локального меню окна Рабочая область, или нажмите кнопку Пересобрать активный проект на панели инструментов CodeMaster++ [ARM]. Запустившись, Менеджер Проектов выполняет следующие действия в отношении проекта:

· Менеджер Проектов проверяет, были ли изменения в проекте с момента последней сборки. Если были, тогда будет запущен компоновщик или библиотекарь (это зависит от заявленной цели проекта).
· Если в проекте не было изменений, Менеджер Проектов сравнивает даты файлов исходного текста, явных зависимостей и объектных файлов, если они уже есть. Если дата исходного файла или какого-либо из его явных зависимостей более поздняя, чем дата соответствующего объектного файла, то этот исходный файл будет перекомпилирован и проект пересобран.

Флаг Проверять автозависимости файлов на закладке Общие Опции проекта указывает, выполнять ли данное сравнение. Подробнее о зависимостях—в главах Неявная зависимость и Определение зависимостей

•

Менеджер Проектов сравнивает даты файлов INCLUDE и даты соответствующих объектных файлов (файлов, которые компилятор добавил при помощи #include директивы и проектные компоненты, созданные INCLUDE файлами). Если INCLUDE файл был модифицирован после последней компиляции, то Менеджер Проектов перекомпилирует его.

•

Менеджер Проектов сравнивает даты объектных файлов, которые участвуют в проекте с датами файла–цели проекта (прожигаемый или библиотечный). Если какой-либо объектный или библиотечный файл имеет дату более позднюю, чем файл–цель проекта, то линкер или библиотекарь запускаются и создают новый прожигаемый или новый библиотечный файл.

Примечание.

Если Вы изменили параметры компилятора, ассемблера или компоновщика, выбрали другой эмулируемый микроконтроллер для проекта или изменили какие-либо пути в группе Директории, то будет лучше воспользоваться командой Пересобрать проект, чтобы перекомпилировать и собрать заново весь проект. В противном случае, при сборке проекта, может получиться, что часть файлов оттранслирована с одним набором параметров, другая часть файлов—с другим (например, типом микроконтроллера). В результате в программе могут появиться трудно диагностируемые ошибки.


Определение зависимостей

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

Явные зависимости

Менеджер Проектов может не определить некоторые сложные зависимости.

В исходном файле на Си или ассемблере с правильным синтаксисом, Менеджер Проектов обрабатывает только вложенный файл, указываемый директивой #include. Он задаётся именем, а не идентификатором. К примеру, стандарт ANSI Си разрешает использование идентификаторов в директиве #include.

Когда команда Собрать проект не может перекомпилировать проект из-за ошибок этого типа, вы должны явно указать зависимости файлов, пропущенные менеджером проектов. Такие файлы называют "явными" зависимостями.

Чтобы сделать это, выберите зависящий файл в окне Рабочая область и используйте команду Добавить > Явную зависимость локального меню. Откроется диалог Добавить зависимость для выполнения этого действия.

Чтобы удалить явную зависимость, надо выбрав файл в окне Рабочая область, вызвать из локального меню команду Убрать проект, файл или группу.

Примечание.

Менеджер Проектов не обрабатывает директивы #include внутри комментариев.


Неявная зависимость

Сканирование зависимостей файла исходного текста.

Файл X зависит от файла Y, если в файле X есть специальная конструкция с именем файла Y в ней. Такой файл Y называется «зависимость для файла X». Например, нижеследующий файл X:

#include <stdio.h>
#include <string.h>

void main()
{
}

зависит от stdio.h и string.h. Здесь директивы #include, определяют зависимости для файла X:

Файл может содержать несколько зависимостей. Прочитайте о явных зависимостях в Определение зависимостей .

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


Диалог Опции рабочей области

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

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


Опции Файла Диалог

Диалог Настройки отдельного файла

Этот диалог позволяет задать параметры исходного файла или группы файлов, в том числе отдельный режим компиляции.

Закладка Общие содержит следующие настройки.

Элемент диалога

Описание

Описание файла

Содержит произвольный текст описания файла. Этот текст отображается рядом с именем файла в окне Рабочей области.

Режим компиляции

Определяет, каким образом Менеджер Проектов учитывает данный файл при выполнении команд Собрать проект и Пересобрать проект:

· Обычный (по умолчанию) - по общим правилам: в случае сборки проекта данный файл будет или не будет перекомпилирован по результатам анализа зависимостей; при пересборке - будет обязательно перекомпилирован.
· Компилировать всегда - файл будет обязательно перекомпилирован при любой сборке / пересборке проекта.
· Исключить из компиляции - файл не участвует в сборке проекта.

Дополнительные опции командной строки

Позволяет задать опции компилятора, которые будут дополнительно добавлены в командную строку при компиляции именно этого файла.

Закладка Настройки компилятора позволяет переопределить для данного файла параметры компиляции, заданные для всего проекта (диалог Опции проекта, закладки Компилятор или Ассемблер). Для этого надо включить опцию Переопределить опции проекта/группы.


Окно Сообщения

В процессе и после каждой компиляции, окно Сообщения отображает сообщения, выдаваемые компилятором, ассемблером, библиотекарем или компоновщиком. Если во время компиляции произошла ошибка, CodeMaster++ [ARM] откроет это окно если оно было закрыто.

Закладка Ошибки/Предупреждения содержит окно вывода диагностических сообщений. Каждое сообщение отображается в окне одной строкой.

Чтобы выбрать сообщение используйте мышь или клавиши со стрелками. Для горизонтальной прокрутки используйте клавиши с левой и правой стрелками. Нажатие клавиш Home (End) переместит курсор в начало (конец) выбранного сообщения.

Чтобы определить строку исходного кода, в которой произошла ошибка, выберите сообщение в соответствующем окне Сообщения нажмите кнопку Edit (на панели инструментов окна Сообщения) или используйте команду Редактировать исходный текст локального меню, или просто дважды щёлкните кнопкой мыши на строке сообщения. Окно Редактора отобразит соответствующую строку текста и станет активным. Если соответствующий исходный файл ещё не открыт в окне Редактора, то CodeMaster++ [ARM] автоматически откроет его.

Закладка Журнал компиляции отображает сеанс компиляции: командные строки, запустившие компилятор, и выходные сообщения компилятора, ассемблера и линкера на консоль.

Локальное меню

Локальное меню окна содержит следующие команды:

Команда | Описание
Редактировать исходный текст | Открывает окно Редактора для файла с данной ошибкой (если оно ещё не открыто) и поместит курсор в строку (и позицию в строке, если это обеспечивается) с данной ошибкой.
Просмотреть исходный текст | Открывает окно Редактора (если оно ещё не открыто для данного файла), окно Редактора отобразит место в исходном файле, где находится ошибка из данного сообщения. Окно Сообщения остаётся активным.
Очистить окно | Удаляет из окна все сообщения.
Не показывать предупреждения | Включает/выключает отображение предупреждений. Когда выключено, предупреждения будут скрыты (но не удалены).
Справка по сообщению | Открывает справку по выделенному в окне сообщению (если справка доступна).
Справка об окне | Вызывает эту контекстную справку.
Справка по слову под курсором | Вызывает контекстную справку и пытается найти раздел, имеющий отношение к слову, на котором стоит курсор.
Свойства | Управляет свойствами окна (смотрите Окна).

Примечание.

Когда Вы добавляете или удаляете строки в окне Редактора, чтобы исправить ошибку, окно Сообщения не обновляет номер ошибочной строки. Например, окно Сообщения сообщает об ошибке в строке 20. Если Вы отредактировали файл и добавили 3 строки после 20-й, то когда Вы выберете сообщение, связанное с 20-й строкой, окно Редактора подсветит строку 20, хотя ошибка сдвинулась на строку 23.


Окно Переменные

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

Сложные объекты (например, структуры или массивы) это окно отображает в одну строку. Для более удобного доступа к содержимому такого объекта лучше использовать команду Детальный просмотр.

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

При добавлении новой переменной в это окно, CodeMaster++ [ARM] помещает его на активную закладку активного окна Переменные.

Можно использовать Ins или горячие клавиши, чтобы добавить переменную в окно Переменные. Также есть следующие способы добавить переменную в окно Переменные:

· Командой Добавить переменную/выражение этого окна.
· Командой Скопировать в окно переменных окна Переменные с автопросмотром.
· Командой Добавить переменную в окно переменных окон Редактора, Дисассемблера, Распределение памяти.
· Командой Добавить переменную меню Команды.

На панели инструментов каждого из перечисленных выше окон есть кнопка +Watch, которая добавляет выбранный объект в окно Переменные.

Выбранный объект окно выделяет цветом. Чтобы выбрать другой объект, щёлкните его кнопкой мыши или используйте клавиши управления курсором.

Режимы отображения

В окне есть вертикальная и горизонтальная сетки, которые можно включить/выключить по отдельности.

Когда включена вертикальная сетка, данные в окне расположены столбцами и у каждого столбца есть заголовок в виде кнопки. Нажатие кнопок Имя, Тип и Адрес открывает диалог Опции отображения для выделенной в окне переменной. Нажатие кнопки Значение открывает диалог Изменить значение для выделенной переменной.

Когда вертикальная сетка выключена, двойной щелчок на строке с объектом открывает диалог Изменить значение для этой переменной.

Чтобы включить/выключить вертикальную или горизонтальную сетку, используйте соответствующий флаг на закладке Шрифты (меню Конфигурация, команда Опции экрана).

Локальное меню

Локальное меню окна содержит следующие команды:

Команда | Описание
Добавить переменную/выражение | Добавляет один или несколько объектов в окно. Открывает диалог Добавить переменную в окно для выбора объекта по имени. Вместо имени можно ввести выражение.
Удалить переменную из окна | Удаляет выбранный объект из окна.
Удалить все переменные из окна | Удаляет из окна все объекты.
Изменить значение | Открывает диалог Изменить значение, чтобы задать новое значение для выделенной переменной. Это же самое можно сделать, просто начав печатать новое значение на клавиатуре.
Детальный просмотр | Открывает окно Просмотр для выделенного объекта.
Переместить имя вверх | Перемещает выделенный в списке объект на одну строку вверх.
Переместить имя вниз | Перемещает выделенный в списке объект на одну строку вниз.
Опции отображения | Открывает диалог Опции отображения, чтобы изменить параметры отображения выделенного объекта, а также для добавления или удаления закладок в окне.
Добавить новую страницу | Действует аналогично кнопке Добавить страницу диалога Опции отображения.
Справка об окне | Вызывает эту контекстную справку.
Свойства | Управляет свойствами окна (смотрите Окна).


Диалог Опции отображения

Этот диалог управляет параметрами отображения выделенной переменной или выражения в окне Переменные, а также добавляет или удаляет закладки в этом окне.

Элемент диалога | Описание
Имя переменной | Содержит имя выделенной переменной или выражение.
Формат отображения | Указывает формат представления для выделенного выражения: двоичный, шестнадцатеричный, десятичный или ASCII.
Всплывающее описание | Включает всплывающие описания для регистров специального назначения.
Отображать битовую схему | Включает всплывающие описания битовой схемы регистров специального назначения, если они есть.
Отображать описания битов | Включает всплывающие описания для битов регистров специального назначения, если они есть.
Автоматический размер поля имени | Когда эта опция включена, и включена вертикальная сетка (смотрите примечание внизу), окно автоматически подстраивает ширину столбца Имя под самую длинную запись в столбце.
Страницы | Список закладок в окне.
Добавить страницу | Открывает диалог Добавить новую страницу в окно Переменных, для ввода названия новой закладки. Окно создаст новую закладку по нажатию OK.
Удалить страницу | Удаляет закладку, выделенную в списке Tabs.
Редактировать страницу | Открывает диалог Задать имя страницы, для редактирования названия закладки.
Глобальные опции отладки/ отображения | Открывает закладку Отображение переменных диалога Опции Отладки.

Примечание.

Чтобы включить вертикальную сетку, используйте меню Конфигурация, диалог Опции экрана, закладку Шрифт, флаг в панели Сетка.


Диалог Добавить переменную в окно

Диалог предназначен для добавления символьных имён, например, имени переменной или выражения в окно Переменные. Окно содержит список символьных имён, определённых в программе или известных ей.

Элемент диалога | Описание
Имя переменной или выражение | Задаёт добавляемое символьное имя или выражение. Можно указать несколько имён и выражений вручную, через точку с запятой, или выбирая в списке при нажатой клавише Ctrl.
Показывать в списке имена | Указывает классы объектов для отображения в списке имён: символьные имена, определённые в загруженной для отладки программе, регистры специального назначения или отладочные регистры.
Показывать в списке типы | Указывает типы объектов для отображения. Эта группа флагов действует в роли фильтра.
Формат отображения | Задаёт формат представления (двоичный, шестнадцатеричный, десятичный или ASCII).
Добавить | Добавляет указанное символьное имя или имена в окно Переменные.
Готово | Закрывает диалог.


Диалог Изменить значение

Диалог задаёт новое значение для выделенных:

· переменной в окне Переменные с автопросмотром или в окне Переменные;
· объекта в окне Просмотр;
· ячейки памяти в окне Распределение памяти.

Введите значение (число или выражение) или выберите одно из ранее использованных значений в списке История ввода.

Примечание.

В окне Просмотр можно задать новое значение только для скалярной переменной. Например, нельзя задать значение для массива или структуры.


Окно Переменные с автопросмотром

Во время отладки программы, это окно автоматически отображает имена и значения переменных, которые в данный момент видны в окне Редактора. Если нет ни одного открытого окна Редактора, тогда символьные имена берутся из окна Дисассемблер. Если окно Дисассемблер тоже закрыто, тогда окно Переменные с автопросмотром остаётся пустым.

Окно Переменные с автопросмотром поделено красной горизонтальной линией на две части, верхнюю и нижнюю. В каждый момент времени в окне Редактора есть строка, соответствующая текущему значению счётчика команд микроконтроллера. Эта строка выделена голубым цветом (по умолчанию). Имена переменных, находящихся в этой строке, и их текущие значения отображаются в верхней части окна Переменные с автопросмотром. Ниже красной линии, окно отображает списки:

· параметры локальных переменных и параметры текущей функции;
· прочие переменные, видимые в окне Редактора.

Содержимое окна Переменные с автопросмотром автоматически изменяется при перемещении в окне Редактора.

В отношении объекта, выделенного в окне, можно выполнить любую команду локального меню этого окна. Выделенный объект обозначен цветом фона (чёрным по умолчанию). Чтобы выделить объект, щёлкните его кнопкой мыши или используйте клавиши управления курсором.

Локальное меню

Локальное меню окна содержит следующие команды:

Команда | Описание
Изменить значение | Открывает диалог Изменить значение, чтобы задать новое значение для выделенной переменной. Это же самое можно сделать, просто начав печатать новое значение на клавиатуре.
Детальный просмотр | Открывает окно Просмотр для выделенного объекта.
Скопировать в окно Переменных | Копирует выделенную переменную в окно Переменные.
Формат отображения | Переключает формат представления всех значений в окне между шестнадцатеричным, десятичным, двоичным и ASCII.
Не показывать функции и нетипизированные объекты | Установленный флаг выключает отображение имён и адресов функций и нетипизированных объектов. По умолчанию флаг установлен.
Справка об окне | Вызывает эту контекстную справку.
Свойства | Управляет свойствами окна (смотрите Окна).


Окно Детальный просмотр

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

Первая строка окна Детальный просмотр отображает имя, тип и адрес объекта, а также:

· Для массивов: список элементов и номер, адрес и значение каждого элемента.
· Для структур, объединений и указателей на них: список членов структуры или союза, а также имя, значение, тип и адрес каждого члена.

Окно выделяет цветом выбранный элемент в списке. Чтобы выбрать другой элемент, щёлкните его кнопкой мыши или используйте клавиши управления курсором.

Чтобы открыть окно Детальный просмотр:

· Используйте команду Детальный просмотр окна Редактора, окна Переменные, окна Переменные с автопросмотром.
· Нажмите обе кнопки мыши одновременно, когда курсор находится в нужном имени в окне Редактора. Окно Детальный просмотр закроется при отпускании кнопок.

Когда CodeMaster++ [ARM] загружает файлы конфигурации экрана, то он восстанавливает только окна Детальный просмотр «первого уровня». Окна Детальный просмотр, открытые из другого окна Детальный просмотр, не будут восстановлены.

Локальное меню

Локальное меню окна содержит следующие команды:

Команда | Описание
Детальный просмотр | Открывает новое окно Просмотр для выделенного элемента структуры или массива.
Детальный просмотр в этом же окне | Открывает выбранный элемент структуры или массива в этом же самом окне Просмотр.
Изменить значение | Открывает диалог Изменить значение, чтобы задать новое значение для выделенного объекта. То же самое можно сделать, просто начав печатать новое значение на клавиатуре.
Формат отображения | Переключает формат представления всех значений в окне между шестнадцатеричным, десятичным, двоичным и ASCII.
Редактировать просматриваемое имя | Открывает диалог Редактирование просматриваемого выражения для редактирования имени просматриваемого объекта. Эта команда доступна только в окнах Просмотр «первого уровня».
Расширить диапазон | Разрешает увеличить размер массива. По умолчанию, отображаются только «правильные» элементы массива, номера которых не превышают размера массива. Когда этот флаг установлен, массив виден так, как будто у него максимально возможный размер.
Справка об окне | Вызывает эту контекстную справку.
Свойства | Управляет свойствами окна (смотрите Окна).


Окно Стек вызовов

Окно Стек вызовов получает информацию от Анализатора Эффективности CodeMaster++ [ARM] и поэтому доступно только тогда, когда в качестве отладчика CodeMaster++ [ARM] выбран симулятор. Чтобы активировать функциональность окна Стек вызовов, включите опцию Анализатор Эффективности в закладке Симуляция диалога Опции Отладки.

Во время отладки это окно отображает список функций, расположенных сверху вниз, в том же порядке, как они вызывались программой. Этот список, называемый стеком вызовов, включает только те функции, для которых после компиляции и сборки была получена отладочная информация (смотрите Опции компилятора).

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

Пример

Окно Стек вызовов отображает следующее:

main void function() (C:2100)

Init void function() (C:8438)

GET_CHAR void function() (C:375F)

Это означает, что функция main вызывала функцию Init; затем функцию InitGET_CHAR, а в данный момент выполняется функция GET_CHAR.

Непрерывная симуляция

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

Чтобы периодически обновлять содержимое окна используйте команду Обновить экран в меню Отладка или одноимённую кнопку на панели инструментов CodeMaster++ [ARM].

Локальное меню

Локальное меню окна доступно только при остановленной симуляции. Меню содержит следующие команды, дублируемые соответствующими кнопками на панели инструментов окна.

Элемент диалога | Описание
Просмотр исходного текста точки вызова | Открывает окно Редактора (если оно ещё не открыто ) с исходным текстом и отображает оператор, который вызывает функцию, выбранную в окне Стек вызовов. Одновременно открывает окно Дисассемблер и показывает соответствующую машинную инструкцию. Если симулятор не находит отладочную информацию, то открывается только окно Дизассемблер.
Выполнить до возврата | Исполняет программу до возврата управления из выбранной функции.
Справка об окне | Вызывает эту контекстную справку.
Свойства | Управляет свойствами окна (смотрите Окна).


Окно Дамп памяти

Окно Дамп отображает содержимое областей памяти целевого микроконтроллера. У окна есть две закладки, которые используются для изображения отдельных видов памяти: программная (Code) и данных (Data). Вы можете открыть такое количество окон Дамп, которое Вам потребуется.

Дамп памяти в CodeMaster++ [ARM] расположен в виде строк, содержащих адреса и соответствующее им содержимое памяти. В левом столбце окна отображается адрес первого байта данной строки (буква типа памяти и величина смещения относительно начала данной области памяти).

Данные могут изображаться в представлении ASCII. Однако важно помнить, что опция Display ASCII Codes распространяется только на дампы байтовых строк. Любая попытка выбрать опцию Display ASCII Codes для дампов с двух- или четырех- байтовым представлением будет игнорироваться.

Когда ширина окна недостаточна для размещения ярлыков всех закладок, в правой части панели окна, где размещены эти ярлыки, появляется пара кнопок со стрелками для перемещения панели влево–вправо.

Когда окно активно, курсор выделяет полубайт, цифру или букву, в которой он стоит. Чтобы выделить другую, щёлкните её левой кнопкой мыши или используйте клавиши управления курсором.

Для настройки форматов и других параметров изображения в окне используйте диалог Настройки Окна Дампа.

Порядок работы с дампом памяти

Чтобы перейти к новому адресу, дважды щёлкните в строке поля адресов и укажите новый адрес в диалоге Отобразить с адреса, или просто введите новый адрес в поле адреса в этой строке.

Чтобы изменить значение в ячейке памяти, выберите байт этой ячейки и введите новое значение с клавиатуры. Другой способ: нажмите Enter или дважды щёлкните нужный байт. В открывшемся диалоге Изменить значение укажите новое значение. Значение будет введено непосредственно в формате, действующем в окне в данный момент.

Команда Следовать по адресу (кнопка Follow на панели инструментов окна) позволит вам быстро перевести курсор в определенное место. Например, из дампа Code вы можете перейти в дамп Data.

Локальное меню

Локальное меню окна содержит следующие команды:

Команда | Описание
Опции окна | Открывает диалог Настройки окна дампа.
Новый адрес | Открывает диалог Отобразить с адреса. Можно ввести число или выражение.
Изменить значение | Открывает диалог Изменить значение.
Операции с блоком памяти | Открывает диалог Операции с блоком памяти, для действий с участками памяти.
Загрузить программу/файл данных | Открывает диалог Загрузить программу/Файл данных.
Сохранить данные в файле | Открывает диалог Записать файл на диск из памяти процессора для записи данных из памяти эмулируемого микроконтроллера в файл.
Следовать по адресу | Открывает диалог Следовать по адресу.
Назад по адресу | Откатывает последнюю операцию Следовать по адресу.
Кто живёт по этому адресу? | Выясняет имя переменной, которая расположена по выбранному адресу. Можно выяснить имя переменной, имя регистра специального назначения, номер элемента массива и имя поля структуры.
Перемещение между полями | Перемещает курсор (перескакивает) в соответствующее место в другой части окна: из ячейки дампа в соответствующий ей символ ASCII и наоборот.
Справка об окне | Вызывает эту контекстную справку.
Свойства | Управляет свойствами окна (смотрите Окна).


Диалог Настройки окна дампа

Диалог управляет параметрами отображения данных в окне Дамп.

Элемент диалога

Описание

Формат отображения

Задаёт формат представления данных (двоичный, шестнадцатиричный, десятичный).

Отображать данные как...

Задаёт размер объектов при отображении: 1 байт, 2 байта или 4 байта (двойное слово) и т.д.

Панель ASCII Кодов

Включает правую панель окна. Она отображает коды ASCII (смотрите пример 3 внизу).

Отображать десятичные и шестнадцатиричные данные как знаковые

Включает отображение всех значений в виде знаковых чисел. Дополнительно может быть выбрана опция Всегда отображать '+' или '-'.

Отображать лидирующие нули в десятичных числах

Включает отображение лидирующих нулей для десятичного формата.

Отображать букву мнемоники адресного пространства

Когда флаг выставлен адресное пространство отображается для каждой строки дампа (см.ниже пример #1). Когда флаг очищен адресное пространство не отображается (смотрите ниже пример#2).

Реверсировать порядок байт в словах

Задаёт обратный порядок байт (слов, двойных слов) при отображении слов, двойных или четверных слов (смотрите примечание 1 внизу).

Реверсировать порядок слов в двойных словах

Реверсировать порядок двойных слов в четверных словах

Начальный адрес

Задаёт начальный адрес окна. Окно будет показывать участок дампа, начиная с этого адреса (смотрите примечание 2 внизу).

Заголовок окна

Поле для текста, который будет помещен в строку заголовка данного окна. Это удобно, когда надо различать несколько окон дампа, открытых одновременно.

Если оставить это поле пустым, то в строке заголовка окна будет стоять начальный адрес окна и адрес единицы памяти, в которой находится курсор.

Непечатаемые символы ASCII

Задает правила отображения на панели ASCII-кодов для значений байт, которым может не соответствовать отображаемых символов.

Примечания:

1. Удобнее видеть реверсированный порядок байтов, когда в отлаживаемой программе наиболее значимый байт располагается по самому младшему адресу.
2. Можно задать непостоянный начальный адрес, вычисляемый при каждом обновлении данных в окне дампа. Такой адрес можно задать в виде переменной или выражения, и тогда окно всегда будет показывать участок дампа, начиная с его текущего значения. В этом случае начальный адрес нельзя изменять вручную (вводом с клавиатуры или листая с помощью кнопок вертикальной прокрутки). Для отмены такого варианта начального адреса, оставьте поле адреса пустым.

Пример 1: флаг Отображать адреса установлен

C:0000: 01 00 02 03
C:0004: 01 00 02 03

Пример 2: флаг Отображать адреса снят

01 00 02 03
01 00 02 03

Пример 3: флаг Отображать символьные значения установлен

C:0000: 61 62 63 64|abcd
C:0004: 00 65 00 00|.e..


Диалог Изменить значение

Этот диалог заменяет значение ячейки памяти, в которой находится курсор, на новое. В строке заголовка окна Дамп написан адрес этой ячейки (в квадратных скобках). Размер нового значения будет равен размеру, заданному в диалоге Настройки окна дампа памяти. Например, задано, что память состоит из единиц размером в одно слово и Вы задали новое значение 2, то в память будет записано 16-битное число 2.

Кроме чисел, можно также задавать выражения.


Диалог Следовать по адресу

Этот диалог задаёт параметры команды Следовать по адресу окна Дамп.

Укажите размер адреса (является ли указатель 8-, 16- или 32-битным числом), и адресное пространство, в котором находится новый адрес. Например, в окне курсор находится в ячейке, которая содержит 1234h, и Вы указали, что это 16-битный указатель на ячейку памяти программ. Тогда, выполнив команду, окно Дамп отобразит содержимое памяти программ, начиная с адреса 1234h.

Элемент диалога | Описание
Адресное пространство следования | Указывает адресное пространство микроконтроллера, в котором находится ячейка с данным адресом.
Размер указателя | Задаёт размер текущей единицы памяти (в которой находится курсор): 8 бит, 16 бит (слово) или 32 бита (двойное слово).
Реверсировать порядок байт в словах | Указывает, что в ячейке, интерпретируемой как адрес перехода, обратный порядок байт (слов).
Реверсировать порядок слов в двойных словах


Операции с блоком памяти

Этот диалог выполняет действия с содержимым участков памяти эмуляционного микроконтроллера. Программа CodeMaster++ [ARM] обеспечивает выполнение сложных операций с блоками памяти.

Панель Исходное адресное пространство задаёт участок памяти с начальными данными для операции. Результат операции будет помещён в участок памяти, заданный в панели Адресное пространство назначения. По умолчанию, второй участок совпадает с первым участком. Если операция не использует участок памяти для результата, например, при Поиске и Замене, то параметры этой панели будут недоступны.

Элемент диалога | Описание
Начальный адрес | Начальный адрес участка памяти.
Конечный адрес | Конечный адрес участка памяти, включительно. Конечный адрес участка памяти определяется по размеру исходного участка.
Весь диапазон | Задаёт начальный и конечный адреса равными началу и концу всего адресного пространства памяти данного типа.

Диалог выполняет следующие операции. Каждая операция начинает выполняться, после того как вы нажмете кнопку OK.

Операция | Описание
Заполнить значением | Заполнить буфер значением или последовательностью значений, заданными в поле справа.
Поиск данных | Искать в участке с начальными данными значение или последовательность значений, заданную в поле справа.
Копировать | Копировать данные из участка памяти в другой участок. Можно скопировать блок в пределах памяти одного и того же типа, или в память другого типа.
Сравнить | Сравнить содержимое двух участков памяти. Если есть различия, то появится окошко сообщения с адресами ячеек и значениями, которые не совпадают и вопросом о продолжении операции сравнения.
Инвертировать | Инвертировать содержимое участка памяти побитно.
Вычислить контрольную сумму | Вычислить контрольную сумму данных в исходном участке памяти. Смотрите примечание внизу.
Вычесть результат из нуля | Вычесть полученную контрольную сумму из нуля.
Записать результат в память | Записать 32-битный результат вычисления контрольной суммы по адресу, заданному в поле Начальный адрес для участка назначения. Если этот флаг снят, то CodeMaster++ [ARM] только покажет контрольную сумму в виде сообщения.
AND со значением | Для заданного участка памяти выполнить побитно операцию И с операндом из текстового поля справа. Смотрите примечания внизу.
OR со значением | Для заданного участка памяти выполнить побитно операцию ИЛИ с операндом из текстового поля справа..
XOR со значением | Для заданного участка памяти выполнить побитно операцию ИСКЛЮЧАЮЩЕЕ ИЛИ с операндом из текстового поля справа.
Данные = машинная инструкция | Указывает, что введённый текст следует считать машинной инструкцией. Тогда программа CodeMaster++ [ARM] ассемблирует эту инструкцию (конвертирует её в машинный код) и выполнит заданную операцию с операндом, равным полученному машинному коду.

Примечания

1. Исходный участок и участок назначения могут перекрываться: операции выполняются при помощи временного промежуточного буфера.
2. Команды Копировать и Сравнить используют участки, заданные в панелях Исходное адресное пространство и Адресное пространство назначения.
3. Контрольная сумма вычисляется как 32-битное число простым суммированием. Если данное адресное пространство организовано по байтам, то будут суммироваться 8-битные значения. Если оно организовано по словам, тогда суммироваться будут 16-битные значения.
4. Логические операции (И, ИЛИ, ИСКЛЮЧАЮЩЕЕ ИЛИ) выполняются над данными из участка, заданного в Исходное адресное пространство, а результат операции записывает в участок, заданный в Адресное пространство назначения. При этом размер операнда, указанного для операции, будет равным размеру единицы памяти, т.е., будет соответствовать организации памяти на устройстве пользователя.(16-бит для памяти Prog, Data16, Reg и Stack, 8-бит для памяти Data8).
5. Есть возможность выполнять более сложные действия с блоками памяти, с помощью файлов сценария.


Окно Анализатор Выполнения/Доступа

Это окно отображает результат работы Анализатора доступа к памяти программ во время исполнения Вашей программы. Это окно доступно только, если в качестве CodeMaster++ [ARM] отладчика выбран симулятор. В окне три закладки: Графически, Диапазоны и Функции/Объекты данных.

Закладка Графически отображает результат в форме прямоугольников, по одному прямоугольнику на адрес в памяти. Расцветка прямоугольника соответствует состоянию ячейки (условные обозначения—в параграфе внизу).

В нижней части окна можно включить/выключить панель для отображения исходного текста, она удобна для изучения результатов. У нижней панели есть собственная панель инструментов, кнопки этой панели, за исключением Show, соответствуют одноимённым кнопкам окна Редактора. Но в этой панели нельзя редактировать исходный текст.

Чтобы найти первый байт из числа байтов, занятых строкой исходного текста, поместите курсор в нужную строку в панели текста (щёлкните её кнопкой мыши), и нажмите кнопку Show. Чтобы попасть в строку исходного текста в панели текста, щёлкните интересующую ячейку в верхней панели. Также, когда Вы указываете курсором на ячейку, строка состояния отображает адрес ячейки, имя функции, имя файла исходного текста и номер строки с соответствующей командой, саму команду и комментарий.

Закладка Диапазоны отображает список интервалов адресов ячеек памяти, к которым уже были обращения и к которым ещё не было. Каждый следующий интервал в списке начинается сразу за последним адресом предыдущего интервала. Вся память поделена на интервалы, следующие один за другим. У этой закладки нет второй панели.

Чтобы отобразить общую картину доступа после останова программы, следует нажать кнопку Read. Чтение занимает некоторое время, поэтому CodeMaster++ [ARM] не выполняет эту операцию автоматически и чтобы её выполнить, надо подать эмулятору команду.

Закладка Функции/Объекты данных содержит список всех функций и объектов данных каждого файла исходного текста и рисует для них линейные диаграммы. Для каждой функции CodeMaster++ [ARM] вычисляет процент по количеству строк исходного текста (зелёная полоска) и количеству байтов памяти, занятой ими (красная полоска).

Условные обозначения

Состояние ячейки в закладке Графически отображается с помощью комбинации цвета фона, цвета центра прямоугольника. Цвет фона бывает:

Серый Доступа ещё не было.
Синий Был доступ.
Тёмно-серый Доступа ещё не было, а также не было доступа по всем адресам выше этого. Все ячейки этого цвета образуют один непрерывный блок адресов.
Голубой Значение счётчика команд.
Зелёный Маркер выделения адреса первого байта выбранного адреса, интервала или функции.

Цвет центра бывает:

Красный Маркер функции, указанной курсором: выделяет все ячейки, занятые функцией, когда курсор мыши указывает на одну из ячеек, занятых этой функцией.
Голубой Маркер функции: выделяет все ячейки, занятые функцией, когда счётчик команд указывает на одну из ячеек, занятых этой функцией.

Локальное меню

В окне Анализатор Выполнения/Доступа есть три закладки. В каждой закладке свое локальное меню. Их одноимённые команды одинаковы для всех закладок окна.

Команда

Описание

Отобразить с адреса PC

Выделяет ячейку, на которую указывает счётчик команд, зелёным цветом фона.

Новый адрес

Выделяет ячейку по указанному адресу зелёным цветом фона.

Очистка данных анализа

Обнуляет данные о доступе.

Показать значемия маркера

Открывает окно справки с описанием цветов маркеров.

Панель исходного текста

Включает/выключает нижнюю панель закладки (панель исходного текста).

Показать адрес диапазона под курсором в карте

Отображает текущую строку текста в нижней панели закладки Графически (в которой стоит курсор):

· первый байт из числа байтов, соответствующих данной строке, с зелёным фоном.
· остальные байты функции, в которую входит данная строка, в виде последовательности ячеек с красным центром.

Смешанный режим (Дисассемблер)

Эта команда аналогична одноимённой команде меню окна Редактора. Она переключает в режим отображения Дисассемблер.

Отобразить с адреса PC

Эта команда аналогична одноимённой команде меню окна Редактора. Отображает исходный текст с адреса, равного показанию программного счетчика (PC).

Поставить/снять точку останова

Эта команда аналогична одноимённой команде меню окна Редактора Точки останова по коду. Эта команда не запускает выполнение.

Список функций

Эта команда аналогична одноимённой команде меню окна Редактора. Открывает диалог Список Функций с перечнем функций исходного текста. Выберите функцию, и в окне появится исходный текст. Если такового нет, то запустится компилятор.

Редактировать файл

Переключает из позиции курсора в панели текста закладки Графически в точно такую же позицию в окне Редактора с данным исходным файлом.

Другой способ выполнить такой переход — дважды щёлкнуть позицию в строке панели текста.

Прочитать данные карты доступа

Считывает все данные о доступе к ячейкам.

Показать адрес диапазона под курсором в карте

Переключает на верхнюю панель закладки Графически и отображает первый байт выбранной функции, зелёным цветом фона.

Просмотр исходного текста

Присоединяет отдельное самостоятельное окно Редактора и отображает в нём первую строку исходного текста выбранной функции.

Выполнить до выбранной функции

Устанавливает точку останова на точку входа в выбранной функции и запускает выполнение программы.

Показать адрес функции под курсором в карте

Переключает на закладку Графически и отображает ячейки для выделенной функции: её первый байт зелёным цветом фона, а остальные байты — красным цветом центра.

Опции отображения

Открывает диалог Опции отображения. Эта команда есть только для самой правой закладки.

Развернуть все дерево

Открывает ветви дерева функций (закладка Объекты/Функции).

Свернуть все дерево

Закрывает ветви дерева функций.

Справка об окне

Вызывает эту контекстную справку.

Свойства

Управляет свойствами окна (смотрите Окна).


Диалог Опции отображения

Этот диалог управляет параметрами изображения результатов в закладке Функции/Объекты данных окна Анализатор Выполнения/Доступа.

Элемент диалога

Описание

Сортировка

Задаёт вид сортировки имён функций и объектов в списке: по адресу функции/объекта, по алфавиту или по порядку выполнения.

Отображать имена файлов исходного текста

Включает отображение имён файлов исходного текста для элементов списка.

Отображать значки

Включает отображение иконок для функций и объектов в списке.

Отображать нетипизированные метки

Включает отображение нетипизированных меток кода. Это удобно при отладке программ на ассемблере. Если этот флаг снят, закладка отображает только имена функций C.

Откусывать путь от имён файлов

Выключает отображение полного пути в именах файлов исходного текста.

Полные описания функций/меток

Включает отображение типов функций, объектов и их шестнадцатиричных адресов (в скобках) в дополнение к их именам. Например, когда этот флаг установлен:

MyFunc [typeless] () (C:0027)

Отслеживать выполнение программы

Включает отслеживание выполнения программы в окне: окно отслеживает, какая из функций выполняется в данный момент и выделяет её имя. Это выделение перемещается по мере выполнения программы.

Нетипизированные метки выделяются только тогда, когда счётчик команд указывает на адрес, где стоит эта метка.


Окно Распределение памяти

Это окно изображает список объектов, присутствующих в как в памяти данных микроконтроллера (регистры специального назначения, используемые в программе переменные, и т.д.), так и в памяти кода (функции, метки). Для отображения памяти данных и памяти кода используются отдельные закладки. Для каждого объекта, на соответствующей закладке отображается:

· Начальный адрес занимаемого участка памяти.
· Размер участка в байтах (в квадратных скобках).
· Имя объекта (или если по этому адресу находится более одного объекта, то их имена через запятую).
· Значение объекта и описание (аналогично окну Переменные).

Буква в первой позиции строки обозначает тип адресного пространства. Если в некотором участке адресного пространства не обнаружено ни одного объекта, для этого участка в окне будет записано:

*** No Names ***

Строка выбранного объекта в окне выделена цветом фона. Чтобы выбрать другой объект, щёлкните его левой кнопкой мыши или используйте клавиши управления курсором. Все действия, которые можно сделать в этом окне, выполняются для выбранного объекта.

Локальное меню

Локальное меню окна содержит следующие команды:

Команда | Описание
Детальный просмотр имени | Открывает окно Детальный просмотр для выделенного объекта.
Добавить переменную в окно Переменных | Открывает окно Переменные (если оно ещё не открыто) и добавляет в него выбранный объект.
Просмотреть в виде дампа | Открывает окно Дамп (если оно ещё не открыто для этого участка памяти) и показывает в нём выбранный объект.
Изменить значение | Открывает диалог Изменить значение для нового значения выбранного объекта. Новое значение будет немедленно записано в память. Команда доступна только для скалярных объектов.
Новый адрес | Открывает диалог Отобразить с адреса. Окно выделит объект, расположенный по указанному адресу, и отобразит его в первой строке.
Просмотреть исх. текст/дисассемблер | Отображает первую строку текста в окне Редактора и окне Дисассемблер, соответствующую адресу выбранного объекта. Если исходный файл данного модуля не открыт в окне Редактора, команда сначала откроет это окно. Эта команда доступна только при отображении памяти программ.
Синхронизировать с графиком | Позиционирует графическую схему в левой части окна так, чтобы на ней был виден выбранный объект.
Поставить/снять точку останова | Устанавливает или снимает точку останова по коду на адрес выбранного объекта. Эта команда доступна только при отображении памяти программ.
Справка об окне | Вызывает эту контекстную справку.
Свойства | Управляет свойствами окна (смотрите Окна).


Окно Браузер кода

Окно Браузер кода отображает древовидную структуру отлаживаемой программы (функции языка Си и нетипизированные метки, сгруппированные по файлам исходного текста). Дерево программы строится на основании отладочной информации, включенной в исполняемый файл программы (до момента загрузки программы с отладочной информацией это окно остаётся пустым).

Локальное меню

Локальное меню окна содержит следующие команды:

Команда

Описание

Просмотр исходного текста

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

То же самое можно сделать, дважды щёлкнув функцию или метку в окне.

Выполнить до выбранной функции

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

Если в открытом проекте файл исходного текста изменён, то проект будет заново собран, а потом будет исполнена команда.

Поставить/снять точку останова

Включает / выключает точку останова по коду на адресе выбранной метки или начальном адресе участка памяти, занятого выбранной функцией.

Если в открытом проекте файл исходного текста изменён, то проект будет заново собран, а потом будет исполнена команда.

Опции отображения

Открывает диалог Опции отображения для данного окна.

Развернуть всё дерево

Раскрывает всю древовидную структуру. Все ветви становятся видны.

Свернуть всё дерево

Сворачивает всю древовидную структуру. Останутся видны только файлы исходных текстов.

Справка об окне

Вызывает эту контекстную справку.

Свойства

Управляет свойствами окна (смотрите Окна).


Диалог Опции отображения Браузера кода

Этот диалог управляет параметрами изображения в окне Браузер кода.

Элемент диалога

Описание

Сортировка

Задаёт вид сортировки имён функций и меток: по адресу функции (метки) или по алфавиту.

Отображать нетипизированные метки

Включает отображение нетипизированных меток кода. Это удобно при отладке программ на ассемблере. Если этот флаг снят, отображаются только имена функций Cи.

Отображать значки

Включает отображение иконок для исходных файлов, функций и меток.

Откусывать путь от имён файлов

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

Полные описания функций/меток

Включает отображение типов функций и их адресов (в скобках), в дополнение к их именам. Например, когда этот флаг установлен:

Output void(char) (C:02F5)

Отслеживать выполнение программы

Включает отслеживание выполнения программы в окне: окно отслеживает, какая из функций выполняется в данный момент и выделяет цветом её имя. По мере выполнения программы окно выделяет ту или иную функцию.

Нетипизированные метки выделяются только тогда, когда счётчик команд указывает на адрес, где стоит эта метка.


Окно Время выполнения программы

Это окно доступно только доступно только тогда, когда в качестве отладчика CodeMaster++ [ARM] выбран симулятор. Окно отображает значения временных интервалов:

•

с момента, когда программа начала исполняться (Time)

•

с момента, когда программа начала исполнять последний шаг (Last).

Окно также отображает устанавливаемую для симуляции тактовую частоту микроконтроллера. Затраченное время вычисляется как произведение значения таймера/счётчика на измеренную длительность периода тактового сигнала микроконтроллера (такта). Поэтому количество тактов всегда является абсолютно точным значением, тогда как отображаемая продолжительность выполнения может содержать погрешность, если тактовая частота системы изменялась во время выполнения Вашей программы. Поэтому следует иметь в виду, что измеренные продолжительности являются лишь оценочными значениями.

Вычисление параметра Time начинается с момента сброса (обнуления) таймера реального времени. После этого таймер суммирует все временные интервалы, пока ваша программа выполняется непрерывно или пошагово до следующего сброса. Таким образом, поле Time отображает время от момента сброса счётчика до текущего момента.

Поле Last отображает продолжительность выполнения программы с момента последнего останова (когда выполняете программу по шагам). Например, после выполнения машинной инструкции эта строка отображает продолжительность выполнения этой инструкции. После выполнения оператора Cи она отображает суммарную продолжительность выполнения инструкций, составляющих данный оператор, и так далее.

Поле Freq отображает частоту тактового сигнала микроконтроллера, как она определена на закладке Микроконтроллер диалога Опции отладки. Это текущее значение рабочей частоты микроконтроллера. При помощи команды локального меню Изменить значение частоты генератора можно изменить частоту генератора.

Поле Clocks отображает количество тактов, подсчитанное с момента начала эмуляции.

Загрузка программы для отладки автоматически сбрасывает содержимое таймера реального времени. Чтобы выключить эту функцию, используйте флаг Обнулять счётчик времени выполнения на закладке Загрузка кода диалога Опции отладки. Чтобы обнулить таймер вручную, используйте команду локального меню Сбросить счётчик циклов.

Локальное меню

Локальное меню окна содержит следующие команды:

Команда | Описание
Сбросить счётчик циклов | Обнуляет таймер реального времени.
Изменить значение частоты генератора | Открывает диалог Изменить значение частоты генератора для задания частоты тактового генератора, в Гц.
Справка об окне | Вызывает эту контекстную справку.
Свойства | Управляет свойствами окна (смотрите Окна).


Окно Дисассемблер

Это окно отображает дисассемблированный текст программы. Здесь Вы можете видеть программный код и следить за исполнением Вашей программы на уровне ассемблера. Если загруженный исполняемый файл содержит отладочную информацию, Вы сможете также видеть метки и имена функций. Операнды команд будут, где возможно, заменены символическими именами. Когда загруженный код не содержит отладочной информации, это окно отображает команды, восстановленные дисассемблером CodeMaster++ [ARM]. Поэтому оно играет главную роль в отладке.

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

Это окно имеет Функцию быстрого просмотра и встроенный ассемблер. Нажимая левую кнопку на панели инструментов, вы можете управлять открытием или закрытием правой панели, которая отображает локальные переменные, показывает их в окне исходного кода (окна Редактора). Эта панель показывает значения переменных, находящихся в соответствующих строках левой (главной) панели.

Использование мыши

Операция, выполняемая при двойном щелчке левой кнопки мыши или нажатии клавиши Enter, зависит от позиции курсора в рабочей области окна:

· Адрес инструкции. Открывает диалог Отобразить с адреса для начального адреса другого участка памяти для отображения в этом окне. Адрес можно задать в виде выражения.
· Код инструкции и её мнемоника. Выполняет программу до строки, в которой находится курсор.

Использование клавиатуры

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

Таким же образом можно изменить код инструкции. Если поместить курсор в поле мнемоники, можно начать печатать новую мнемонику и автоматически откроется диалог Ассемблировать инструкцию.

Локальное меню

Локальное меню окна содержит следующие команды:

Команда

Описание

Выполнить программу 'до курсора'

Исполняет программу до указанной строки. Другой способ - дважды щёлкнуть кнопкой мыши на строке назначения в окне.

Ассемблировать инструкцию

Открывает диалог Ассемблировать инструкцию для ввода новой инструкции. После нажатия ОК, ассемблирует новую инструкцию и помещает её по адресу выбранной строки. Смотрите примечание внизу.

Другой способ - щёлкнуть кнопкой мыши в поле инструкции и ввести новую инструкцию. Диалог Ассемблировать инструкцию откроется автоматически.

Поставить/снять точку останова

Устанавливает или снимает Точку останова по коду с адреса строки, в которой находится курсор.

Установить новый PC

Заносит в счётчик команд микроконтроллера (PC) адрес строки, в которой находится курсор.

Новый адрес

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

Отобразить с адреса PC

Отображает дисассемблированный текст, начиная с адреса, равного значению счётчика команд.

Добавить переменную в окно переменных

Добавить имя, возле которого находится курсор, в окно Переменные. Если не открыто ни одного окна Переменные, CodeMaster++ [ARM] автоматически откроет его.

Просмотреть исходный текст

Отображает оператор в исходном тексте (в окне Редактора), который соответствует текущей строке. Это действие не всегда возможно потому, что символьная информация (в том числе исходный текст) имеется не для всех ассемблерных инструкций программы.

Загрузить программу/файл данных

Открывает диалог Загрузить программу/Файл данных.

Сохранить данные в файле

Открывает диалог Записать файл на диск из памяти процессора для записи дисассемблированного текста программы из памяти эмулируемого микроконтроллера в файл.

Отображать символьные имена

Включает подстановку символьных имен вместо числовых значений, где это возможно. По умолчанию включено.

Отображать строки исходного текста

Включает отображение строк исходного текста, соответствующих адресам. По умолчанию включено.

Линейка горизонтальной прокрутки

Включает линейку горизонтальной прокрутки окна. По умолчанию выключено.

Правая панель

Включает Панель Автопросмотра (правую панель окна). По умолчанию выключено.

Опции отображения

Локальная команда для окна правой панели. Команда открывает диалог Настройки панели АвтоПросмотра.

Справка об окне

Вызывает эту контекстную справку.

Свойства

Управляет свойствами окна (смотрите Окна).


Диалог Ассемблировать инструкцию

Используйте этот диалог для быстрого редактирования программ прямо в окне Дисассемблер (функциональность встроенного ассемблера). Диалог появляется, когда Вы либо набираете новую инструкцию на месте существующей в поле инструкций в окне Дисассемблер, либо вызвваете команду Ассемблировать инструкцию из локального меню. В верхней части диалога отображается выбранная инструкция, которая будет заменена новой. Запишите новую инструкцию в строке с названием или вызовите ее из списка предыстории. Встроенный ассемблер поддерживает выражения и символьные имена. Когда Вы кликните OK, CodeMaster++ [ARM] автоматически ре-ассемблирует код с новой инструкцией.

Элемент диалога | Описание
Новая инструкция | Поле для новой инструкции, которую надо ассемблировать.
История ввода | Список ранее введённых инструкций.


Диалог Настройки панели автопросмотра

Этот диалог устанавливает параметры правой панели окна Дисассемблер.

Элемент диалога | Описание
Формат отображения | Выбор формата отображения переменных: двоичный, шестнадцатеричный, десятичный или символьный (ASCII).
Всплывающее описание: Включено | Когда эта опция включена, отображаются всплывающие описания переменных, SFR, функций и других объектов на панели. Описания могут не существовать для некоторых объектов. По умолчанию включена.
Отображать битовую схему | Когда эта опция включена, отображаются всплывающие битовые схемы, например для битовых полей SFR. По умолчанию включена.
Отображать описание битов | Когда эта опция включена, отображаются всплывающие описания битов, например для битов SFR. По умолчанию включена.
Не отображать функции, typedefs и нетипизированные объекты | Когда эта опция включена, то не отображаются имена и адреса функций и нетипизированные объекты. По умолчанию включена.


Окно Регистры

Это окно отображает текущее состояние регистров специального назначения (SFR) микропроцессора.

Информация в окне представлена в виде таблицы со следующими столбцами:

Столбец | Содержимое
Имя | Содержит сгруппированые по модулям имена регистров. Информация представлена в виде трехуровневого дерева. На первом уровне находится описание модулей, на втором описание регистров, на третьем описание битовых полей регистров.
Hex | Содержит текущее значение регистра или битового поля в шестнадцатиричном формате.
Dec | Содержит текущее значение регистра или битового поля в десятичном формате.
Bin | Содержит текущее значение регистра или битового поля в двоичном формате.
Адрес/Бит # | Содержит адрес регистра или номера битов битового поля .
Описание | Содержит описание модуля, регистра или битового поля .

Локальное меню

Локальное меню окна содержит следующие команды:

Команда | Описание
Изменить значение | Открывает диалог Изменить значение. Действует только в строках с описанием регистра и/или битового поля.
Добавить имя регистра в окно переменных | Добавляет регистр или битовое поле в окно Переменные.
Справка об окне | Вызывает эту контекстную справку.
Свойства | Управляет свойствами окна (смотрите Окна).


Окно Анализатор эффективности

Это окно отображает результаты Анализа эффективности. В левом столбце отображаются имена функций программы. В среднем столбце отображается вклад каждой функции в общее затраченное время в процентах. В правом столбце отображается количество микросекунд, соответствующее общему времени исполнения каждой функции. Слева от имени функции могут факультативно отображаться символы, указывающие на некоторые атрибуты функции ("L" означает библиотеку, "E" - функцию, исключённую из анализа).

Текущий объект окна выделен. Вы можете изменить выделение мышью или клавишами со стрелками.

Локальное меню

Локальное меню окна содержит команды:

Элемент диалога | Описание
Показать исходный текст | Показывает исходный текст в окне Редактора и в окне Дисассемблер.
Сброс Анализатора Эффективности | Сбрасывает счётчики времени для всех функций. Команда может быть полезна при анализе фрагментов кода.
Отметить все функции как `библиотечные` | Помечает все функции как библиотечные.
Отметить все функции как `программные` | Помечает все функции как программные.
Выключить все функции из анализа | Отменяет анализ всех функций. Используется когда в программе много функций и только немногие из них представляют интерес для анализа.
Включить все функции в анализ | Включает все функции в анализ. Используется, когда из длинного списка функций лишь несколько были исключены из анализа.
`Библиотечная` | Включает/выключает атрибут "Библиотека" для выбранной функции.
`Выключена из анализа` | Включает/выключает атрибут "Исключить" для выбранной функции.
Справка об окне | Вызывает эту контекстную справку.
Свойства | Управляет свойствами окна (смотрите Окна).

Примечание.

CodeMaster++ [ARM] включает анализ эффективности только когда в качестве отладчика выбран симулятор.


Окно Программного Трассировщика

Микроконтроллеры К1921ВК01Т не имеют на кристалле регистров, позволяющих выполнять трассировку программы. Чтобы компенсировать это, отладчики CodeMaster++ [ARM] используют функцию Программной Трассировки.

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

Объём памяти, зарезервированный под буфер трассировщика, может быть 0, 1, 2 или 4 Мб. Выбирая 0, вы отключаете программную трассировку. Чтобы указать размер буфера, используйте диалог Настройки Трассировщика.

Отлаживаемая в данный момент программа отображается на специальной текстовой панели окна Программной Трассировки. Если CodeMaster++ [ARM] сможет распознать соответствие между строкой кода и адресом команды, то после щелчка по кадру в текстовой панели окна Программной Трассировки вы можете увидеть соответствующие строки исходного текста. Чтобы включить / выключить присутствие панели исходного текста надо нажать на кнопку в левом верхнем углу панели инструментов окна.

Окно Программной Трассировки отображает следующие поля и выражения трассировки:

Название столбца

Описание

Frame

Номер кадра.

Time

Отметка времени, полученная из счётчика тактов MCU.

Вы можете установить формат отметки времени как абсолютное значение или как относительное к точке отсчета. Значение времени может быть указано либо в миллисекундах, либо в количестве тактов.

Function Name

Имя Си функции, к которой относится машинная инструкция.

Это поле не будет пустым, если загруженная программа имеет отладочную информацию и еслиCodeMaster++ [ARM] может распознать соответствие между функциями и машинными инструкциями.

Если CodeMaster++ [ARM] не может определить имя функции, он может записать в это поле имя метки, соответствующее адресу кадра.

Addr

Адрес машинной инструкции.

Opcd

Код машинной инструкции.

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

Instruction

Машинная команда, дисассемблированная по значению поля Opcd.

Когда опция Имена переменных в дисассемблере в диалоге Трассируемое выражение выбрана, CodeMaster++ [ARM], где возможно, заменяет абсолютные значения символическими именами.

Source

Строка исходного кода, соответствующая инструкции, если доступна.

Это поле не будет пустым, если загруженная программа имеет отладочную информацию и если CodeMaster++ [ARM] может распознать соответствие между строкой кода и адресом команды.

Локальное меню.

Локальное меню окна содержит команды.

Команда | Описание
Настройки трассировщика и опции отображения | Открывает диалог Настройки Трассировщика.
Очистить трассировочный буфер | Очищает буфер трассировщика. Также автоматически очищает буфер, когда вы изменяете настройки трассировщика или сбрасываете (reset) микроконтроллер.
Показать исходный текст | Отображает текст программы, соответствующий выбранному кадру в окне Дисассемблера и, если возможно, в окне Редактора Исходного Текста.
Установить точку отсчета времени | Устанавливает точку отсчета времени на выбранном кадре.
Сохранить содержимое буфера трассировки в файле | Открывает диалог Копировать содержимое Буфера Трассировки в файл.
Поиск в буфере трассировки | Открывает диалог Поиск в Буфере Трассировки.
Повторить поиск | Повторяет поиск ещё раз с такими же параметрами и опциями, как в предыдущем поиске.
Панель исходного текста | Включает/выключает панель исходного текста окна. Эта команда соответствует кнопке Вкл./выкл. панель исходного текста на панели инструментов окна.

Для лучшего восприятия информации вы можете установить индивидуальный цвет шрифта для каждого поля окна Программной Трассировки. Чтобы изменить цвета, откройте меню Конфигурация , вызовите диалог Опции Экрана, активируйте закладку Цвета, чтобы открыть диалог или вызовите команду Свойства (Цвета) локального меню. Аналогично надо действовать, чтобы установить комбинации клавиш для команд локального меню (закладка Назначение клавиш диалога Опции Экрана). Кроме того вы можете изменить расположение полей окна. Чтобы сделать это, используйте диалог Настройки Трассировщика.

Панель исходного кода, по умолчанию расположенная в нижней части окна, может быть расположена справа. Чтобы сделать это, нажмите кнопку Вертикальная в диалоге Настройки Трассировщика.

Панель исходного кода имеет свое локальное меню и свою панель инструментов. Большинство команд в них совпадают с командами окна Редактора исходного текста. Команда Редактировать файл открывает окно исходного кода с соответствующим исходным файлом, активирует его и устанавливает курсор на соответствующую строку текста. Команда Поставить / Снять точку трассировки устанавливает/сбрасывает точку трассировки на позиции курсора.


Режимы Трассировки

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

Режим

Описание

Каждая машинная инструкция

Трассировщик будет писать каждую выполняемую инструкцию.

Только адреса строк исходного текста

Трассировщик будет писать только инструкции с адресами исходного текста.

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

Этот режим трассировки сохраняет пространство в буфере трассировщика, и исходные строки текста всегда отображаются в поле Source в окне трассировщика.

Изменение трассируемых выражений

Трассировщик будет писать машинную инструкцию, перед тем как инструкция будет выполнена, если любое трассируемое выражение изменит свое значение. Трассировщик покажет, что исполнение инструкции изменит значение.

Этот режим полезен для определения непредвиденных изменений в памяти.

Выражение истинно

Если выделенное выражение становится верным, трассировщик напишет данные машинной инструкции, перед тем как эта инструкция будет исполнена. Например, если вы определили строку my_var == 0x1234", буфер будет собирать только инструкции, которые будут следовать за моментом совпадения my_var и 0x1234

Точки трассировки

Трассировщик записывает только машинные инструкции в точках трассировки. Вы можете установить/снять точки трассировки в окне Редактора и в окне Дисассемблер.

Этот режим используют для трассировки значений переменных в определенных точках вашей программы; например, функциональные параметры в точке входа в функцию.


Диалог Настройки Трассировщика

При помощи этого диалога устанавливаются опции программного трассировщика и конфигурируется окно Программный трассировщик.

Элемент диалога | Описание
Размер Буфера Трассировки | Определяет максимальный размер буфера трассировки. Чтобы выключить трассировщик выберите 0, Трассировщик будет выключен.
Отображение Поля Фрейма | Перечисляет поля, которые будут доступны в окне Программный трассировщик. Поля со сброшенными флагами не будут отображены.
Вверх,Вниз | Сдвигает выбранное поле в списке Frame Contents (содержимое кадра) на одну позицию вверх или вниз. В окне это соответствует сдвигу столбца кадра влево или вправо.
Панель Исходного Текста | Устанавливает ориентацию разделителя панелей окна, когда открыта текстовая панель. Когда вы выбираете Вертикальная панель исходного текста расположится в нижней части окна, когда Горизонтальная -то справа.
Информация Времени Фрейма | Устанавливает формат отображения отметки времени. Дополнительную информацию об этом смотрите в таблице ниже.
Режим Трассировки | Устанавливает рабочие режимы для программного трассировщика. Подробнее смотрите в Режимы Трассировки.
Трассируемые Выражения | Список выражений для трассировки. CodeMaster++ [ARM] может осуществить трассировку для 32 выражений.
Добавить | Открывает диалог Трассируемое выражение, в котором можно добавить новое выражение в список.
Редактировать | Открывает диалог Трассируемое выражение для редактирования выбранного выражения.
Удалить | Удаляет выбранное выражение.
Формат Отображения по умолчанию | Устанавливает формат по умолчанию для трассированных значений выражений. Каждое выражение может использовать либо собственный формат, либо формат устанавливаемый здесь.
При Переполнении БуФера, Записать Буфер в Файл | Если флаг выставлен, то при переполнении буфера, CodeMaster++ [ARM] будет сохранять содержимое буфера трассировки в ASCII файле, название которого надо записать в текстовом поле. При очистке буфера трассировки CodeMaster++ [ARM] автоматически удаляет этот файл.
Имена Переменных в Дисассемблере | Если флаг установлен, трассировщик будет, когда возможно, подставлять символические имена в текст, генерируемый встроенным дисассемблером трассировщика.

Информация времени фрейма

Поле Time может отображать отметки времени в нескольких форматах, устанавливаемых двумя радио кнопками в диалоге Информация Времени Фрейма.

Элемент диалога | Описание
Время относительно точки отсчета | Отметка времени кадра представляется как временной интервал между этим кадром и кадром начала отсчёта. Подробнее о начале отсчёта смотрите примечание ниже. Это представление помогает измерять временные интервалы между событиями.
Абсолютная длительность фрейма | Время кадра представляется как его длительность, т.е. разность между значениями счётчика тактов между этим кадром и следующим.
Отображать в: | Устанавливает единицы измерения времени либо в количестве тактов процессора либо в микросекундах. В последнем случае значение вычисляется по текущей частоте микроконтроллера на момент отображения данных трассировки.

Примечание:

Начало отсчёта времени соответствует кадру, выбранному в окне трассировщика (его цвет может быть выбран, по умолчанию красный). Чтобы переместить начало отсчёта, используйте кнопку Mark на панели инструментов окна. Когда исполнение программы прекращается, окно устанавливает начало отсчёта на последний кадр в буфере.


Диалог Трассируемое Выражение

Этот диалог определяет установки для трассируемых выражений.

Элеменит диалога

Описание

Трассировать Выражение или Имя Переменной

Имя выражения, которое вам надо трассировать. Например, вы можете выбрать как трассируемый: элемент массива, элемент структуры и т.д.

Формат Отображения

Формат отображения для каждого значения выражения в окне программной трассировки.

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

Чтобы корректно использовать формат с плавающей запятой используйте кнопку из радио группы С плавающей точкой.


Диалог Поиск в Буфере Трассировки

Этот диалог устанавливает параметры для поиска данных в буфере программного трассировщика.

Элемент диалога | Описание
Искать | Выбрав соответствующие опции, вы определите, какие параметры следует искать. Значение параметров для поиска надо написать в полях: Адрес программы, Код инструкции, Значения выражений. Смотрите параграф ниже.
Имена | Открывает диалог Адрес Программы для того чтобы записать символьное имя или выбрать его из списка. Например, здесь вы можете написать имя функции Си или метку ассемблерной программы.
Edit | Открывает диалог Значение трассируемого выражения для редактирования значения выражения, используемого в поиске.
Направление поиска | Устанавливает направление поиска. Смотрите параграф ниже.

Параметры поиска

CodeMaster++ [ARM] может искать кадры по значениям в соответствующих полях.

Адрес программы

Если выбрана эта опция, то после нажатия кнопки Поиск CodeMaster++ [ARM] будет производить среди адресов машинных инструкций поиск на соответствие адреса машинной инструкции и адреса, записанного в поле Адрес программы.

Код инструкции

Если выбрана эта опция, то после нажатия кнопки Поиск CodeMaster++ [ARM] будет производить среди кодов машинных инструкций поиск на соответствие кода машинной инструкции и кода, записанного в поле Код инструкции.

Значения выражений

Если выбрана эта опция и были выбраны выражения для трассировки, то после нажатия кнопки Поиск CodeMaster++ [ARM] будет производить поиск значений выражений.

Список справа содержит все трассируемые выражения. Выберите из списка имя выражения и определите значение её, используя кнопку Edit (вы можете выбрать более одного выражения ), после этого нажмите кнопку Поиск.

Направление поиска

Вы можете искать в следующийх направлениях:

Назад с позиции курсора | От выбранного кадра (где стоит курсор) на предыдущие кадры.
Назад с конца буфера | С последнего захваченного кадра (кадр #0) на предыдущие кадры.
Вперед с позиции курсора | От выбранного кадра (где стоит курсор) на последующие кадры.
Вперед с начала буфера | С самого раннего захваченного кадра на последующие кадры.


Окно Консоль сообщений

Окно Консоль сообщений отображает сообщения программы CodeMaster++ [ARM]. Сообщения об ошибках отмечены красным квадратиком, а информационные — зелёным.

Если окно Консоль сообщений не открыто, то каждое сообщение будет отображаться в небольшом индивидуальном диалоговом окне. Если Вы откроете окно Консоль сообщений, то вместо этого все сообщения будут попадать в окно Консоль сообщений.

Окно Консоль сообщений хранит последние 256 сообщений (даже если оно закрыто) и позволяет получить справку по каждому из них. Можно сохранить содержимое окна в отдельном файле; для этого нужно поставить флаг и определить название файла в меню Конфигурация > Опции Экрана > закладка Прочие.

Выбранное сообщение выделено заданным цветом фона. Чтобы выбрать другое сообщение, щёлкните его кнопкой мыши или используйте клавиши управления курсором.

Локальное меню

Локальное меню окна содержит следующие команды:

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


Окно исходного текста файла сценария

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

Кроме того, это окно располагает необходимыми функциями отладки. Имеется подсветка синтаксических конструкций и строк текста ФС, соответствующих текущему значению счётчика команд и установленным точкам останова (смотрите главу Подсветка синтаксиса).

Строки исходного текста, для которых компилятор сгенерировал исполняемый код, обозначены квадратиком в первой позиции.

Локальное меню

Локальное меню окна содержит следующие команды:

Команда | Описание
Step | Выполняет один оператор ФС.
Run | Начинает непрерывное выполнение ФС.
Выполнить до Курсора | Выполнить ФС до адреса, соответствующего строке с курсором. По-другому можно дважды щелкнуть на нужной строке.
Origin | Показывает исходный текст со строки, чей адрес соответствует программному счетчику ФС. Эта команда не работает, когда для данных адресов не существует строк исходного текста.
Новый ПС | Устанавливает значение программного счетчика из ФС по адресу, соответствующему строке с курсором.
Переключить точку останова | Включает / Выключает точку останова по адресу, соответствующему строке с курсором.
Добавить в окно Переменные | Открывает окно Переменные (если оно не открыто) и помещает имя на позицию курсора.
Перезапуск | Перезапустить ФС.


Окно Пользователя

Окно Пользователя используется вовремя работы с файлами сценариев (ФС). Оно позволяет:

•

создавать рисунки в окне при помощи функций графического вывода, доступных из ФС

•

отображать текст в окне

•

реагировать на события (смотрите WaitWindowEvent)

Используя эти свойства, можно организовать работу окна в интерактивном режиме. За дополнительной информацией обращайтесь к разделу "Файлы сценария и автоматизация в CodeMaster++ [ARM]".

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

На панели инструментов окна Пользователя имеется 16 кнопок (0...F). Нажатие на кнопку генерирует событие WE_TOOLBARBUTTON.


Окно потока ввода / вывода

 Выше Пред.

Файлы скриптов используют окна такого типа для отображения потоков ввода/вывода в виде текста. Наиболее общие примеры потоков ввода/вывода - это вывод текста в окно и ввод символов с клавиатуры. Вы можете также переназначить вывод потоков в файлы и чтение данных из файлов. Для всех этих задач файл сценария (ФС) использует функции окна.

Чтобы открыть окно, ФС использует функцию OpenStreamWindow. За дополнительной информацией обращайтесь к разделу "Файлы сценария и автоматизация в CodeMaster++ [ARM]". Функции, управляющие окнами (включая окна Потока Ввода/Вывода) получают идентификатор окна (handle) в качестве параметра. Поэтому несколько окон одного типа могут быть открыты одновременно.

Окно имеет два режима отображения: с автоматическим переносом строки (Wrap) и без него. В режиме автоматического перевода, каждая строка, не поместившаяся в окне, переносится на следующую позицию. В другом режиме конец не поместившейся строки находится за границей экрана и невидим. Кнопка Wrap на панели инструментов служит для переключения между этими режимами. Кнопка Clear очищает содержимое окна.

Окна этого типа не имеют локального меню.


Диалоги Установить/Восстановить глобальную закладку

 Выше

Закладки служат для возврата в последующем к помеченной позиции курсора в файле исходного текста. Бывают локальные и глобальные закладки. Локальные закладки действуют в пределах одного файла. Глобальные закладки хранят не только позицию курсора, но и имя файла.

Когда Вы переходите к глобальной закладке, а соответствующий исходный файл не открыт в окне Редактора, CodeMaster++ [ARM] откроет его и поместит курсор в помеченную закладкой позицию.

Кнопка Удалить удаляет выделенную закладку из списка.

Глобальные закладки хранятся в файле конфигурации, к ним можно вернуться в следующем сеансе работы.


Автоматическое дописывание слов

 Выше

Функция автоматического завершения имени строит список имён, которые начинаются с заданной строки символов. В любом текстовом поле любого диалога можно ввести часть символьного имени и нажать клавишу F2: CodeMaster++ [ARM] отобразит список подходящих имён, начинающихся точно так же, как введённая часть.

Чтобы выбрать имя в этом списке и поместить его в данное текстовое поле, дважды щёлкните её кнопкой мыши, или щёлкните её кнопкой мыши и нажмите OK. Если существует только одно подходящее имя, то список не откроется, а имя будет автоматически помещено в текстовое поле.

Список имён включает в себя:

· Глобальные символьные имена, определённые в отлаживаемой программе.
· Символьные имена, локальные в модулях, при этом проверки области действия символа не происходит.
· Имена отладочных регистров и регистров специального назначения (смотрите Регистры специального назначения и биты).

Также, список содержит имена, которые начинаются с символа подчёркивания плюс указанной строки символов. Это удобно для программ на Си, для которых компилятор генерирует знак подчёркивания в начале символьного имени.


Окно Стек процессора

 Выше

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

Локальное меню

Локальное меню окна содержит следующие команды (большинство аналогично командам локального меню окна Дамп):

Команда | Описание
Изменить значение | Открывает диалог Изменить значение.
Посмотреть исходный текст | Отображает в окне Редактор исходного текста и в окне Дисассемблер исходный текст, интерпретируя значение в выделенной ячейке стека как адрес в памяти кода. Окно Редактор исходного текста открывается только если для данного адреса присутствует отладочная информация.
Отобразить с адреса SP | Позиционирует список в окне на вершину стека.
Опции окна | Открывает диалог Опции отображения стека.
Справка об окне | Вызывает эту контекстную справку.
Свойства | Управляет свойствами окна (смотрите Окна).


Диалог Опции отображения стека

 Выше

Этот диалог управляет параметрами отображения окна Стек процессора.

Элемент диалога | Описание
Формат отображения | Задаёт формат отображения данных (двоичный, шестнадцатиричный, десятичный, ASCII).
Знаковые значения | Включает отображение данных в виде знаковых чисел.
Реверсировать порядок байт | Задаёт обратный порядок байт в словах.