Eclipse + gcc и немного STM32

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
kondor
Нашел транзистор. Понюхал.
Сообщения: 150
Зарегистрирован: Чт апр 29, 2010 10:32:32

Eclipse + gcc и немного STM32

Сообщение kondor »

Досталась мне на изучение STM32-Discovery. Пробовал играться с ней через Atollic True Studio - ограничения достали, да и хочется чего-нибудь кроссплатформенного и без достающих сообщений о приобретении полной версии.
Долгое время пытался собрать проект вот по этой статье, в результате собрался таки файл, только вот не binary, а ihex, который можно зашить в контроллер через стандартный ST-Link.

Проблема номер 1 - как организовать прошивку через консольную версию утилиты (ST-link-cli) ? Постоянно выдается ошибка типа "e:/project/STM/DEV/STM32Test/Debug/STM32Test.hex": This file is empty or corrupted!. Как уже говорил ранее - через ГУИ вроде работает. Может кто посоветует другую консольную программу ? )

Проблема номер 2 - как изменять настройки makefile в проекте ? Желательно чтобы он при этом сам все еще сам генерировался (ну как в ТРУ студио). Почему то он не цепляет все исходники, а наивно пытается обработать main.o, который еще не собрал.

Проблема номер 3 - как создать свой шаблон проекта - чтобы пути к стандартным библиотекам, какие свои хедеры и прочие настройки создавались автоматом, опять же как в ТРУ студио ?

проблема номер 4 - внутрисхемный отладчик - как ?
Реклама
ellioh
Встал на лапы
Сообщения: 100
Зарегистрирован: Сб янв 22, 2011 16:57:45

Re: Eclipse + gcc и немного STM32

Сообщение ellioh »

e:/project/STM/DEV/STM32Test/Debug/STM32Test.hex": This file is empty or corrupted
По этому сообщению я бы предположил, что оно ждёт бинарный файл. Из HEX не пробовали сделать? Хотя, судя по вот этому, должно бы распознавать:

Код: Выделить всё

-P       Load a binary, Intel Hex or Motorolla S-record file into device memory
         Syntax  : -P <File_Path> [<Address>].
         Example1: -P "c:\application.bin" 0x08000000
         Example2: -P "c:\application.hex"
Кстати! Там у вас в пути все палки прямые, юниксовые. Может, не понимает? На бэкслеши не меняли?

Если будут новости, пожалуйста, отпишите тут, мне это всё тоже предстоит скоро. :-)
Клоподавер упрыгхт
Реклама
kondor
Нашел транзистор. Понюхал.
Сообщения: 150
Зарегистрирован: Чт апр 29, 2010 10:32:32

Re: Eclipse + gcc и немного STM32

Сообщение kondor »

Кажись заработало 0_0 Собрал полностью свой проект, тип выходного файла ihex и он прошивается ) Сейчас попробую хотя бы светодиодом поморгать, проверить так сказать работоспособность. Если кто-нибудь расскажет, как сделать статью - могу попробовать собрать подробный мануал по своей сборке проекта, так сказать с нуля )

Это только первый вопрос решает, и то наполовину ) Хотелось бы конечно gdb запустить, вроде в ТРУ студио через него прошивка идет.
Аватара пользователя
Zheleznjakov
Нашел транзистор. Понюхал.
Сообщения: 190
Зарегистрирован: Сб июн 12, 2010 16:19:17
Откуда: Россия, Томск
Контактная информация:

Re: Eclipse + gcc и немного STM32

Сообщение Zheleznjakov »

за ходи ко мне :)
почти все ответы на твои вопросы
как прошить http://ziblog.ru/2011/03/25/obnovlenie- ... k-utility/
и примеры, если что пиши...
С уважением, Денис Железняков aka ZiB
Мой блог: http://ziblog.ru
Реклама
Эиком - электронные компоненты и радиодетали
kondor
Нашел транзистор. Понюхал.
Сообщения: 150
Зарегистрирован: Чт апр 29, 2010 10:32:32

Re: Eclipse + gcc и немного STM32

Сообщение kondor »

Да я ж по этому сайту учился часть периферии заводить :))) И про ST-Link тоже оттуда информацию брал :)))

Видел там статейки про компиляцию исходников, но меня больше интересует именно настройка все через эклипс, а такого я там не видел. Сегодня долгое время боролся с подключением startup_stm32f10x-md-vl.s к проекту. Каким-то чудом он его начал цеплять, НО стал вылезать другой косяк:

Код: Выделить всё

arm-none-eabi-g++ -T"E:\Projects\STM\DEV\Example\Libraries\stm32_flash.ld" -Xlinker --gc-sections -Wl,-Map,Example.map -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o"Example.elf"  ./main.o  ./Libraries/startup_stm32f10x_md_vl.o  ./Libraries/STM32F10x_StdPeriph_Driver/src/misc.o ./Libraries/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.o ./Libraries/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.o ./Libraries/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.o ./Libraries/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.o ./Libraries/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.o ./Libraries/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.o ./Libraries/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.o ./Libraries/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.o ./Libraries/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.o ./Libraries/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.o ./Libraries/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.o ./Libraries/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.o ./Libraries/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.o ./Libraries/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.o ./Libraries/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.o ./Libraries/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.o ./Libraries/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.o ./Libraries/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.o ./Libraries/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.o ./Libraries/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.o ./Libraries/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.o ./Libraries/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.o  ./Libraries/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.o  ./Libraries/CMSIS/CM3/CoreSupport/core_cm3.o   
./Libraries/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.o: In function `GPIO_DeInit':
E:\Projects\STM\DEV\Example\Debug/../Libraries/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c:110: undefined reference to `assert_param'
./Libraries/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.o: In function `GPIO_Init':
E:\Projects\STM\DEV\Example\Debug/../Libraries/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c:177: undefined reference to `assert_param'
E:\Projects\STM\DEV\Example\Debug/../Libraries/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c:178: undefined reference to `assert_param'
E:\Projects\STM\DEV\Example\Debug/../Libraries/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c:179: undefined reference to `assert_param'
E:\Projects\STM\DEV\Example\Debug/../Libraries/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c:186: undefined reference to `assert_param'
./Libraries/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.o:E:\Projects\STM\DEV\Example\Debug/../Libraries/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c:285: more undefined references to `assert_param' follow
collect2: ld returned 1 exit status
cs-make: *** [Example.elf] Error 1
Уже запарился искать способ устранения :?
Реклама
Аватара пользователя
Zheleznjakov
Нашел транзистор. Понюхал.
Сообщения: 190
Зарегистрирован: Сб июн 12, 2010 16:19:17
Откуда: Россия, Томск
Контактная информация:

Re: Eclipse + gcc и немного STM32

Сообщение Zheleznjakov »

Если Eclipse только как редактор, то просто импортируешь как сторонний майк проект, а ежели отладку нужно то тут я не силен, так как не пользуюсь отладкой :(
С уважением, Денис Железняков aka ZiB
Мой блог: http://ziblog.ru
Реклама
Аватара пользователя
Zheleznjakov
Нашел транзистор. Понюхал.
Сообщения: 190
Зарегистрирован: Сб июн 12, 2010 16:19:17
Откуда: Россия, Томск
Контактная информация:

Re: Eclipse + gcc и немного STM32

Сообщение Zheleznjakov »

Ну в смысле те проекты что у меня на сайте :)
С уважением, Денис Железняков aka ZiB
Мой блог: http://ziblog.ru
kondor
Нашел транзистор. Понюхал.
Сообщения: 150
Зарегистрирован: Чт апр 29, 2010 10:32:32

Re: Eclipse + gcc и немного STM32

Сообщение kondor »

Что значит импортировать как сторонний мейк проект ? Пока что эклипс будет только лишь редактором, потом возможно попробую отладку. Хотя, если честно тоже никогда ей не пользовался.
Просто нравится, что эклипс сам прописывает в мейкфайле все необходимое, надо только научиться в нем это настраивать :)

А насчет предыдущей ошибки ничего не можете подсказать ?
ellioh
Встал на лапы
Сообщения: 100
Зарегистрирован: Сб янв 22, 2011 16:57:45

Re: Eclipse + gcc и немного STM32

Сообщение ellioh »

Поглядел, вроде бы с Atollic True Studio идёт ST-Link GDB Server. Если он без каких-то ограничений, получается, проблемы нет. При настройке отладки в Eclipse указать gdb из нужного toolchain, сказать коннектиться к gdb server, написать gdbinit -- и вперёд.

P.S. В принципе, делать сборку на makefile обычно лучше, чем в Eclipse. Я пока в Eclipse работаю в основном с AVR, отлаживаю (simulavr и JTAG ICE), но собирает он у меня проект запуском makefile по нажатию кнопки.
Клоподавер упрыгхт
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18614
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: Eclipse + gcc и немного STM32

Сообщение ARV »

ellioh писал(а):отлаживаю (simulavr и JTAG ICE)
расскажите, как вы подружили simulavr с avr-gdb и Eclipse?
сколько я ни пробовал, связка получалась крайне нестабильная, то зависающая, то вылетающая, и вообще, показывающая какую-то чушь. а темка интересная - обойтись при отладке без студийного отладчика и протеуса.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Galizin
Мучитель микросхем
Сообщения: 478
Зарегистрирован: Ср окт 15, 2008 09:33:03
Откуда: Воронеж

Re: Eclipse + gcc и немного STM32

Сообщение Galizin »

E:\Projects\STM\DEV\Example\Debug/../Libraries/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c:186: undefined reference to `assert_param'
Уже запарился искать способ устранения

Информации вывода недостаточно для поиска ошибки. Я опишу как эта ошибка возникает, а искать все равно Вам. Эта ошибка компоновки - неопределенная ссылка. Возникает она тогда, если в одном из модулей Вы используете какую либо функцию, но ее кода не определяете (с такое позволяет). Или объявляете переменную как extern, но саму переменную определить забываете. В данном случе эта функция используется для проверки параметоров функций. Поищите его определение в stm32f10x_conf.h. По умолчанию этот макрос пустой. Это значит либо Вы забыли включить вот этот заголовочный файл. Либо этот файл хватается не из того места. Нужно внимательно проверять опции компилятора, а не компоновщика.
Я собирал стандартные библиотеки компилятором gcc - все собиралось. Но без exlipse обычным make.
ellioh
Встал на лапы
Сообщения: 100
Зарегистрирован: Сб янв 22, 2011 16:57:45

Re: Eclipse + gcc и немного STM32

Сообщение ellioh »

ARV писал(а):
ellioh писал(а):отлаживаю (simulavr и JTAG ICE)
расскажите, как вы подружили simulavr с avr-gdb и Eclipse?
сколько я ни пробовал, связка получалась крайне нестабильная, то зависающая, то вылетающая, и вообще, показывающая какую-то чушь. а темка интересная - обойтись при отладке без студийного отладчика и протеуса.
Насчёт стабильности -- действительно есть проблема, как я понимаю, проблема в simulavr. Когда я собирал simulavr сам, ничего хорошего не получалось, где-то в форуме остался след моих мучений. :) Даже собрал JTAG ICE.

Когда взял simulavr из репозиториев Ubuntu, дело пошло (кстати, там список поддерживаемых МК почему-то больше, чем в симулавре из WinAVR, например, есть ATmega16). Но я пускаю и отлаживаю только набор юнит-тестов, на него обычно среднего времени между падениями simulavr хватает. :) В принципе-то способ подруживания ничем не отличается от того, как подружить avr-gdb с JTAG ICE, просто роль сервера выполняет в одном случае simulavr, в другом -- avarice, дальше -- при настройке запуска отладчика указать правильный отладчик (avr-gdb вместо gdb), написать gdbinit с путями к сорцам и указанием, что загружать (у меня makefile генерит gdbinit), и сказать Eclipse, где этот gdbinit.

Кстати, переменные связка eclipse+avr-gdb показывает тоже как-то скверно (глобальные, например, в упор не видит), но хотя бы можно в интересном месте смотреть дизассемблер и регистры.
Клоподавер упрыгхт
Аватара пользователя
Zheleznjakov
Нашел транзистор. Понюхал.
Сообщения: 190
Зарегистрирован: Сб июн 12, 2010 16:19:17
Откуда: Россия, Томск
Контактная информация:

Re: Eclipse + gcc и немного STM32

Сообщение Zheleznjakov »

kondor писал(а):Что значит импортировать как сторонний мейк проект ? Пока что эклипс будет только лишь редактором, потом возможно попробую отладку. Хотя, если честно тоже никогда ей не пользовался.
Просто нравится, что эклипс сам прописывает в мейкфайле все необходимое, надо только научиться в нем это настраивать :)

А насчет предыдущей ошибки ничего не можете подсказать ?
как то так
http://ziblog.ru/2011/04/20/eclipse/
С уважением, Денис Железняков aka ZiB
Мой блог: http://ziblog.ru
Аватара пользователя
Zheleznjakov
Нашел транзистор. Понюхал.
Сообщения: 190
Зарегистрирован: Сб июн 12, 2010 16:19:17
Откуда: Россия, Томск
Контактная информация:

Re: Eclipse + gcc и немного STM32

Сообщение Zheleznjakov »

про ошибку
:186: undefined reference to `assert_param'

компилятор пишет что не нашел ссылку на assert_param
т.е. использование есть а реализации нет :)
нужно либо подключить из либ или самому написать,
С уважением, Денис Железняков aka ZiB
Мой блог: http://ziblog.ru
kondor
Нашел транзистор. Понюхал.
Сообщения: 150
Зарегистрирован: Чт апр 29, 2010 10:32:32

Re: Eclipse + gcc и немного STM32

Сообщение kondor »

Сейчас попробовал собрать еще один проект - получил постоянные

Код: Выделить всё

cs-make: *** No rule to make target `f2.elf', needed by `all'.  Stop.
Вобщем, буду делать свой мейкфайл. Интересно, его можно сделать на все случаи жизни ?

Я знаю что значит эта ошибка (насчет assert). Я пытался ее задать, добавив в начале проекта

Код: Выделить всё

#define assert_param(expr) ((void)0)
Я пытался подключать stm32f10x_conf.h перед остальными.....
Вобщем, если завтра каким-нибудь чудом оно само не заработает, выложу проект сюда. Надо хотя бы разобраться в чем причина. Да и хотелось бы использовать стандартные библиотеки без изменений.
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18614
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: Eclipse + gcc и немного STM32

Сообщение ARV »

ellioh писал(а):...
понятно... я-то думал, это у меня ркуи кривые... оказалось - руки более-менее, а кривой simulavr :))) жаль, жаль...
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
kondor
Нашел транзистор. Понюхал.
Сообщения: 150
Зарегистрирован: Чт апр 29, 2010 10:32:32

Re: Eclipse + gcc и немного STM32

Сообщение kondor »

Вобщем, идеи кончились, нервы тоже близки к концу .... Может кто-нибудь подсказать что я не так делаю в этом проекте ?
Вложения
Example.rar
(327.69 КБ) 192 скачивания
Galizin
Мучитель микросхем
Сообщения: 478
Зарегистрирован: Ср окт 15, 2008 09:33:03
Откуда: Воронеж

Re: Eclipse + gcc и немного STM32

Сообщение Galizin »

kondor писал(а):Вобщем, идеи кончились, нервы тоже близки к концу .... Может кто-нибудь подсказать что я не так делаю в этом проекте ?
Проекта то как раз и нет.
Вот набор файлов, которые нужно добавить в каталог, где лежит файл main.c. В файле makeconfig.inc поменять пути на те что у Вас.
Запуск сборки - make. Проверялось ппод linux. Этот же makefile работал у меня и под win. только пути были другие.
Не забудьте включить в переменную PATH пути к каталогу испольняемых файлов. В частности к make и arm-none-eabi-gcc
Если будет работать не совсем правильно - выкиньте генерацию листинга строка
$(OD) $(ODFLAGS) main.out > main.list
Это глюк виндового make. Он не понимает символа >. Я использовал под win make из комплекта gcc для msp430.
Вот мой проект для примера от ST а также документ как я боролся с gcc и картинки.
http://homes.relex.ru/~oleg/e/stm_samples.rar
Вложения
cf.zip
(3.77 КБ) 181 скачивание
Ar-Gen-Tum
Прорезались зубы
Сообщения: 221
Зарегистрирован: Вс янв 23, 2011 21:51:12

Re: Eclipse + gcc и немного STM32

Сообщение Ar-Gen-Tum »

Среда разработки CooCox CoIDE . Аля Eclipse. Для ARM Cortex-M серии, в том числе и STM32xxxx .
Аватара пользователя
dosikus
Друг Кота
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

Re: Eclipse + gcc и немного STM32

Сообщение dosikus »

Ar-Gen-Tum Мало чипов STM , да и только свой Link .
Отладчик только железный.
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»