Лабораторная 2
.docxМинистерство науки и высшего образования Российской Федерации
Федеральное государственное автономное образовательное учреждение высшего образования
ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ СИСТЕМ УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОННИКИ (ТУСУР)
Кафедра комплексной информационной безопасности электронно-вычислительных систем (КИБЭВС)
ОТЛАДКА ПО
Отчет по лабораторной работе №2
по дисциплине «Основы программирования микроконтроллеров»
Студенты гр. 712-2: ___________ Л.С. Болтушкин
___________ Н.А. Рыбин
___________ Д.В. Шабанова __________
Руководитель Старший преподаватель кафедры КИБЭВС
_______ __________ Д.С. Беляков
__________
Томск 2025
Введение
Целью данной лабораторной работы является углубленное изучение архитектуры ARM на примере микроконтроллера STM32F103RBT6 и знакомство со средствами отладки микроконтроллера.
1 ХОД РАБОТЫ
1.1 Установка и настройка окружения
В данной работе предполагается работа в Debian-подобной операционной системе и для разработки прошивки под микроконтроллер были установлены пакеты, представленные на рисунке 1.1.1.
Рисунок 1.1.1 – Установка требуемых пакетов
1.2 Отладка ПО микроконтроллера
Был открыт bash и совершен переход в каталог с демонстрационным проектом из предыдущей работы, скомпилирован и загружен на плату.
Далее была введена команда, для запуска сервера отладки opencd (рисунок 1.2.1).
Рисунок 1.2.1 – Запуск сервера отладки opencd
После открыта новая вкладка терминала и введена команда для запуска отладчика для прошивки из предыдущей лабораторной работы (рисунок 1.2.2).
Рисунок 1.2.2 – Результат запуска отладчика ПО
Далее было совершено подключение к серверу отладки (рисунок 1.2.3), в результате чего произошла остановка ПО микроконтроллера.
Рисунок 1.2.3 – Подключение к серверу отладки
Далее перезагружен и остановлен микроконтроллер, чтобы была начата отладка с самого начала. После поставлена точка останова командой break и запущено исполнение прошивки (рисунок 1.2.4).
Запущен gtkerm и отправлен массив чисел на микроконтроллер (рисунок 1.2.5).
Рисунок 1.2.4 – Срабатывание точки останова №1
Рисунок 1.2.5 – Введенные данные
Далее было добавлено окно с дизассемблированным кодом ПО, установлен фокус на окно и поставлена точка останова по адресу 0х8001158 и запущено исполнение прошивки (рисунок 1.2.6).
Рисунок 1.2.6 – Срабатывание точки останова №2
На рисунке 1.2.7 представлено изменение содержимого регистра r4 командой set на 77, чтобы значение массива buff_in[0] стало равно 77 вместо 11. После командой ni записано содержание r4 в массив buff_in[0] и изменено содержимое 5-го элемента, после чего выведено содержимое первых 5 элементов массива в десятичном виде.
Рисунок 1.2.7 – Модификация значений массива
Далее был совершен выход из данной функции (рисунок 1.2.8).
Рисунок 1.2.8 – Выход из текущей функции в предыдущую
С помощью команд ni совершен переход к адресу 0x8006ba2, введены аргументы функции printf с помощью команды p. Аргументы функции находятся в регистрах r0 и r1 (рисунок 1.2.9).
Рисунок 1.2.9 – Вывод аргументов вызываемой функции
1.3 Описание прошивки
Сначала была изменена длина пароля (рисунок 1.3.1).
Рисунок 1.3.1 – Изменение длины пароля
Просмотр пароля представлен на рисунке 1.3.2.
Рисунок 1.3.2 – Просмотр пароля
На рисунке 1.3.3 представлено успешное получение доступа.
Рисунок 1.3.3 – Разрешение доступа
Заключение
В ходе выполнения данной лабораторной работы были углубленно изучены архитектуры ARM на примере микроконтроллера STM32F103RBT6 и знакомство со средствами отладки микроконтроллера.
