Skip to main content

Keil IDE

Установка и использование Keil IDE

Установка и настройка Keil IDE

Перед началом работы необходимо загрузить архивы DCSProg6 и projects_keil с сайта компании (https://dcsoyuz.ru раздел «Программное обеспечение») и извлечь данные на персональный компьютер. Доступ к разделу «Программное обеспечение» предоставляется по запросу на электронную почту (support@dcsoyuz.ru).

Для программирования микросхемы 5400ТР105-003 потребуется программа DCSProg6. Создание конфигурационной последовательности выполняется в ПО Keil MVision C51.

Скачать IDE Keil MVision C51 можно с официального сайта разработчика https://www.keil.com/download/product/

Утилита Keil MVision C51
Утилита Keil MVision C51
  1. Установить скачанную программу, используя настройки по умолчанию.
  2. Открыть проект Example.uvproj.

Для открытия проекта в Keil MVision C51 необходимо выбрать меню Project –> Open Project.

Путь к файлу проекта в архиве projects_keil …\Projects\Example\Example.uvproj.

Выбор проекта в MVision
Выбор проекта в MVision
  1. В настройках проекта («Alt+F7») во вкладке «Target» установить размеры памяти ОЗУ и ПЗУ:
  • Off-chip Code memory: Start – 0x0000; Size – 0x1000;
  • Off-chip Xdata memory: Start – 0x0000; Size – 0x1100.
Установка размеров памяти ОЗУ и ПЗУ в настройках проекта
Установка размеров памяти ОЗУ и ПЗУ в настройках проекта
Настройка проекта для создания файла с расширением hex
Настройка проекта для создания файла с расширением hex
  1. В настройках проекта во вкладке «Output» установить галочку «Create HEX File» для создания файла с расширением hex. Нажать «OK».

Установка и настройка ПО для работы с микросхемой 5400ТР105-003 завершена.

В демонстрационной версии проекта Example.uvproj реализована программа с примером работы светодиодов и выводов микросхемы GPIOA_4 – GPIOA_7.

Создание и обновление файла конфигурации (hex-файл)

Для компиляции тестового проекта выполните команду «Project» –> «Build Target» или клавиша F7. Ошибки компиляции будут выведены в окне Build Output.

Компиляция проекта
Компиляция проекта

Для создания или обновления существующего hex-файла выполните команду Project –> Rebuild all target files.

В результате выполнения команды будет сформирован файл с расширением hex.

Путь к hex-файлу …\Projects\Example\Objects\Example.hex.

Команда для формирования и обновления hex-файла
Команда для формирования и обновления hex-файла

Отладка в Keil

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

  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
Настройка Keil IDE
  1. Запустить Keil IDE. В настройках проекта (комбинация Alt+F7 или кнопка «Options for Target» на панели инструментов) во вкладке «Debug» поставить переключатель «Use» и выбрать «Octopus Driver». Ниже установить Load Application at Startup.
Настройка Keil IDE
Настройка Keil IDE
  1. Непосредственно перед запуском отладчика необходимо создать выходной hex-файл отлаживаемой программы
    («Project» –> «Rebuild all target files»), подключить программатор DCSProg в USB-порт компьютера, подать на плату питание и частоту.

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

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

Лог при успешном подключении программатора
Инициализация программатора
Программатор подключен
Запись байта 0x7 на адресу 0x3200 во внешнюю RAM
Из внешней RAM по адресу 0x3200 считан байт 0x7
Reset

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

Лог при неуспешном сбросе программатора
Инициализация программатора
Программатор подключен
Запись байта 0x7 на адресу 0x3200 во внешнюю RAM
Из внешней RAM по адресу 0x3200 считан байт 0xc8
Reset
Не получен корректный ответ от микросхемы при Reset, проверьте питание и тактирование

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

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

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

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

При заполнении окна ассемблерных инструкций отладчик не считывает инструкции из микросхемы, а анализирует входной 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 в окне ассемблерного кода
Установка PC в окне Си кода
Установка PC в окне Си кода

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

Окно SFR регистров ядра 8051
Окно 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

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

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

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

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

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

Примечание

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

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

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