1
13 Apr 2016 19:50:37

Настройка дебага ARM Cortex M3 STM32F10X в Eclipse с STLink v2

Eclipse запущен в среде Linux (Archlinux 4.4.5-1-ARCH), в качестве внутрисхемного программатора и дебагера используется китайский STLinkV2

Содержание:

  1. #Оборудование
  2. #Подключаем плату по SWD (Serial Wire Debug)
  3. #Настройка софта для работы с микроконтроллером:
  4. #Настройка проекта и окружения в Eclipse:
  5. #Видео с примером работы debugger'а:

Оборудование:

Сам STLink  для пробы покупался на aliexpress: http://ru.aliexpress.com/item/2pcs-lot-ST-Link-V2-stlink-mini-STM8-STM32-STLINK-simulator-download-programming-With-Cover-2pcs/1725751009.html

Модель микроконтроллера - STM32 F103C8T6, чипы тоже покупались на aliexpress, в добавок была куплена демо плата для тестов:


Подключаем плату по SWD (Serial Wire Debug):

  • SWDIO - Input Output - это линия данных, по аналогии SPI
  • SWDCLK - Clock - тактирование последовательного интерфейса
  • 3.3V питание
  • ​GND земля

Этого достаточно чтобы приступить к работе.

Настройка софта для работы с микроконтроллером:

Eclipse

  Нам понадобится 4 плагина (имя плагина | адрес репозитория):
  1.  Eclipse IDE for C/C++ Developers |  epp.package.cpp // Расширение для работы с C\C++
  2.  GNU ARM C/C++ Cross Development Tools  | http://gnuarmeclipse.sourceforge.net/updates // Toolchain для arm32 с CMSIS, примерами и всем остальным
  3.  C/C++ GDB Hardware | ​http://download.eclipse.org/tools/cdt/releases/helios // клиента debugger который умеет работать с внешним GDB сервером
  4.  EmbSysRegView Data | http://embsysregview.sourceforge.net/update // Доступ к перефирии микроконтроллера
  • ​Открываем eclipse, выбираем меню help
 
  • Добавляем все перечисленные плагины, если у вас не добавлены репозитории - нажимаем добавить, вставляем URL, и оттуда добавляем все нужные плагины

​​

Linux tools: 

Для Archlinux'а (в других os воспользуйтесь поиском, имена похожи) пакеты называются:
  1. arm-none-eabi-binutils arm-none-eabi-gcc arm-none-eabi-gdb arm-none-eabi-newlib | все что нужно для компилирования, дебага и написания программ на C\C++, none - значит что на target environment (микроконтроллере куда вы заливаете прошивку) нет других операционных систем и прошивка ставится на голое железо.
  2. stlink | gdb server и программатор который работает с STLink напрямую через USB
  • Устанавливаем пакеты

 

Настройка проекта и окружения в Eclipse:

  • Создаем проект

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

 
  • Настраиваем свой ld script - параметры флеша вашего мк, SRAM, его density (Medium) и обязательно частоту кварца

 
  • Выбираем профиль Debug, отключаем оптимизации чтобы не было проблем во время дебага.

 
  • Выбираем формат дебага GDB, т.е. stlink работает в этом протоколе и поднимает сервер.

 
  • Создаем конфигурацию для GDB сервера STLink'a, stlink сервер это прогрмма st-util, по дефолту слушает порт 4242 на localhost'e, мы поставили ее из пакета stlink

 
  • Именуем профиль, выбираем путь до бинарника, выбираем путь до проекта

 
  • Отключаем автобилд (опционально)

 
  • Ставим галочку чтобы профиль появлися в меню и его можно было быстро вызывать

 
  • Все теперь у нас настроен Stlink GDB сервер, когда мы его запустим он подключится к MCU, поднимет сервер на localhost:4242 и предоставит интерфейс в GDB формате для debugger клиента, которым является расширение eclipse Hardware Debugger

 
  • Внимательно выбираем пути до проекта и до бинарника, который у вас будет создаваться когда вы будете билдить проект - если вы укажете здесь не верные данные дебаг у вас работать не будет, поэтому делайте это внимательно, а если что-то не работает следует проверить правильны ли настройки

 
  • Указываем debugger клиенту где искать сервер и сообственно каким клиентом пользоваться это arm-none-eabi-gdb

 
  • Также внимательно пишем file путь до вашего бинарника относительно папки вашего проекта

 
  • Добавляем дебаг профиль в фавариты

 
  • Поскольку все платы разные, настраиваем порт и пин вашей демо платы или платы где у вас находится LED для проверки кода
 
 
  • Компилируем проект

  • Запускаем GDB сервер с помощью st-util

  • Теперь запускаем дебаг клиента
 
  • В итоге у нас должна подняться прошивка на мк и запуститься перспектива (layout окон eclipsa) для дебага.
    Тут есть полный набор что нужно для работы с приложением, обратите внимание что в окне stack'a у вас правильный source бинарный файл, и что дебажится нужный проект

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


Видео с примером работы debugger'а:

 

Comments:

add comment