Skip to content

Latest commit

 

History

History
64 lines (43 loc) · 5.59 KB

README.md

File metadata and controls

64 lines (43 loc) · 5.59 KB

Milandr + VSCode + GCC + OpenOCD + freeRTOS

Вся работа по проекту осуществляется средствами VSCode и нет необходимости запускать отдельные приложения/терминалы и т.д.

Проект подготовлен для работы с отладочной платой Milandr 1986BE92 через VSCode (версия для Windows) c openOCD и GNU Arm Embedded Toolchain. Подобный проект можно собрать для нескольких устройств от Milandr. Проделаны основные шаги и дан пример. Используемый программатор: j-link pro

Доступные комманды (Ctrl+Alt+T):

  1. Make Clean - очистка ./build
  2. Make Build - сборка проекта
  3. Write .elf via OpenOCD - запись .elf файла прошивки во флеш МК
  4. Read hex via OpenOCD - чтение флеш банка 0 (для данной конфигурации - чтение всей памяти)
  5. Start OpenOCD - Запуск OpenOCD
  6. Open telnet OpenOCD - открыть telnet к 4444 порту OpenOCD
  7. Connect to GDB - подсоедениться к gdb и начать отладку в консоли

Комманды (3,4) НЕ требуют предварительного запуска комманды Start OpenOCD это может привести к ошибке libusb_error_access.

Доступна отладка через gdb нативными средствами VSCode (F5)

Версия без OpenOCD и RTOS. Раотает с классическими j-link-программаторами и их ПО

Изменения

В файлы библиотеки был добавлен небольшой код, который определяет некоторые переменные в зависимости от используемого компилятора (в частности, DMA). Добавлена папка автозагрузки для компилятора GCC. В новых версиях библиотеки такой папки нет. Добавлен файл MDR32F9Qx_board.h, который прописан в зависимостях библиотеки. Чип выбирается в этом файле. Чтобы при отладке видеть содержимое регистров контроллера, были подправлены SVD файлы.

Был написан файл конфигурации openOCD для 1986ве92У. Он находится в каталоге ../OpenOCD_data/ В файле open_ocd_flash.cfg можно выбрать тип транспортного протокола SWD или JTAG.

Ознакомительные статьи по openOCD тык тык

Настройка и запуск

Требуется установка следующих программ: Система:

Не забудьте добавить папки GnuWin32\bin и openocd\bin в среду PATH

Код VS:

!Не забудьте изменить пути до исполняемых файлов и папок библиотек в tasks.json и launch.json

Также, не забудьте в файле конфигурации ОСРВ FreeRTOS/include/FreeRTOSConfig.h указать верное значение у параметра configCPU_CLOCK_HZ с частотой тактирования МК, которое используется вашей программой.

Есть особенность работы с путями при выполнении комманд в openOCD, т.к. он создавался под linux-подобные ОС. Пути в коммандах необходимо вводить с обратными слешами "/".

Решение некоторых проблем с LIBUSB_ERROR_NOT_SUPPORTED тык тык

SPL-файлы и .SVD-файлы можно найти здесь или здесь. Они также приложены к проекту.

Для GDB

Для работы gdb добавить строку в настройки расширения

cortex_debug "cortex-debug.gdbPath": "<ВАШ ПУТЬ>\\arm-none-eabi-gdb.exe",

Протестировано на отладочном комплекте 1986BE92У