Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: IDE Keil
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
Tarbal
Помогите отставшему от времени. Я в основном работаю с gcc и Линуксом, а вот понадобилось сделать проект на ST Cortex M4. Какие есть опции купить компиллятор?
Нужна также библиотека для поддержки USB. Я знаю, что IDE Keil достаточно для этого, подозреваю, что IAR тоже наверное. Какое есть возможности еще?
Ну бывает для членов каких-нибудь профсоюзов скидки и т.д.. Поделитесь пожалуйста специальными знаниями если у кого есть.
Заранее спасибо.
scifi
Вообще-то для Cortex-M широко используется gcc. К примеру, вот этот. Там и стандартная библиотека идёт в комплекте. Примеры тоже сможете найти без труда.
Внутрисхемная отладка тоже вроде бы существует в бесплатном варианте на базе OpenOCD, но я не пробовал.
Tarbal
Цитата(scifi @ Oct 20 2015, 17:58) *
Вообще-то для Cortex-M широко используется gcc. К примеру, вот этот. Там и стандартная библиотека идёт в комплекте. Примеры тоже сможете найти без труда.
Внутрисхемная отладка тоже вроде бы существует в бесплатном варианте на базе OpenOCD, но я не пробовал.



Спасибо огромное.
Tarbal
Купил STM32F4 Discovery плату, установил все по вышеприведенному линку и как обычно сразу не заработало. Допускаю, что что-то сделал не так. Может упустил какую мелочь.
Получил две ошибки:
1. Компилятор отказывается принять опции оптимизации вместе с дебагированием
2. Не распознает стандард С 2011 (С11).

Вывод компилляции:
make all
Building file: ../system/src/stm32f4-hal/stm32f4xx_hal.c
Invoking: Cross ARM C Compiler
arm-none-eabi-gcc -mcpu=cortex-m4 -mthumb -mfloat-abi=soft -Og -fmessage-length=0 -fsigned-char -ffunction-sections -fdata-sections -ffreestanding -fno-move-loop-invariants -Wall -Wextra -g3 -DDEBUG -DUSE_FULL_ASSERT -DTRACE -DOS_USE_TRACE_SEMIHOSTING_DEBUG -DSTM32F407xx -DUSE_HAL_DRIVER -DHSE_VALUE=8000000 -I"../include" -I"../system/include" -I"../system/include/cmsis" -I"../system/include/stm32f4-hal" -std=gnu11 -MMD -MP -MF"system/src/stm32f4-hal/stm32f4xx_hal.d" -MT"system/src/stm32f4-hal/stm32f4xx_hal.o" -c -o "system/src/stm32f4-hal/stm32f4xx_hal.o" "../system/src/stm32f4-hal/stm32f4xx_hal.c"
cc1.exe: error: invalid option argument '-Og'
cc1.exe: error: unrecognized command line option "-std=gnu11"
make: *** [system/src/stm32f4-hal/stm32f4xx_hal.o] Error 1

Дебагировать с оптимизацией я и сам не хочу, но нигде не могу найти в гребаном Эклипсе как это поменять.
Нашел, что есть переменная ${cross_toolchain_flags}, которая наверное содержит эти ключи, но где она устанавливается и как ее проверить я не осилил.
Выбор стандарта я нашел и вроде переключение на С99 устраняет ошибку, но поскольку до конца дойти не получилось, то поручиться не могу.
Если кто-нибудь знает как в Эклипсе отредактировать ключи компилляции, то буду очень признателен.
gazpar
Нажмите для просмотра прикрепленного файла
Нажмите для просмотра прикрепленного файла
Нажмите для просмотра прикрепленного файла

У меня с таким настройка проекты под stm32f3 собираются, шьются и нормально работают в железе.
Ядра одинаковые у stm32f4 и stm32f3: Cortex-M4
Tarbal
Спасибо, gazpar!

Я в первый раз проморгал общую оптимизацию на проект, а там как раз все что надо. Отменил оптимизацию, поставил С99 и все заработало. Я не имею объяснения отчего С11 и оптимизация для дебага вызывают ошибку, но мне пока надо запустить процесс, а с деталями разберусь по ходу дела.

Пока встретил ошибку линкера:

Building target: usb_audio.elf
Invoking: Cross ARM C++ Linker
arm-none-eabi-g++ -mcpu=cortex-m4 ......................
arm-none-eabi-g++.exe: nano.specs: No such file or directory
make: *** [usb_audio.elf] Error 1

Буду разбираться.
Tarbal
Цитата(Tarbal @ Oct 24 2015, 17:44) *
Спасибо, gazpar!

Я в первый раз проморгал общую оптимизацию на проект, а там как раз все что надо. Отменил оптимизацию, поставил С99 и все заработало. Я не имею объяснения отчего С11 и оптимизация для дебага вызывают ошибку, но мне пока надо запустить процесс, а с деталями разберусь по ходу дела.

Пока встретил ошибку линкера:

Building target: usb_audio.elf
Invoking: Cross ARM C++ Linker
arm-none-eabi-g++ -mcpu=cortex-m4 ......................
arm-none-eabi-g++.exe: nano.specs: No such file or directory
make: *** [usb_audio.elf] Error 1

Буду разбираться.


gazpar, люди пишут в инете, что сочетание правильных версий gcc и Eclipse играет роль

Покажите пожалуйста что на вашем компьютере говорит команда:
arm-none-eabi-gcc --version

И какая версия Эклипса? Я так понимаю они по названием космических объектов версии называют.

Заранее спасибо.
AlexandrY
Цитата(Tarbal @ Oct 24 2015, 16:44) *
Пока встретил ошибку линкера:

Building target: usb_audio.elf
Invoking: Cross ARM C++ Linker
arm-none-eabi-g++ -mcpu=cortex-m4 ......................
arm-none-eabi-g++.exe: nano.specs: No such file or directory
make: *** [usb_audio.elf] Error 1

Буду разбираться.


Видать ваша версия GNU Tools for ARM Embedded Processors (arm-none-eabi-gcc) не такая как у всех.
А все похоже юзают это дело под Windows. wink.gif

Kinetis Design Studio 3.0.0 IDE основанный на GNU Tools тоже влет со всем этими опциями работает.
Правда на GCC вы потеряет не меньше 50% в производительности от того что могли бы получить с IAR.
Tarbal
Цитата(AlexandrY @ Oct 24 2015, 19:57) *
Видать ваша версия GNU Tools for ARM Embedded Processors (arm-none-eabi-gcc) не такая как у всех.
А все похоже юзают это дело под Windows. wink.gif

Kinetis Design Studio 3.0.0 IDE основанный на GNU Tools тоже влет со всем этими опциями работает.
Правда на GCC вы потеряет не меньше 50% в производительности от того что могли бы получить с IAR.


Похоже на то. Я взял с линка, предложенного scifi, но там было много версий. Наверное взял не ту.
О какой производительности идет речь? С какой скоростью компилятор работает или исполняемый код?

Так IAR дорогущий. Keil тоже ему под стать.

Похоже разобрался. У меня на этом же компьютере стоят аналогичные среды для разработки Cypress USB3 и Dave для арма Renessas. Похоже путь туда покороче и он берет компилятор
gcc version 4.5.2 (Sourcery G++ Lite 2011.03-42)

вместо

gcc version 4.9.3 20141119 (release) [ARM/embedded-4_9-branch revision 218278] (GNU Tools for ARM Embedded Processors)

Я уже и забыл про те среды.

Всем спасибо. Осилил. sm.gif
gazpar
Рад, что разобрались.

Тулчейн такой :"gcc-arm-none-eabi-4_9-2014q4". Eclipse последней версии, недавно обновил до Марса. Система GNU/Linux x64, Fedora.

AlexandrY, так что не все сидят под окнами=)
Genadi Zawidowski
Цитата
взял с линка, предложенного scifi, но там было много версий. Наверное взял не ту.

На первой странице самая новая...
windows:
https://launchpad.net/gcc-arm-embedded/4.9/...50921-win32.exe

linux:
https://launchpad.net/gcc-arm-embedded/4.9/...1-linux.tar.bz2
Tarbal
Цитата(Genadi Zawidowski @ Oct 25 2015, 07:45) *


Спасибо.
Я уже разобрался в чем у меня была проблема.
А с этим кто-нибудь работал?
http://www.openstm32.org/System+Workbench+for+STM32

Мне надо сделать по быстрому USB device изохронный для многоканального аудио. Я взял STM32CubeMX апликацию под виндоус. Она позволяет конфигурировать устройства при помощи ГУИ. Хочу максимально сконфигурировать USB и I2S, чтобы уже было с чего начинать. Там есть опции для Keil IAR и ST4STM. Попробую и потом дам знать о результате.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.