Pull to refresh

Eclipse для микроконтроллеров (STM32) + FreeRTOS Task Aware Debugger

Reading time3 min
Views29K
image


В данной статье будет описано как установить eclipse для микроконтроллеров + FreeRTOS Task Aware Debugger.

На примере OS Windows, CubeMX и платы STM32L4Discovery.

Установка


Устанавливаем:

Eclipse IDE for C/C++ Developers
Скачиваем eclipse, распаковываем, копируем в C:/eclipse
chocolatey
Chocolatey — пакетный менеджер для Windows, аналог apt-get, позволяет через консоль устанавливать программы.
Открываем PowerShell.exe от имени администратора и выполнеяем:
Set-ExecutionPolicy Bypass -Scope Process -Force; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))
JDK
Без JDK не запустится eclipse и CubeMX.
Открываем PowerShell.exe от имени администратора и выполнеяем:

cinst -y jdk8
Node.js
Node.js содержит пакетный менеджер npm, необходимый для установки xpm.
Открываем PowerShell.exe от имени администратора и выполнеяем:

cinst -y nodejs
xpm
Xpm — менеджер пакетов xPack, позволит быстро установить необходимые утилиты для eclipse тремя строчками в командной строке.
Перезапускаем PowerShell.exe от имени администратора и выполнеяем:

npm install --global xpm
Arm-компилятор, систему сборки и отладчик
Перезапускаем PowerShell.exe от имени администратора и выполняем:

xpm install --global @gnu-mcu-eclipse/arm-none-eabi-gcc
xpm install --global @gnu-mcu-eclipse/windows-build-tools
xpm install --global @gnu-mcu-eclipse/openocd
GNU MCU Plugin:
Запускаем eclipse, Help -> Eclipse marketplace…

Вводим «GNU MCU» в окно поиска.

Нажимаем Install.

Оставляем всё как есть, нажимаем далее, далее, далее. Eclipse перезапустится.image
MCU Pack
Заходим в Packs, нажимаем Refresh. image
Выбираем установку Pack’а в зависимости от вашего микроконтроллера:image
После этого идём на кухню ставить чайник, процесс обновления не быстрый.
image
Когда вылезет ошибка, нажимаем Ignore All:image
CubeMX
Переходим по ссылке, скачиваем и устанавливаем
ST-Link
Переходим по ссылке, скачиваем и устанавливаем
J-Link software
Переходим по ссылке, скачиваем и устанавливаем


Перепрошиваем ST-Link на J-Link
Переходим по ссылке, скачиваем и устанавливаем.
Запускаем STLinkReflash.exe, принимаем соглашения, выбираем [1] – Upgrade to J-Link.
В любой момент можно обратно вернуть ST-Link, выбрав пункт [3] – Restore ST-Link.image
Стираем память на микроконтроллере
Открываем в пуске J-flash lite, нажимаем ОКimage
Выбираем свой микроконтроллер и нажимаем Erase.image

Создание проекта


В папке с проектами создадим 2 проекта:
C:\projects\armtest_cube
C:\projects\armtest

Создадим проект в CubeMX
Заходим в CubeMX, создаём новый проект.
Включаем FreeRTOS в проект, переключаем USE_TRACE_FACILITY -> ENABLED
image
RECORD_STACK_HIGH_ADDRESS -> Enable
image
SYS -> Timebase Source выбираем любой ненужный таймер, например TIM7
image
Включаем дополнительные функции по необходимости.
Нажимаем Generate Code.
image
Создадим проект в Eclipse
Заходим в Eclipse -> New -> Project…
Выбираем C Project
image
Задаём имя проекта и его расположение, выбираем тип проекта.
image
Самое главное – указать верно ядро, в зависимости от вашего типа микроконтроллера (см. datasheet). Остальные настройки не важны.
image
Нажимаем next, next.
Если toolchain не определился автоматически, то указываем его расположение.
Нажимаем Finish.
image
Удаляем всё из дерева проекта:
image
Заходим в папку проекта armtest_cube и копируем всё, кроме .project и .cproject в папку проекта armtest.
image
Обновляем дерево проекта:
image
Заходим в настройки проекта Project -> Properties, выбираем необходимый микроконтроллер.image
Заходим в настройки линкера, удаляем все имеющиеся Script files и добавляем ld файл из дерева проекта.
image
Подключаем библиотеку с поддержкой Floating Point:
image
Выбираем формат выходного файла Motorola S-record
image
Добавляем includ’ы:
image
Добавляем defin’ы для препроцессора:
image
Переименовываем startup файл «startup_stm32l476xx.s» в «startup_stm32l476xx.S». Иначе в debug’e появляются ошибки.image
Run -> Debug configurations image
Установим FreeRTOS debugger plugin
Help -> Install new Software…
http://freescale.com/lgfiles/updates/Eclipse/KDS
image

Итог


Включаем Debug, в новом меню FreeRTOS выбираем Task List + Heap Usage.

image

Получаем наглядное отображение загруженности Heap & Stack и прочие плюшки:

image
Tags:
Hubs:
Total votes 38: ↑38 and ↓0+38
Comments15

Articles