Решение пролемы запуска внешних демок 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 ».
Удачи и хорошего открытия этот фантастический комплект...
Обратная связь
Интересуют вопросы реализации алгоритмов, программирования, выбора электроники и прочая информация, постараюсь осветить в отдельных статьях
пишите мне на netdm@mail.ru
Комментарии
RootEditor
вс, 10/15/2017 - 17:43
Постоянная ссылка (Permalink)
Тактирование!
Видимо CooCox дает возможность на пользовательском, а не на системном уровне выбирать тактирование (в том числе USB, I2C и прпр переферии)
Добавить комментарий