реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> IDE Keil
Tarbal
сообщение Oct 20 2015, 12:46
Сообщение #1


Профессионал
*****

Группа: Свой
Сообщений: 1 351
Регистрация: 21-05-10
Пользователь №: 57 439



Помогите отставшему от времени. Я в основном работаю с gcc и Линуксом, а вот понадобилось сделать проект на ST Cortex M4. Какие есть опции купить компиллятор?
Нужна также библиотека для поддержки USB. Я знаю, что IDE Keil достаточно для этого, подозреваю, что IAR тоже наверное. Какое есть возможности еще?
Ну бывает для членов каких-нибудь профсоюзов скидки и т.д.. Поделитесь пожалуйста специальными знаниями если у кого есть.
Заранее спасибо.
Go to the top of the page
 
+Quote Post
scifi
сообщение Oct 20 2015, 13:58
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136



Вообще-то для Cortex-M широко используется gcc. К примеру, вот этот. Там и стандартная библиотека идёт в комплекте. Примеры тоже сможете найти без труда.
Внутрисхемная отладка тоже вроде бы существует в бесплатном варианте на базе OpenOCD, но я не пробовал.
Go to the top of the page
 
+Quote Post
Tarbal
сообщение Oct 20 2015, 15:03
Сообщение #3


Профессионал
*****

Группа: Свой
Сообщений: 1 351
Регистрация: 21-05-10
Пользователь №: 57 439



Цитата(scifi @ Oct 20 2015, 17:58) *
Вообще-то для Cortex-M широко используется gcc. К примеру, вот этот. Там и стандартная библиотека идёт в комплекте. Примеры тоже сможете найти без труда.
Внутрисхемная отладка тоже вроде бы существует в бесплатном варианте на базе OpenOCD, но я не пробовал.



Спасибо огромное.
Go to the top of the page
 
+Quote Post
Tarbal
сообщение Oct 23 2015, 21:45
Сообщение #4


Профессионал
*****

Группа: Свой
Сообщений: 1 351
Регистрация: 21-05-10
Пользователь №: 57 439



Купил 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 устраняет ошибку, но поскольку до конца дойти не получилось, то поручиться не могу.
Если кто-нибудь знает как в Эклипсе отредактировать ключи компилляции, то буду очень признателен.
Go to the top of the page
 
+Quote Post
gazpar
сообщение Oct 24 2015, 11:53
Сообщение #5


Частый гость
**

Группа: Участник
Сообщений: 147
Регистрация: 9-01-14
Пользователь №: 79 952



Прикрепленное изображение

Прикрепленное изображение

Прикрепленное изображение


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

Сообщение отредактировал gazpar - Oct 24 2015, 11:55
Go to the top of the page
 
+Quote Post
Tarbal
сообщение Oct 24 2015, 13:44
Сообщение #6


Профессионал
*****

Группа: Свой
Сообщений: 1 351
Регистрация: 21-05-10
Пользователь №: 57 439



Спасибо, 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

Буду разбираться.
Go to the top of the page
 
+Quote Post
Tarbal
сообщение Oct 24 2015, 15:54
Сообщение #7


Профессионал
*****

Группа: Свой
Сообщений: 1 351
Регистрация: 21-05-10
Пользователь №: 57 439



Цитата(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

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

Заранее спасибо.
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение Oct 24 2015, 15:57
Сообщение #8


Ally
******

Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050



Цитата(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.
Go to the top of the page
 
+Quote Post
Tarbal
сообщение Oct 24 2015, 20:36
Сообщение #9


Профессионал
*****

Группа: Свой
Сообщений: 1 351
Регистрация: 21-05-10
Пользователь №: 57 439



Цитата(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

Сообщение отредактировал IgorKossak - Oct 24 2015, 19:54
Go to the top of the page
 
+Quote Post
gazpar
сообщение Oct 25 2015, 02:39
Сообщение #10


Частый гость
**

Группа: Участник
Сообщений: 147
Регистрация: 9-01-14
Пользователь №: 79 952



Рад, что разобрались.

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

AlexandrY, так что не все сидят под окнами=)
Go to the top of the page
 
+Quote Post
Genadi Zawidowsk...
сообщение Oct 25 2015, 03:45
Сообщение #11


Профессионал
*****

Группа: Участник
Сообщений: 1 620
Регистрация: 22-06-07
Из: Санкт-Петербург, Россия
Пользователь №: 28 634



Цитата
взял с линка, предложенного 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

Сообщение отредактировал Genadi Zawidowski - Oct 25 2015, 03:47
Go to the top of the page
 
+Quote Post
Tarbal
сообщение Oct 25 2015, 21:08
Сообщение #12


Профессионал
*****

Группа: Свой
Сообщений: 1 351
Регистрация: 21-05-10
Пользователь №: 57 439



Цитата(Genadi Zawidowski @ Oct 25 2015, 07:45) *


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

Мне надо сделать по быстрому USB device изохронный для многоканального аудио. Я взял STM32CubeMX апликацию под виндоус. Она позволяет конфигурировать устройства при помощи ГУИ. Хочу максимально сконфигурировать USB и I2S, чтобы уже было с чего начинать. Там есть опции для Keil IAR и ST4STM. Попробую и потом дам знать о результате.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 03:30
Рейтинг@Mail.ru


Страница сгенерированна за 0.01451 секунд с 7
ELECTRONIX ©2004-2016