Блог    Теги    RSS    Файлопомойка Мой Github Мой Telegram

Блог №200 по адресу 0708:07C7 / Настройка Eclipse для разработки под STM32

2 июня 2015, 09:01
Инструкций сходной тематики в интернете немало, но как то вышло что информацию мне всё равно пришлось собирать по кусочкам. В этой статье я подытожу весь процесс от А до Я. Всё будет делаться на примере дистрибутива Debian Sid и отладочной платы STM32F4Discovery.

Шаг 1: устанавливаем компилятор, стандартную библиотеку языка Си, отладчик и т.д.:
aptitude install binutils-arm-none-eabi gcc-arm-none-eabi gdb-arm-none-eabi libnewlib-arm-none-eabi libstdc++-arm-none-eabi-newlib openocd

Шаг 2: устанавливаем Eclipse CDT. Последнюю версию найти можно по ссылке https://eclipse.org/downloads/ (Eclipse IDE for C/C++ Developers)

Шаг 3: запускаем, идём в меню Help -> Install New Software и добавляем следующие репозитории:

  • http://andrei.gmxhome.de/eclipse/ - несколько полезных плагинов в т.ч. AnyEdit

  • http://ehep.sourceforge.net/update - hex-редактор, пригодится

  • http://download.eclipse.org/tools/tcf/terminals_lunasr2 - встроенный терминал с поддержкой COM-портов - очень удобен для отладки

  • http://rxtx.qbang.org/eclipse - библиотека для работы с последовательным портом, нужна для встроенного терминала

  • http://eclipse-color-theme.github.com/update - цветовые схемы

  • http://embsysregview.sourceforge.net/update - а вот это очень полезная штука - позволяет просматривать содержимое регистров периферии без шаманств с видом Expressions

  • http://www.highintegritysystems.com/StateViewer/ - плагин для отладки FreeRTOS

  • http://freescale.com/lgfiles/updates/Eclipse/KDS - ещё один плагин для FreeRTOS

  • http://gnuarmeclipse.sourceforge.net/updates - "гвоздь программы", плагин для разработки под arm


Шаг 4: создаём проект: File -> New -> C Project -> Empty Project -> Cross ARM GCC.

Шаг 5: теперь нужно добавить в проект специфичные для каждого микроконтроллера (МК) вещи: заголовочные файлы Cortex M, заголовочные файлы для МК, стартап-код, таблица векторов прерываний, скрипт компоновщика. Всё это можно найти в STM32CubeF4 на st.com. Нужны следующие файлы:

  • STM32F407VG_FLASH.ld - скрипт компоновщика

  • core_cm4.h, core_cmFunc.h, core_cmInstr.h, core_cmSimd.h - заголовки CMSIS - стандартные регистры и функции для Cortex M4

  • startup_stm32f407xx.S - запуск мк, инициализация глобальных переменных, таблица векторов прерываний

  • system_stm32f4xx.h, system_stm32f4xx.c - функции для инициализации МК

  • stm32f4xx.h, stm32f407xx.h - заголовки для нашего МК с описанием регистров всей периферии


Шаг 6: настраиваем проект:

  • На вкладке C/C++ Build -> Settings -> Tool Settings -> Target Processor указываем ARM Family = Cortex M4, Float ABI - softfp, FPU Type - fpv4-sp-d16

  • На вкладке Cross ARM C Compiler -> Preprocessor добавляем определение (defined symbols) "STM32F407xx"

  • На вкладке Cross ARM C Linker -> General добавляем Script file STM32F407VG_FLASH.ld и устанавливаем галку "Remove unused sections"

  • На вкладке Cross ARM C Linker -> Misc устанавливаем галку "Use newlib-nano"


Шаг 7: да будет свет! Создадим файл main.c и поморгаем в нём светодиодом:

#include <stm32f4xx.h>
void main( void )
{
RCC->AHB1ENR |= RCC_AHB1ENR_GPIODEN;
GPIOD->MODER |= GPIO_MODER_MODER15_0;
while( 1 )
{
GPIOD->ODR ^= 1<<15;
}
}

Шаг 8: настраиваем отладку в меню Run -> Debug Configurations. Создаём новую конфигурацию типа "GDB OpenOCD Debugging", на вкладке "Debugger" указываем "Config options":
-s /usr/share/openocd/scripts/ -f interface/stlink-v2.cfg -f target/stm32f4x_stlink.cfg

Жмём Debug и, если всё сделано правильно, наслаждаемся результатом.
Теги: #eclipse   #arm   #stm32   #ide   #nix  

Комментарии RSS

Ваше имя:

E-mail (будет скрыт):

Текст: