Skip to main content

Отладка в Keil IDE

Настройка отладчика в Keil IDE и руководство по использованию.

Настройка отладчика

  1. Поместить файл 105-003.dll из архива DCSProg6 в каталог C:/Keil_v5/C51/BIN/ .
  2. В каталоге C:/Keil_v5/ в файле _TOOLS.ini в разделе C51 найти максимальный номер для TDRV и добавить строку:
    TDRV*=BIN\105-003.dll ("5400ТР105-003"), где * – следующий номер после максимального. Далее необходимо сохранить изменения и закрыть файл.
Настройка Keil IDE
  1. Запустить Keil IDE. В настройках проекта (комбинация Alt+F7 или кнопка «Options for Target» на панели инструментов) во вкладке «Debug» поставить переключатель «Use» и выбрать «Octopus Driver». Ниже установить «Load Application at Startup».
Настройка Keil IDE
  1. Непосредственно перед запуском отладчика необходимо создать выходной hex-файл отлаживаемой программы
    («Project» –> «Rebuild all target files»), подключить программатор DCSProg в USB-порт компьютера, подать на плату питание и частоту.

Начало работы с отладкой

Запуск отладчика производится комбинацией клавиш Ctrl+F5. При успешном подключении программатора к отладчику в окне логов будет выведено следующее сообщение:

Лог при успешном подключении программатора

При неуспешном подключении программатора либо отладчик будет принудительно отключен, либо в окне логов будет выведено следующее сообщение:

Лог при неуспешном сбросе программатора

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

Возможности отладчика

После загрузки программы в микросхему открывается окно с ассемблерным кодом. Если оно не открылось, его можно открыть вручную нажатием «View» –> «Disassembly Window». В этом окне можно просматривать ассемблерный код, сопоставленный строкам исходного кода на языке Си. Если окно ассемблерных инструкций изначально отображается по-другому, это можно изменить одиночным нажатием ПКМ по окну ассемблерных инструкций и выбором режима отображения «Mixed Mode».

Пример ассемблерного кода в удобочитаемом виде
Выбор режима отображения ассемблерных инструкций вместе с Си кодом

:::alert Примечание При заполнении окна ассемблерных инструкций отладчик не считывает инструкции из микросхемы, а анализирует входной hex-файл. Верификация записанного кода происходит только при команде «Flash Download» :::

В отладочном окне в левом верхнем углу находится основная панель инструментов для управления выполнением программы:

Панель для управления исполнением программы
1Кнопка «RST» сбрасывает выполнение всех инструкций и возвращает PC («Program Counter») в начало программы.
2Кнопка «Run» запускает выполнение программы с текущего PC. Выполнение программы остановится по окончанию или при встрече брейкпоинта.
3Кнопка «Stop» прерывает выполнение программы. PC остаётся на последней выполненной инструкции.
4Кнопка «Step» выполняет одну инструкцию программы, на которую указывает PC.
5Кнопка «Step Over» пропускает одну инструкцию программы, на которую указывает PC.
6Кнопка «Run to Cursor Line» выполняет программу до той строки, на которую указывает курсор в окне ассемблерного кода или в окне кода на Си.

При нажатии ПКМ на строку в ассемблерном окне или в окне Си кода можно задать PC на эту инструкцию, используя команду «Set Program Counter». При нажатии кнопки «Run» исполнение программы начнется с инструкции, на которую указывает установленный «PC».

Установка PC в окне ассемблерного кодаУстановка PC в окне Си кода

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

Окно SFR регистров ядра 8051

Использование точек останова

Отладчик поддерживает до четырёх брейкпоинтов одновременно. Чтобы установить/удалить брейкпоинт необходимо в области кода слева от нужной строки нажать ЛКМ.

Точка останова
Примечание

Команда «Run to Cursor Line» использует брейкпоинт, поэтому при использовании этой команды необходимо убедиться, что в данный момент установлено максимум три брейкпоинта.

Примечание

Команда «Step Over» при прохождении функции использует брейкпоинт, поэтому при использовании этой команды необходимо убедиться, что в данный момент установлено максимум три брейкпоинта.

Просмотр состояния переменных

  1. Открыть окно с отслеживанием переменных можно по нажатию «View» –> «Watch Windows» –> «Watch 1». Снизу отладочного окна появится вкладка «Watch 1».
  2. В данной вкладке можно ввести название переменной в столбец «Name», состояние которой необходимо отслеживать.
  3. При успешном добавлении переменной будет отображено её значение и тип, при неуспешном добавлении в столбце «Value» будет отображаться «cannot evaluate».
  4. Считывание переменной происходит при остановке программы.
Окно для отслеживания переменных
Примечание

При помощи этого окна можно изменять состояние переменных при остановленной программе. Если переменная хранится во внутренней ОЗУ, то состояние меняется, если переменная хранится во внешней ОЗУ (ключевое слово «xdata»), то её состояние не изменяется.

Команда «Flash Download»

Для загрузки программы из Keil IDE в микросхему необходимо в настройках проекта (Alt+F7) во вкладке «Utilities» в меню настроек «Flash Download» указать следующие настройки:

Настройки проекта для включения возможности загружать программу сразу из Keil IDE

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

Кнопка «Flash Download» на панели инструментов Keil IDE

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

Cообщение в окне логов о том, что все 249 байт программы были загружены

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

Примечание

Кнопка «Flash Download» лишь так называется в контексте Keil IDE. В контексте микросхемы программа будет загружаться в RAM_ROM область в SOFT режиме, так как флеш-память у микросхемы 105-003 отсутствует как таковая.

После успешной загрузки и верификации программы для её запуска необходимо нажать на отладочной плате кнопку «RESET».

Такая загрузка происходит относительно долго, т.к. перед записью и верификацией программы происходит полное затирание RAM_ROM области (все 4096 байт заполняются нулями).