Решение пролемы запуска внешних демок STM32F4 DISCOVERY : Компиляция демок с CooCox IDE и Code Sourcery

Установка окружающей среды :

Эрик уже сделал введение платы STM32F4 Discovery, так что я собираюсь вернуться в гущу событий непосредственно.

Вам потребуется получить следующие программные продукты :

  • CooIDE, свободная среда разработки, скачать ЗДЕСЬ
  • Sourcery Codebench Lite для ARM EABI Наставника, скачать ЗДЕСЬ
  • Программное обеспечение STLink, который содержит драйверы для USB-интерфейса, скачать ЗДЕСЬ
  • Исправление для программного обеспечения STLink, потому что он не работает с картами, в которых маска процессора, обзор Z, скачать ЗДЕСЬ
  • Архив прошивки демо-карты : ЗДЕСЬ

Сначала установить CooIDE (c:\CooCox\CooIDE), а затем создать каталог c:\CooCox\CooIDE\gcc и установить Sourery codebench указав, что каталог назначения является тот, который вы создали.

При первом запуске CooIDE, он понадобится здесь находится компилятора, чтобы знать, c:\CooCox\CooIDE\gcc.

Далее вам потребуется нажать кнопку

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

  • В меню "Project", « Нью »
  • Назвать (пример : AudioUSB)
  • Step 1: Select Manufacturer: Нажать на ST
  • Step 2: Select Chip : STM32F407VG
  • Step 3 select components
    • Нажать на значок « Refresh Component list » и дождаться окончания загрузки обновлений
    • Нажмите на флажок, CMSIS Boot
    • Флажок « М4 CMSIS CORE » cochera автоматически

Ваш проект должен выглядеть следующим образом :

Импорт источников

В архиве прошивки демо-карту, принять следующие каталоги (с explorer) и drag & dropper в ide (в дереве проекта) :

  • STM32F4-Discovery_FW_V1.1.0\Project\Audio_playback_and_record\inc
  • STM32F4-Discovery_FW_V1.1.0\Project\Audio_playback_and_record\src

При drag, ide запрос, если вы хотите, чтобы связать их или копировать. На Windows XP мне не удалось привязать. Скопировать ходьбы.

Импорт библиотек

Несколько библиотек для работы с демо-Аудио. Он будет égalemement потребоваться перетащить и дети, и в ide, но для облегчения чтения мы будем сначала создать каталог STM32, в котором мы будем все это.

  • Создание каталога STM32 в корневом каталоге проекта
  • Копирование через drag and drop в Coocox следующие каталоги
    • STM32F4-Discovery_FW_V1.1.0\Libraries\STM32_USB_HOST_Library
    • STM32F4-Discovery_FW_V1.1.0\Libraries\STM32_USB_OTG_Driver
    • STM32F4-Discovery_FW_V1.1.0\Libraries\STM32F4xx_StdPeriph_Driver
    • STM32F4-Discovery_FW_V1.1.0\Utilities\STM32F4-Discovery
    • STM32F4-Discovery_FW_V1.1.0\Utilities\Third_Party\fat_fs

Удаление ненужных источников

Каталог CMSIS и CMSIS_BOOT содержат элементы, которые делают двойную работу (и возникают проблемы), с тем, поставленные в проекте. Так что вам придется удалить :

  • /cmsis_boot/stm32f4xx_conf.h
  • /cmsis_boot/system_stm32f4xx.c

Даже файл main.c создания в корне coocox не будет нужен и должен быть удален.

После завершения, проект выглядит так :

Настройки проекта

Несколько элементов должны быть заданы в проекте. Для этого надо щелкнуть правой кнопкой мыши на корень дерева проекта и выберите « Настройки ».

В « Include Path », добавить следующие пути с помощью кнопок « Add » и « Workspace »:

  • inc
  • STM32F4-Discovery
  • STM32/STM32F4xx_StdPeriph_Driver/inc
  • STM32/STM32_USB_HOST_Library/Class/MSC/inc
  • STM32/STM32_USB_HOST_Library/Core/inc
  • STM32/STM32_USB_OTG_Driver/inc
  • STM32/fat_fs/inc

В « Defined Symbols », добавить следующие Символы :

  • USE_STDPERIPH_DRIVER
  • STM32F4XX
  • USE_USB_OTG_FS
  • MEDIA_USB_KEY

Придется тогда запретить компиляцию из некоторых источников, поскольку они не являются необходимыми для проекта. Чтобы сделать это, выберите файл или папку с правой кнопкой мыши и выбрать пункт « Exclude from Build ». Это должно быть сделано для следующих файлов :

  • STM32/fat_fs/src/option
  • STM32/fat_fs/src/diskio.c
  • STM32/STM32_USB_HOST_Library/Class/HID
  • STM32/STM32_USB_OTG_Driver/src/usb_bsp_template.c
  • STM32/STM32_USB_OTG_Driver/src/usb_dcd_int.c
  • STM32/STM32_USB_OTG_Driver/src/usb_dcd.c
  • STM32/STM32_USB_OTG_Driver/src/usb_otg.c

Наконец, последний пункт-это ОЧЕНЬ ВАЖНО!!!. Придется изменить файл загрузки, чтобы он требует инициализации тактирвания. Я не знаю, если это просчет (ошибка) в CooCox, потому что рутина есть, но только не называется...

Это делается путем редактирования /cmsis_boot/startup/startup_stm32f4xx.c :

  • Строка 144: раскомментировать строку
 extern void SystemInit(void); /*!< Setup the microcontroller system(CMSIS) */
  • Строка 291, добавить просто перед вызовом main():
 SystemInit();

Составление и отправка была цель

Программа может быть скомпилирована с « Rebuild All », и не должен дать никакой ошибки.

BUILD SUCCESSFUL
Total time: 7 seconds

Затем он может быть направлен на цель с « Flash », « Program Download ».

Обратите внимание, что это cconstruit программе тестирования в своей версии « USB ». Другая версия существует, и играет непосредственно файл, который был romé в то же tempq, что программа. Для этого достаточно заменить символ, определенный « MEDIA_USB_KEY » « MEDIA_IntFLASH ».

Удачи и хорошего открытия этот фантастический комплект...

This entry was posted in Dev. Программное обеспечение. Bookmark the permalink.

Комментарии

Видимо CooCox дает возможность на пользовательском, а не на системном уровне выбирать тактирование (в том числе USB, I2C и прпр переферии)

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

Обратная связь

Интересуют вопросы реализации алгоритмов, программирования, выбора электроники и прочая информация, постараюсь осветить в отдельных статьях

пишите мне на netdm@mail.ru