STM Урок 56. System Workbench. Подключаем библиотеку BSP. Часть 1



Урок 56

 

Часть 1

 

System Workbench. Подключаем библиотеку BSP

 

Сегодня мы продолжим работу с бесплатной средой программирования System Workbench for STM32.

На прошлом занятии мы подключили и смогли успешно использовать операционную систему реального времени FreeRTOS.

Сегодня мы продолжим начатое дело и поработаем с другой платой.

Для примера возьмём плату STM32F746G-DISCO. С данной платой мы также знакомы из обзора.

Цель данного занятия – изучить возможность подключения определённых модулей библиотеки BSP, а также с помощью этой библиотеки поработать с дисплеем, установленным на плате, используя технологии FMC и DMA2D.

Ну что ж, начнём!

Запустим MS Cube, создадим проект, выбрав наш микроконтроллер (нажмите на картинку для увеличения размера)

 

image00_0500

 

В RCC выбираем вот такую опцию

 

image02

 

А в SYS вот такие

 

image01

 

TIM1 выбран ввиду того, что что на Systick будет ругаться генератор кода, если мы будем использовать FreeRTOS.

Включим также USART, так как библиотека BSP постоянно обращается к его функциям

 

image04

 

Включим FreeRTOS

 

image03

 

Зайдём в Configuration, зайдём в свойства FreeRTOS, добавим стек для основной задачи и включим там ещё 4 задачи кроме основной со стандартным стеком

 

image06

image05

 

 

Зайдём в Clock Configuration и настроим там все делители, включив максимальную частоту и добавив кварцевый резонатор (нажмите на картинку для увеличения размера)

 

image09_0500

 

Включим также LTDC, FMC и DMA2D. Так как мы будем использовать BSP, где инициализация происходит заново, то не сильно важна точность всех настроек, но всё же желательно сделать их так, как указано будет здесь

 

image07image12image10

 

Переходим в Configuration.

Сначала настроим LTDC

 

image11

 

Следующая закладка LTDC – Layer Settings

 

image13

 

 

Применяем настройки, переходим в FMC и вносим следующие настройки

 

image14

 

В других закладках ничего не трогаем и применяем настройки.

В DMA2D вообще ничего не трогаем.

Включим кэш, зайдя в CORTEX_M7 ARM

 

image15

 

Зайдём в Project -> Settings и настроим наш будущий генерируемый проект, немного добавив значение стека и кучи

 

image16

 

У вас будет, соответственно, другой путь. Нажмём «ОК».

Сгенерируем проект и закроем диалог.

Запустим System Workbench и добавим наш сгенерированный проект таким же образом, как и на прошлых занятиях, предварительно удалив из дерева проекта все проекты, чтобы не путались.

Откроем слева дерево проекта, найдём там файл main.c и поставим туда фокус ввода (кликнем мышкой, чтобы установился курсор). Это помогает компилятору в случае наличия в дереве проектов в дереве проектов простым способом понять, что данный проект для него является текущим и ему работать именно с ним.

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

 

image17_0500

 

Попробуем скомпилировать проект. Для этого, как обычно, выберем в меню Project -> Build Project.

Если всё нормально без ошибок собралось, то теперь попробуем зайти в отладку. Если появится диалог с выбором программатора, то нужно будет его выбрать

 

image18

 

Если нормально вошли в отладку, запустим её, затем остановим, попробуем запустить обычным Run. Если всё хорошо, то будем теперь заниматься непосредственно целью занятия – собственно подключением файлов библиотеки BSP.

Зайдём в папку «Drivers» в папке с проектом и создадим там папку «BSP», зайдём в эту папку и создадим там 2 папки – «STM32746G-Discovery» и «Components». Зайдём в папку «Components» и скопируем туда из папки «Диск:\Keil_v5\ARM\PACK\Keil\STM32F7xx_DFP\2.7.0\Drivers\BSP\Components» папки «rk043fn48h» и «ft5336».

Также в этой папке создадим папку «Common», зайдём в неё и из одноимённой папки вышеуказанного пути скопируем файл ts.h.

Вернемся на 2 уровня выше и зайдём в другую папку – «STM32746G-Discovery». Скопируем в неё из папки «Диск:\Keil_v5\ARM\PACK\Keil\STM32F7xx_DFP\2.7.0\Drivers\BSP\STM32746G-Discovery» следующие файлы:

stm32746g_discovery.c

stm32746g_discovery.h

stm32746g_discovery_lcd.c

stm32746g_discovery_lcd.h

stm32746g_discovery_sdram.c

stm32746g_discovery_sdram.h

stm32746g_discovery_ts.c

stm32746g_discovery_ts.h

Выходим из этой папки на самый верхний уровень папки с проектом и создадим там папку «Utilities». Зайдём в данную папку и скопируем туда из папки «Диск:\Keil_v5\ARM\PACK\Keil\STM32F7xx_DFP\2.7.0\Utilities» папки «CPU», «Fonts» и «Log».

Возможно, в момент прочтения статьи имя папки «2.7.0» будет уже другим, так как версии постоянно обновляются.

Ещё одно условие: файлы в добавленных к проекту папках не должны содержать атрибут «Только для чтения».

Вернёмся в WB, обновим там дерево с проектом (Refresh (F5)), и пересоберём наш проект.

Теперь нам необходимо подключить созданные папки к проекту. Для этого в свойствах проекта заходим в пункт C/C++ Build -> Settings -> Tool Settings, нажимаем там кнопку с плюсиком и добавляем нужную папку (нажмите на картинку для увеличения изображения)

 

image19_0500

 

Добавим туда папку «STM32746G-Discovery» следующим образом, в процессе желательно путь исправить на относительный, чтобы было по аналогии с другими файлами:

 

image20

image08

 

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

Остальные папки, в принципе, добавлять не нужно, так как к ним в коде библиотек прописаны относительные пути. Попробуем собрать проект.

Если всё нормально собирается, то попробуем инициализировать дисплей и закрасить его в какой-нибудь цвет.

В следующей части занятия мы продолжим работу с нашим проектом и испытаем наш код на практике, увидев на дисплее какой-нибудь тест.

 

 

Предыдущий урок Программирование МК STM32 Следующая часть

 

 

Отладочную плату можно приобрести здесь STM32F746G-DISCOVERY

 

 

Смотреть ВИДЕОУРОК

 

STM32 System Workbench. Подключаем библиотеку BSP

5 комментариев на “STM Урок 56. System Workbench. Подключаем библиотеку BSP. Часть 1
  1. 3k:

    нафига так сложно?

    не нужно начинать с куба!!!!!

    при создании проекта в єклипсе просто нужно указать плату, и поставить точку " напротив "HAL" и библиотека BSP будет по умолчанию доступна. , там же можно подключить остальные библиотеки!

    инициолизировать LTDC не нужно! это сделает BSP само!

     вы вообще содержимое библиотеки читали?

     

     

     

  2. кр580вм80а:

    Необходимость копировать что-либо из Кейла удивила. В кубе есть репозиторий, все там лежит.
    Права только для чтения. Много разговора о том, в чем не стали разбираться. Вся папка драйверов только для чтения, наследуется от неё ниже. Хотите снять атрибут — делайте для первой папки — BSP, потом не придется проверять все по отдельности. Только зачем править то, что специально закрыли.

  3. supermosfet:

    Отличный ресурс, спасибо.
    У меня такая плата есть, я поигрался со стандартным проектом, который шел с CubeMX. Дальше дело не пошло, потому что файлы типового проекта сильно перемешаны и не понятно было как сделать самому проект с нуля.
    А на этих и последущих видео очень хорошо видно как это сделать 🙂

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*