Отладка в Keil IDE
Настройка отладчика в Keil IDE и руководство по использованию.
Настройка отладчика
- Поместить файл 105-003.dll из архива DCSProg6 в каталог
C:/Keil_v5/C51/BIN/
. - В каталоге
C:/Keil_v5/
в файле _TOOLS.ini в разделе C51 найти максимальный номер для TDRV и добавить строку:
TDRV*=BIN\105-003.dll ("5400ТР105-003")
, где * – следующий номер после максимального. Далее необходимо сохранить изменения и закрыть файл.
- Запустить Keil IDE. В настройках проекта (комбинация Alt+F7 или кнопка «Options for Target» на панели инструментов) во вкладке «Debug» поставить переключатель «Use» и выбрать «Octopus Driver». Ниже у становить
«Load Application at Startup»
.
- Непосредственно перед запуском отладчика необходимо создать выходной 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 регистров, используя данное окно.
Использование точек останова
Отладчик поддерживает до четырёх брейкпоинтов одновременно. Чтобы установить/удалить брейкпоинт необходимо в области кода слева от нужной строки нажать ЛКМ.
Команда «Run to Cursor Line» использует брейкпоинт, поэтому при использовании этой команды необходимо убедиться, что в данный момент установлено максимум три брейкпоинта.
Команда «Step Over» при прохождении функции использует брейкпоинт, поэтому при использовании этой команды необходимо убедиться, что в данный момент установлено максимум три брейкпоинта.
Просмотр состояния переменных
- Открыть окно с отслеживанием переменных можно по нажатию
«View» –> «Watch Windows» –> «Watch 1»
. Снизу отладочного окна появится вкладка «Watch 1». - В данной вкладке можно ввести название переменной в столбец «Name», состояние которой необходимо отслеживать.
- При успешном добавлении переменной будет отображено её значение и тип, при неуспешном добавлении в столбце «Value» будет отображаться «cannot evaluate».
- Считывание переменной происходит при остановке программы.
При помощи этого окна можно изменять состояние переменных при остановленной программе. Если переменная хранится во внутренней ОЗУ, то состояние меняется, если переменная хранится во внешней ОЗУ (ключевое слово «xdata»), то её состояние не изменяется.
Команда «Flash Download»
Для загрузки программы из Keil IDE в микросхему необходимо в настройках проекта (Alt+F7) во вкладке «Utilities» в меню настроек «Flash Download» указать следующие настройки:
На панели инструментов окна Keil IDE есть кнопка, которая очищает память программ, заполняя ее нулями, затем программа загружается в микросхему, в конце программа считывается из микросхемы и по байтам сравнивается с тем, что должно быть загружено.
При успешном подключении к программатору, успешной записи и верификации загруженной в микросхему программы в окне логов будет выведено сообщение о том, что все байты загружаемой программы совпали.
При обнаружении несовпадений байтов программы об этом также будет сообщено в окне логов. В таком случае рекомендуется заново подать питание и тактирование микросхемы и попробовать снова загрузить программу.
Кнопка «Flash Download» лишь так называется в контексте Keil IDE. В контексте микросхемы программа будет загружаться в RAM_ROM область в SOFT режиме, так как флеш-пам ять у микросхемы 105-003 отсутствует как таковая.
После успешной загрузки и верификации программы для её запуска необходимо нажать на отладочной плате кнопку «RESET».
Такая загрузка происходит относительно долго, т.к. перед записью и верификацией программы происходит полное затирание RAM_ROM области (все 4096 байт заполняются нулями).