Тема: РАЗРАБОТКА И РЕАЛИЗАЦИЯ ЗАЩИЩЕННОГО ЗАГРУЗЧИКА ПРОГРАММНОГО КОДА ДЛЯ МИКРОКОНТРОЛЛЕРОВ STM32F4XX
Закажите новую по вашим требованиям
Представленный материал является образцом учебного исследования, примером структуры и содержания учебного исследования по заявленной теме. Размещён исключительно в информационных и ознакомительных целях.
Workspay.ru оказывает информационные услуги по сбору, обработке и структурированию материалов в соответствии с требованиями заказчика.
Размещение материала не означает публикацию произведения впервые и не предполагает передачу исключительных авторских прав третьим лицам.
Материал не предназначен для дословной сдачи в образовательные организации и требует самостоятельной переработки с соблюдением законодательства Российской Федерации об авторском праве и принципов академической добросовестности.
Авторские права на исходные материалы принадлежат их законным правообладателям. В случае возникновения вопросов, связанных с размещённым материалом, просим направить обращение через форму обратной связи.
📋 Содержание
1. МИКРОКОНТРОЛЛЕР STM32F429ZIT6 6
1.1. Общее описание микроконтроллера 6
1.2. FLASH-память 8
1.3. SDIO-интерфейс 13
1.4. Работа с ЖК-дисплеем 17
2. АЛГОРИТМЫ ШИФРОВАНИЯ И НАХОЖДЕНИЯ КОНТРОЛЬНОЙ СУММЫ 19
2.1. AES 19
2.2. SHA 25
2.3. CRC 27
3. ПРОГРАММНЫЕ СРЕДСТВА РАЗРАБОТКИ 29
3.1. Высокоинтегрированная программная среда разработки CooCox 29
3.2. Описание используемых библиотек 31
3.2.1. Библиотека CMSIS 31
3.2.2. Библиотека SPL 32
3.2.3. Библиотеки, необходимые для работы с SD картой 33
3.2.4. Библиотеки, реализующие алгоритмы AES и SHA 35
3.2.5. Библиотека ^GUI 36
4. РЕАЛИЗАЦИЯ ЗАЩИЩЕННОГО ЗАГРУЗЧИКА ПРОГРАММНОГО КОДА 37
4.1. Разделение памяти 37
4.2. Схема работы загрузчика 37
4.3. Формирование файла «прошивки» 42
4.4. Реализация макета для отладки загрузчика 45
4.4.1. Общее описание платы STM32F429I-DISCO 45
4.4.2. Подключение карты microSD 46
5. ТЕСТИРОВАНИЕ ЗАЩИЩЕННОГО ЗАГРУЗЧИКА 48
ЗАКЛЮЧЕНИЕ
СПИСОК ЛИТЕРАТУРЫ
Приложение
📖 Введение
Бутлоадер - небольшая программа, записанная в постоянное запоминающее устройство (ПЗУ) микроконтроллера, которая может принимать данные через любой, заранее определенный программистом интерфейс (UART, USB, SPI, SDIO). При старте микроконтроллера управление передается бутлоадеру, который проверяет наличие заранее определенных условий и, если условия не совпадают, передает управление основной программе. Если же условия совпадают, бутлоадер переходит в режим программирования.
Поставляемая в незащищенном виде «прошивка» может стать причиной взлома, нелегального копирования или кражи секретов компании- разработчика. Защищенность бутлоадера подразумевает невозможность (либо значительное удорожание) взлома кода конкурирующими организациями с целью несанкционированного получения доступа к ПО, как наиболее трудоемкой и ценной составляющей интеллектуальной собственности.
Цель работы: разработать защищенный загрузчик программного кода для микроконтроллеров STM32F4xx и отладить его работу на макете, созданном на базе отладочной платы STM32F429I-DISCO.
Поставленная цель потребовала решения следующих задач:
1) познакомиться с микроконтроллером STM32F429ZIT6 и его возможностями, а также с периферией, необходимой для реализации загрузчика (FLASH, SDIO, TFT-LCD контроллер);
2) познакомиться с программными средствами разработки: высокоинтегрированной программной средой для разработки кода микроконтроллеров архитектуры ARM CooCox и компилятором ARM GCC;
3) изучить выбранные для реализации загрузчика алгоритмы шифрования (AES, SHA) и алгоритм нахождения контрольной суммы (CRC);
4) разработать алгоритм работы загрузчика;
5) реализовать загрузчик и отладить его работу на макете, созданном на базе отладочной платы STM32F429I-DISCO.
✅ Заключение
1) изучены структура и возможности микроконтроллера STM32F429ZIT6, а также некоторые его периферийные модули, алгоритмы шифрования AES, SHA и алгоритм вычисления контрольной суммы CRC;
2) реализованы процедуры чтения и записи данных FLASH-памяти микроконтроллера;
3) реализована работа с файловой системой FAT с помощью библиотеки FatFS, а именно процедуры поиска файлов, а также чтения и записи данных в файлы на карту microSD;
4) реализована процедура шифрования и дешифрования файлов на карте microSD с помощью алгоритма AES-256 в режиме CBC;
5) с помощью библиотеки ^GUI реализован пользовательский интерфейс, позволяющий выбирать режимы работы загрузчика («прошивка», шифрование файла, переход к основной программе);
6) написаны тестовые программы, одна из которых представляет собой дополненный вариант предыдущей;
7) отлажена работа загрузчика на макете на основе отладочной платы STM32F429I-DISCO и с помощью тестовых программ проведена проверка корректности его работы.
Созданный загрузчик может быть использован в проектах, разработанных для микроконтроллеров семейства STM32F4xx, в которых необходимо периодическое обновление программного кода.



