Jump to content
Sign in to follow this  
kobzar

Mac Os Eclipse Startup

Recommended Posts

Привет ребята!

Решил попробовать на вкус пиченьки от ST

Перечитал кучу литературы. В качестве ИДЕ под макось выбрал еклипс + stlink + gcc-arm-none-eabi

Собрал все в кучу и настроил!

Делал согласно данного мануала (может кому линк пригодится)

http://grafixmafia.n...10-9-mavericks/

А вот дальше вспотыкаюсь! Создал проект мастером для STM32F0 серии - оно там создало "свою атмосфЭру" которая расходится с моими пониманиями о чести и благородстве.

Решил пойти трудным путем! Созда пустой проэкт! ДОбавил папки через еклипс! В папки уже файловым менеджером залил файлы! Проект обновил (рефреш) все увидилось!

Далее внес настройки в файл stm32f0xx_conf.h в котором оставил раскоментированными только gpio и rcc

(Но в самой папке с SPL присутствуют все файлы - делаю себе заготовку под будущие проекты)

И вот при попытке билда - выскакивает такая вот нудота:

17:20:14 **** Incremental Build of configuration Debug for project SCP ****
make all
Building file: ../Libs/firmware/src/stm32f0xx_adc.c
Invoking: Cross ARM C Compiler
arm-none-eabi-gcc -mcpu=cortex-m3 -mthumb -O0 -fmessage-length=0 -fsigned-char -ffunction-sections -fdata-sections -g3 -std=gnu11 -MMD -MP -MF"Libs/firmware/src/stm32f0xx_adc.d" -MT"Libs/firmware/src/stm32f0xx_adc.o" -c -o "Libs/firmware/src/stm32f0xx_adc.o" "../Libs/firmware/src/stm32f0xx_adc.c"
../Libs/firmware/src/stm32f0xx_adc.c:76:27: fatal error: stm32f0xx_adc.h: No such file or directory
#include "stm32f0xx_adc.h"
					 ^
compilation terminated.
make: *** [Libs/firmware/src/stm32f0xx_adc.o] Error 1[/size][/font][/color]
[color=#000000][font='Lucida Grande', 'Trebuchet MS', Helvetica, Arial, sans-serif][size=3]17:20:15 Build Finished (took 733ms)

При этом данная либа у меня закомментированна и вобще по идее компилиться не должна!

Самостоятельно разобрать и понять суть ошибки не получилось!

Подскажите место в котором я ошибся!

Проект прилагается!

з.ы. А как кстати заливать с мака прошивку ? Можно через еклипс? (минуя дебаг)

Благодарю!

Прошу прощения если подобная тема была :)

SCP.zip

Edited by kobzar

коплю на мечту - Днепр К750

Share this post


Link to post
Share on other sites

Насколько я знаю, препроцессор пробегается по всем папкам исходников и "собирает" все исходники. Туда же входит и путь /Libs/firmware/src . А вот пути заголовков неправильно прописаны, судя по тексту командной строки (должен быть -I"Libs/firmware/src" в том числе, если верно помню). Поковыряйте Project properties (настройка Includes) или как их там в эклипсе называют, должно помочь.

PS. Шрифт вырвиглазный )

Edited by Zhuebok

Share this post


Link to post
Share on other sites

Таки да

Прописал пути все зашелестело!

Однако - получил кучу других проблем! Пока разбираюсь с чем связанно!

Толи либа не та - толи еще что-то упустил

Кому надо

пишем тут

Snimokekrana2014-11-15v19.1416073562.png

Не совсем пока понял! Но попробую скачать ещзе раз SPL и разсовать библиотеки!

Пока что вижу такую грустную картину

../Libs/firmware/src/stm32f0xx_dac.c: In function 'DAC_DeInit':
../Libs/firmware/src/stm32f0xx_dac.c:165:3: warning: implicit declaration of function 'RCC_APB1PeriphResetCmd' [-Wimplicit-function-declaration]
  RCC_APB1PeriphResetCmd(RCC_APB1Periph_DAC, ENABLE);
  ^
../Libs/firmware/src/stm32f0xx_dac.c:165:26: error: 'RCC_APB1Periph_DAC' undeclared (first use in this function)
  RCC_APB1PeriphResetCmd(RCC_APB1Periph_DAC, ENABLE);

Edited by kobzar

коплю на мечту - Днепр К750

Share this post


Link to post
Share on other sites

Время – деньги и наноамперы: применение часов реального времени Maxim Integrated

Зачем использовать внешнюю микросхему часов реального времени (RTC), а не внутренние RTC микроконтроллера? Хотя бы потому, что у RTC MAX31342 производства Maxim Integrated типовое потребление составляет 150 нА при 3 В и температуре 25°С, а у встроенных RTC одного из самых малопотребляющих микроконтроллеров при тех же условиях – примерно 370 нА.

Читать статью

Подобавлял пути!

Но вылезли другие ошибки суть которых пока так же не ясна !

Например при попытке собрать проект стопоримся на

Invoking: Cross ARM C Compiler
arm-none-eabi-gcc -mcpu=cortex-m3 -mthumb -O0 -fmessage-length=0 -fsigned-char -ffunction-sections -fdata-sections  -g3 -I"/Volumes/Z/STM/Projects/SCP/Firmware/CMSIS" -I"/Volumes/Z/STM/Projects/SCP/Firmware/SPL/inc" -I"/Volumes/Z/STM/Projects/SCP/Firmware/SPL/src" -I"/Volumes/Z/STM/Projects/SCP/Conf" -std=gnu99 -MMD -MP -MF"Firmware/SPL/src/stm32f0xx_dac.d" -MT"Firmware/SPL/src/stm32f0xx_dac.o" -c -o "Firmware/SPL/src/stm32f0xx_dac.o" "../Firmware/SPL/src/stm32f0xx_dac.c"
../Firmware/SPL/src/stm32f0xx_dac.c: In function 'DAC_DeInit':
../Firmware/SPL/src/stm32f0xx_dac.c:165:3: warning: implicit declaration of function 'RCC_APB1PeriphResetCmd' [-Wimplicit-function-declaration]
  RCC_APB1PeriphResetCmd(RCC_APB1Periph_DAC, ENABLE);
  ^
../Firmware/SPL/src/stm32f0xx_dac.c:165:26: error: 'RCC_APB1Periph_DAC' undeclared (first use in this function)
  RCC_APB1PeriphResetCmd(RCC_APB1Periph_DAC, ENABLE);
					  ^
../Firmware/SPL/src/stm32f0xx_dac.c:165:26: note: each undeclared identifier is reported only once for each function it appears in
../Firmware/SPL/src/stm32f0xx_dac.c: In function 'DAC_Init':
../Firmware/SPL/src/stm32f0xx_dac.c:186:3: warning: implicit declaration of function 'assert_param' [-Wimplicit-function-declaration]
  assert_param(IS_DAC_TRIGGER(DAC_InitStruct->DAC_Trigger));
  ^
make: *** [Firmware/SPL/src/stm32f0xx_dac.o] Error 1

ругается на

void DAC_DeInit(void)
{
 /* Enable DAC reset state */
 RCC_APB1PeriphResetCmd(RCC_APB1Periph_DAC, ENABLE);
 /* Release DAC from reset state */
 RCC_APB1PeriphResetCmd(RCC_APB1Periph_DAC, DISABLE);
}

в файле stm32f0xx_dac.h

Может я что-то гдето недоподключил/прописал?


коплю на мечту - Днепр К750

Share this post


Link to post
Share on other sites

Продолжаем кушать какстус...

Проблема была в том что просто забыл раскоментить использование стандартнйо либы...

Раскоментил все завелось! Ошибки пропали! И казалось бы на горизонте светит солнце

но не тут то было

сейчас получаю вот такую ошибку и все

19:59:32 **** Incremental Build of configuration Debug for project SCP ****
make all
Building target: SCP.elf
Invoking: Cross ARM C Linker
arm-none-eabi-gcc -mcpu=cortex-m0 -mthumb -Og -fmessage-length=0 -fsigned-char -ffunction-sections -fdata-sections -Wall -Wextra  -g3 -Xlinker --gc-sections -Wl,-Map,"SCP.map" -o "SCP.elf"  ./Firmware/SPL/src/stm32f0xx_adc.o ./Firmware/SPL/src/stm32f0xx_can.o ./Firmware/SPL/src/stm32f0xx_cec.o ./Firmware/SPL/src/stm32f0xx_comp.o ./Firmware/SPL/src/stm32f0xx_crc.o ./Firmware/SPL/src/stm32f0xx_crs.o ./Firmware/SPL/src/stm32f0xx_dac.o ./Firmware/SPL/src/stm32f0xx_dbgmcu.o ./Firmware/SPL/src/stm32f0xx_dma.o ./Firmware/SPL/src/stm32f0xx_exti.o ./Firmware/SPL/src/stm32f0xx_flash.o ./Firmware/SPL/src/stm32f0xx_gpio.o ./Firmware/SPL/src/stm32f0xx_i2c.o ./Firmware/SPL/src/stm32f0xx_iwdg.o ./Firmware/SPL/src/stm32f0xx_misc.o ./Firmware/SPL/src/stm32f0xx_pwr.o ./Firmware/SPL/src/stm32f0xx_rcc.o ./Firmware/SPL/src/stm32f0xx_rtc.o ./Firmware/SPL/src/stm32f0xx_spi.o ./Firmware/SPL/src/stm32f0xx_syscfg.o ./Firmware/SPL/src/stm32f0xx_tim.o ./Firmware/SPL/src/stm32f0xx_usart.o ./Firmware/SPL/src/stm32f0xx_wwdg.o  ./Firmware/CMSIS/system_stm32f0xx.o  ./main.o  
/Volumes/Z/STM/Tools/gcc-arm/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv6-m/libg.a(lib_a-exit.o): In function `exit':
exit.c:(.text.exit+0x18): undefined reference to `_exit'
collect2: error: ld returned 1 exit status
make: *** [sCP.elf] Error 1
19:59:33 Build Finished (took 162ms)

При этом - создал рядом проект мастером! Сверил все настройки для обоих проектов!

Ошибок не вижу! Тот что создается мастером собирается - мой - нет!

Что за ошибка и как гриться как с ней бороться?


коплю на мечту - Днепр К750

Share this post


Link to post
Share on other sites
                     

Чип-резисторы Panasonic - технология мягких выводов и сертификация AEC-Q200

Технология мягких выводов чип-резисторов производства компании Panasonic. Обзор серий с оптимизированными параметрами: прецизионных тонкопленочных, токоизмерительных, антисерных, резисторов с повышенной стойкостью к статике и импульсным нагрузкам, резисторных сборок.

Читать статью

Такая же ошибка возникала в первые разы. Сейчас уже точно не вспомню, но, вроде бы, нужно было снять флаг использования стандартных библиотек.

Скачал какой-то плагин для арма, немного отличается от того, что я раньше использовал, но флаг вот этот должен стоять, и следующий за ним тоже (-nostdlib):

post-178068-0-79470900-1416227767_thumb.png

Могут еще повыскакивать ошибки, скорее всего, из-за того, что не будут указаны скрипты линковщика (ld-файлы, где указывается размер стека, и прочее, прочее. Их можно сгенерировать линковщиком, емнип, и потом уже настроить вручную), а также файл ассемблера (с расширением s).

Еще, как вариант, можно прописать в опциях компилятора: --specs=nosys.specs

Edited by Zhuebok

Share this post


Link to post
Share on other sites

опция прописана - ld скрипты добавленны! на данный момент вижу такую картинку!

Invoking: Cross ARM GNU Print Size

arm-none-eabi-size --format=berkeley "SCP.elf"

text data bss dec hex filename

0 0 256 256 100 SCP.elf

Finished building: SCP.siz

Очевидно что мне не хватает совсем чуть чуть!

В консоли при этом:

Building target: SCP.elf
Invoking: Cross ARM C Linker
arm-none-eabi-gcc -mcpu=cortex-m0 -mthumb -Og -fmessage-length=0 -fsigned-char -ffunction-sections -fdata-sections -Wall -Wextra  -g3 -T mem.ld -T libs.ld -T sections.ld -nostartfiles -Xlinker --gc-sections -L"/Users/kobzar/STM/Projects/SCP/Firmware/ldscripts" -Wl,-Map,"SCP.map" --specs=nano.specs -o "SCP.elf"  ./Firmware/SPL/src/stm32f0xx_adc.o ./Firmware/SPL/src/stm32f0xx_can.o ./Firmware/SPL/src/stm32f0xx_cec.o ./Firmware/SPL/src/stm32f0xx_comp.o ./Firmware/SPL/src/stm32f0xx_crc.o ./Firmware/SPL/src/stm32f0xx_crs.o ./Firmware/SPL/src/stm32f0xx_dac.o ./Firmware/SPL/src/stm32f0xx_dbgmcu.o ./Firmware/SPL/src/stm32f0xx_dma.o ./Firmware/SPL/src/stm32f0xx_exti.o ./Firmware/SPL/src/stm32f0xx_flash.o ./Firmware/SPL/src/stm32f0xx_gpio.o ./Firmware/SPL/src/stm32f0xx_i2c.o ./Firmware/SPL/src/stm32f0xx_iwdg.o ./Firmware/SPL/src/stm32f0xx_misc.o ./Firmware/SPL/src/stm32f0xx_pwr.o ./Firmware/SPL/src/stm32f0xx_rcc.o ./Firmware/SPL/src/stm32f0xx_rtc.o ./Firmware/SPL/src/stm32f0xx_spi.o ./Firmware/SPL/src/stm32f0xx_syscfg.o ./Firmware/SPL/src/stm32f0xx_tim.o ./Firmware/SPL/src/stm32f0xx_usart.o ./Firmware/SPL/src/stm32f0xx_wwdg.o  ./Firmware/CMSIS/system_stm32f0xx.o  ./Conf/stm32f0xx_it.o  ./main.o  
/Users/kobzar/STM/Tools/gcc-arm/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/bin/ld: warning: cannot find entry symbol _start; defaulting to 0000000008000000
Finished building target: SCP.elf

коплю на мечту - Днепр К750

Share this post


Link to post
Share on other sites

Ну так если ELF файл создался, то его уже можно в прошивальщик грузить.

Если хочется сделать HEX, то в консоли выполнить команду:

arm-none-eabi-objcopy -Oihex SCP.elf SCP.hex

Share this post


Link to post
Share on other sites

Да! Но как видите text и data равны нулю! А так быть не может!

ну и ругань на cannot find entry symbol _start; defaulting to 000000000800000

тоже должна о чем то говорить! Хочется ведь что бы все было как нужно....


коплю на мечту - Днепр К750

Share this post


Link to post
Share on other sites

Здесь ассемблеровские файлы для запуска. В параметрах Assembler'а в настройках нужно добавить его (для каждого ядра Cortex свой) и скомпилировать проект заново.

Хотя, насколько я понимаю, их включать вовсе не обязательно. Память программ располагается начиная с адреса 0x08000000 (что должно быть прописано в ld-скрипте), так что это предупреждение можно смело пропустить.

startup.rar

Edited by Zhuebok

Share this post


Link to post
Share on other sites

Благодарю! :)

Поставил Emblocks - и ниистава щаслив!

Хотелось конечно нативно - но ето полусборка уваленная настоящее говно!

Плоть до того что уже создал проект мастером - набросал код для мигалки светодиода - скомпилилось но бубнопляс продолжается на каждом шагу!

Я конечно понимаю что каждый программист СТМ32 под нормальной ос должен построить свою ИДЕ - но как то влом!

Благодарю за потраченное время!


коплю на мечту - Днепр К750

Share this post


Link to post
Share on other sites

Join the conversation

You are posting as a guest. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
Sign in to follow this  

×
×
  • Create New...