Eclipse + gcc и немного STM32
Eclipse + gcc и немного STM32
Досталась мне на изучение 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 - внутрисхемный отладчик - как ?
Долгое время пытался собрать проект вот по этой статье, в результате собрался таки файл, только вот не 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 - внутрисхемный отладчик - как ?
- Реклама
Re: Eclipse + gcc и немного STM32
По этому сообщению я бы предположил, что оно ждёт бинарный файл. Из HEX не пробовали сделать? Хотя, судя по вот этому, должно бы распознавать:e:/project/STM/DEV/STM32Test/Debug/STM32Test.hex": This file is empty or corrupted
Код: Выделить всё
-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"
Если будут новости, пожалуйста, отпишите тут, мне это всё тоже предстоит скоро.
Клоподавер упрыгхт
Re: Eclipse + gcc и немного STM32
Кажись заработало 0_0 Собрал полностью свой проект, тип выходного файла ihex и он прошивается ) Сейчас попробую хотя бы светодиодом поморгать, проверить так сказать работоспособность. Если кто-нибудь расскажет, как сделать статью - могу попробовать собрать подробный мануал по своей сборке проекта, так сказать с нуля )
Это только первый вопрос решает, и то наполовину ) Хотелось бы конечно gdb запустить, вроде в ТРУ студио через него прошивка идет.
Это только первый вопрос решает, и то наполовину ) Хотелось бы конечно gdb запустить, вроде в ТРУ студио через него прошивка идет.
- Zheleznjakov
- Нашел транзистор. Понюхал.
- Сообщения: 190
- Зарегистрирован: Сб июн 12, 2010 16:19:17
- Откуда: Россия, Томск
- Контактная информация:
Re: Eclipse + gcc и немного STM32
за ходи ко мне 
почти все ответы на твои вопросы
как прошить http://ziblog.ru/2011/03/25/obnovlenie- ... k-utility/
и примеры, если что пиши...
почти все ответы на твои вопросы
как прошить http://ziblog.ru/2011/03/25/obnovlenie- ... k-utility/
и примеры, если что пиши...
С уважением, Денис Железняков aka ZiB
Мой блог: http://ziblog.ru
Мой блог: http://ziblog.ru
Re: Eclipse + gcc и немного STM32
Да я ж по этому сайту учился часть периферии заводить
И про ST-Link тоже оттуда информацию брал
Видел там статейки про компиляцию исходников, но меня больше интересует именно настройка все через эклипс, а такого я там не видел. Сегодня долгое время боролся с подключением startup_stm32f10x-md-vl.s к проекту. Каким-то чудом он его начал цеплять, НО стал вылезать другой косяк:
Уже запарился искать способ устранения 
Видел там статейки про компиляцию исходников, но меня больше интересует именно настройка все через эклипс, а такого я там не видел. Сегодня долгое время боролся с подключением 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
Если Eclipse только как редактор, то просто импортируешь как сторонний майк проект, а ежели отладку нужно то тут я не силен, так как не пользуюсь отладкой 
С уважением, Денис Железняков aka ZiB
Мой блог: http://ziblog.ru
Мой блог: http://ziblog.ru
- Zheleznjakov
- Нашел транзистор. Понюхал.
- Сообщения: 190
- Зарегистрирован: Сб июн 12, 2010 16:19:17
- Откуда: Россия, Томск
- Контактная информация:
Re: Eclipse + gcc и немного STM32
Ну в смысле те проекты что у меня на сайте 
С уважением, Денис Железняков aka ZiB
Мой блог: http://ziblog.ru
Мой блог: http://ziblog.ru
Re: Eclipse + gcc и немного STM32
Что значит импортировать как сторонний мейк проект ? Пока что эклипс будет только лишь редактором, потом возможно попробую отладку. Хотя, если честно тоже никогда ей не пользовался.
Просто нравится, что эклипс сам прописывает в мейкфайле все необходимое, надо только научиться в нем это настраивать
А насчет предыдущей ошибки ничего не можете подсказать ?
Просто нравится, что эклипс сам прописывает в мейкфайле все необходимое, надо только научиться в нем это настраивать
А насчет предыдущей ошибки ничего не можете подсказать ?
Re: Eclipse + gcc и немного STM32
Поглядел, вроде бы с Atollic True Studio идёт ST-Link GDB Server. Если он без каких-то ограничений, получается, проблемы нет. При настройке отладки в Eclipse указать gdb из нужного toolchain, сказать коннектиться к gdb server, написать gdbinit -- и вперёд.
P.S. В принципе, делать сборку на makefile обычно лучше, чем в Eclipse. Я пока в Eclipse работаю в основном с AVR, отлаживаю (simulavr и JTAG ICE), но собирает он у меня проект запуском makefile по нажатию кнопки.
P.S. В принципе, делать сборку на makefile обычно лучше, чем в Eclipse. Я пока в Eclipse работаю в основном с AVR, отлаживаю (simulavr и JTAG ICE), но собирает он у меня проект запуском makefile по нажатию кнопки.
Клоподавер упрыгхт
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18614
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
Re: Eclipse + gcc и немного STM32
расскажите, как вы подружили simulavr с avr-gdb и Eclipse?ellioh писал(а):отлаживаю (simulavr и JTAG ICE)
сколько я ни пробовал, связка получалась крайне нестабильная, то зависающая, то вылетающая, и вообще, показывающая какую-то чушь. а темка интересная - обойтись при отладке без студийного отладчика и протеуса.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
Re: Eclipse + gcc и немного STM32
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.
Уже запарился искать способ устранения
Информации вывода недостаточно для поиска ошибки. Я опишу как эта ошибка возникает, а искать все равно Вам. Эта ошибка компоновки - неопределенная ссылка. Возникает она тогда, если в одном из модулей Вы используете какую либо функцию, но ее кода не определяете (с такое позволяет). Или объявляете переменную как extern, но саму переменную определить забываете. В данном случе эта функция используется для проверки параметоров функций. Поищите его определение в stm32f10x_conf.h. По умолчанию этот макрос пустой. Это значит либо Вы забыли включить вот этот заголовочный файл. Либо этот файл хватается не из того места. Нужно внимательно проверять опции компилятора, а не компоновщика.
Я собирал стандартные библиотеки компилятором gcc - все собиралось. Но без exlipse обычным make.
Re: Eclipse + gcc и немного STM32
Насчёт стабильности -- действительно есть проблема, как я понимаю, проблема в simulavr. Когда я собирал simulavr сам, ничего хорошего не получалось, где-то в форуме остался след моих мучений.ARV писал(а):расскажите, как вы подружили simulavr с avr-gdb и Eclipse?ellioh писал(а):отлаживаю (simulavr и JTAG ICE)
сколько я ни пробовал, связка получалась крайне нестабильная, то зависающая, то вылетающая, и вообще, показывающая какую-то чушь. а темка интересная - обойтись при отладке без студийного отладчика и протеуса.
Когда взял simulavr из репозиториев Ubuntu, дело пошло (кстати, там список поддерживаемых МК почему-то больше, чем в симулавре из WinAVR, например, есть ATmega16). Но я пускаю и отлаживаю только набор юнит-тестов, на него обычно среднего времени между падениями simulavr хватает.
Кстати, переменные связка eclipse+avr-gdb показывает тоже как-то скверно (глобальные, например, в упор не видит), но хотя бы можно в интересном месте смотреть дизассемблер и регистры.
Клоподавер упрыгхт
- Zheleznjakov
- Нашел транзистор. Понюхал.
- Сообщения: 190
- Зарегистрирован: Сб июн 12, 2010 16:19:17
- Откуда: Россия, Томск
- Контактная информация:
Re: Eclipse + gcc и немного STM32
как то такkondor писал(а):Что значит импортировать как сторонний мейк проект ? Пока что эклипс будет только лишь редактором, потом возможно попробую отладку. Хотя, если честно тоже никогда ей не пользовался.
Просто нравится, что эклипс сам прописывает в мейкфайле все необходимое, надо только научиться в нем это настраивать![]()
А насчет предыдущей ошибки ничего не можете подсказать ?
http://ziblog.ru/2011/04/20/eclipse/
С уважением, Денис Железняков aka ZiB
Мой блог: http://ziblog.ru
Мой блог: http://ziblog.ru
- Zheleznjakov
- Нашел транзистор. Понюхал.
- Сообщения: 190
- Зарегистрирован: Сб июн 12, 2010 16:19:17
- Откуда: Россия, Томск
- Контактная информация:
Re: Eclipse + gcc и немного STM32
про ошибку
:186: undefined reference to `assert_param'
компилятор пишет что не нашел ссылку на assert_param
т.е. использование есть а реализации нет
нужно либо подключить из либ или самому написать,
:186: undefined reference to `assert_param'
компилятор пишет что не нашел ссылку на assert_param
т.е. использование есть а реализации нет
нужно либо подключить из либ или самому написать,
С уважением, Денис Железняков aka ZiB
Мой блог: http://ziblog.ru
Мой блог: http://ziblog.ru
Re: Eclipse + gcc и немного STM32
Сейчас попробовал собрать еще один проект - получил постоянные
Вобщем, буду делать свой мейкфайл. Интересно, его можно сделать на все случаи жизни ?
Я знаю что значит эта ошибка (насчет assert). Я пытался ее задать, добавив в начале проекта
Я пытался подключать stm32f10x_conf.h перед остальными.....
Вобщем, если завтра каким-нибудь чудом оно само не заработает, выложу проект сюда. Надо хотя бы разобраться в чем причина. Да и хотелось бы использовать стандартные библиотеки без изменений.
Код: Выделить всё
cs-make: *** No rule to make target `f2.elf', needed by `all'. Stop.Я знаю что значит эта ошибка (насчет assert). Я пытался ее задать, добавив в начале проекта
Код: Выделить всё
#define assert_param(expr) ((void)0)Вобщем, если завтра каким-нибудь чудом оно само не заработает, выложу проект сюда. Надо хотя бы разобраться в чем причина. Да и хотелось бы использовать стандартные библиотеки без изменений.
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18614
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
Re: Eclipse + gcc и немного STM32
понятно... я-то думал, это у меня ркуи кривые... оказалось - руки более-менее, а кривой simulavrellioh писал(а):...
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
Re: Eclipse + gcc и немного STM32
Вобщем, идеи кончились, нервы тоже близки к концу .... Может кто-нибудь подсказать что я не так делаю в этом проекте ?
- Вложения
-
- Example.rar
- (327.69 КБ) 192 скачивания
Re: Eclipse + gcc и немного STM32
Проекта то как раз и нет.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
Среда разработки CooCox CoIDE . Аля Eclipse. Для ARM Cortex-M серии, в том числе и STM32xxxx .
Re: Eclipse + gcc и немного STM32
Ar-Gen-Tum Мало чипов STM , да и только свой Link .
Отладчик только железный.
Отладчик только железный.


