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

 
 
85 страниц V  « < 61 62 63 64 65 > »   
Reply to this topicStart new topic
klen
сообщение Mar 19 2014, 14:32
Сообщение #931


бессмертным стать можно тремя способами
*****

Группа: Свой
Сообщений: 1 405
Регистрация: 9-05-06
Из: Москва
Пользователь №: 16 912



Цитата(Terminator @ Mar 19 2014, 04:32) *
Я могу выслать вам .lss своего загрузчика собранного разными версиями.

LTO не использую. Ниодна версия "свежака" с включенным lto, мои проекты собрать не может.
Включение LTO на "рабочей" версии заканчивается примерно так же, падает с внутренней ошибкой.


кто падает? компиллер при линковке проекта?
как включаете и выключаете LTO?
Go to the top of the page
 
+Quote Post
Terminator
сообщение Mar 19 2014, 23:28
Сообщение #932


Местный
***

Группа: Участник
Сообщений: 209
Регистрация: 7-12-04
Из: Томск
Пользователь №: 1 382



Цитата(klen @ Mar 19 2014, 21:32) *
кто падает? компиллер при линковке проекта?

ага
Цитата
как включаете и выключаете LTO?

Как было написано в этой ветке выше.
Go to the top of the page
 
+Quote Post
adnega
сообщение Mar 28 2014, 11:51
Сообщение #933


Гуру
******

Группа: Свой
Сообщений: 2 724
Регистрация: 14-05-07
Из: Ярославль, Россия
Пользователь №: 27 702



Попробовал arm-kgp-eabi-mingw64-20130224-PROCYON.7z

Не собирается(
Код
compile.  main.o
d:/gcc/arm-kgp-eabi-procyon/bin/arm-kgp-eabi-gcc -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -fpack-struct -Wpadded -g -Os  -I . -I d:/gcc/lib/stm32/inc -gdwarf-2 -c main.c -o main.o

linker..
d:/gcc/arm-kgp-eabi-procyon/bin/arm-kgp-eabi-gcc -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -Wl,--gc-sections,-Map=test_fp_v1.ite2.elf.map,-cref,-u,Reset_Handler -I . -I d:/gcc/lib/stm32/inc -L . -L d:/gcc/arm-kgp-eabi-procyon/arm-kgp-eabi/lib/thumb/cortex-m4f -T STM32F407VG.ld  main.o --output test_fp_v1.ite2.elf

d:/gcc/arm-kgp-eabi-procyon/bin/../lib/gcc/arm-kgp-eabi/4.9.0/../../../../arm-kgp-eabi/bin/ld.exe: error: main.o uses VFP register arguments, test_fp_v1.ite2.elf does not
d:/gcc/arm-kgp-eabi-procyon/bin/../lib/gcc/arm-kgp-eabi/4.9.0/../../../../arm-kgp-eabi/bin/ld.exe: failed to merge target specific data of file main.o


Не подскажите, что мы обычно делаем в таком случае?
Go to the top of the page
 
+Quote Post
klen
сообщение Mar 29 2014, 15:07
Сообщение #934


бессмертным стать можно тремя способами
*****

Группа: Свой
Сообщений: 1 405
Регистрация: 9-05-06
Из: Москва
Пользователь №: 16 912



Цитата(adnega @ Mar 28 2014, 15:51) *
Попробовал arm-kgp-eabi-mingw64-20130224-PROCYON.7z

Не собирается(
[code]

Не подскажите, что мы обычно делаем в таком случае?


давайте начнем с того что линеру не будем передавать опцию с путем до системных либ - это не нужно и вредно поскольку комбинация ключей позволяет ему самому решить где брать libc libm libgcc и тд.

удалите в опциях линкера -L d:/gcc/arm-kgp-eabi-procyon/arm-kgp-eabi/lib/thumb/cortex-m4f

косяг в том что происходит попытка слинковать объектники и либы собранные под разные fpu, осталось понять как у линкера возникло такое желание

еще гипотеза - если я при сборке архива накасячил то возможно папка -L d:/gcc/arm-kgp-eabi-procyon/arm-kgp-eabi/lib/thumb/cortex-m4f пуста и в током случае линкер вынужден брать либы из корня d:/gcc/arm-kgp-eabi-procyon/arm-kgp-eabi/lib а там либы собранные бе поддержки фпу.

в понедельник решим эту беду. подождите сутки.
Go to the top of the page
 
+Quote Post
adnega
сообщение Mar 29 2014, 19:57
Сообщение #935


Гуру
******

Группа: Свой
Сообщений: 2 724
Регистрация: 14-05-07
Из: Ярославль, Россия
Пользователь №: 27 702



Цитата(klen @ Mar 29 2014, 19:07) *
давайте начнем с того что линеру не будем передавать опцию с путем до системных либ - это не нужно и вредно поскольку комбинация ключей позволяет ему самому решить где брать libc libm libgcc и тд.

удалите в опциях линкера -L d:/gcc/arm-kgp-eabi-procyon/arm-kgp-eabi/lib/thumb/cortex-m4f

косяг в том что происходит попытка слинковать объектники и либы собранные под разные fpu, осталось понять как у линкера возникло такое желание

еще гипотеза - если я при сборке архива накасячил то возможно папка -L d:/gcc/arm-kgp-eabi-procyon/arm-kgp-eabi/lib/thumb/cortex-m4f пуста и в током случае линкер вынужден брать либы из корня d:/gcc/arm-kgp-eabi-procyon/arm-kgp-eabi/lib а там либы собранные бе поддержки фпу.

в понедельник решим эту беду. подождите сутки.

Пути убрал - ничего не поменялось.
Меня больше напрягает: "error: main.o uses VFP register arguments, test_fp_v1.ite2.elf does not".
Это как понимать: "*.elf не использует"?
Видно, что до библиотек дело не доходит. Там бало бы что-то типа "failed to merge target specific data of file d:/gcc/arm-kgp-eabi-x86_64/arm-kgp-eabi/lib/thumb/cortex-m3\libc.a(lib_a-__call_atexit.o)".

Вот еще пример, с одной из предыдущих версий умышленно линкуемых с либами для М3: "error: test_fp_v1.ite2.elf uses VFP register arguments, d:/gcc/arm-kgp-eabi-x86_64/arm-kgp-eabi/lib/thumb/cortex-m3\libc.a(lib_a-__call_atexit.o) does not".
Теперь *.elf использует, а либа правильно не использует. У меня же наооборот)

Думаю, не хватает чего-то, что заставит линкер ипользовать fpu-шные регистры при сборке. Я могу ошибаться, но может линкер "нерабочий", а не библиотеки? Ради эксперимента подсунул новые либы старому компилятору - вроде скомпилировался проект и даже работает.

Со старым (рабочим) компилятором я получаю аналогичную ошибку, если указываю -mcpu=cortex-m3 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb. Странно, что компилируется все без ошибок, но линкер выдает: "error: main.o uses VFP register arguments, test_fp_v1.ite2.elf does not". Причем, можно компилятору указать M3, а линкеру М4 - все собирется и будет работать.

До понедельника доживу. Я бы и не стал переходить на новую сборку, если бы не обнаружил, что в старых при записи, например, USART1->DR = x вместо операции "запись" происходит "чтение-запись". Причем, это самое чтение сбрасывает флаги в регистре статуса (у STM32).
DR объявлен как vu16, если заменить на vu8, то лишнего "чтения" не происходит. В новой версии поведение правильное, поэтому и решился.
Go to the top of the page
 
+Quote Post
klen
сообщение Mar 30 2014, 06:53
Сообщение #936


бессмертным стать можно тремя способами
*****

Группа: Свой
Сообщений: 1 405
Регистрация: 9-05-06
Из: Москва
Пользователь №: 16 912



Цитата(adnega @ Mar 29 2014, 23:57) *
До понедельника доживу. Я бы и не стал переходить на новую сборку, если бы не обнаружил, что в старых при записи, например, USART1->DR = x вместо операции "запись" происходит "чтение-запись". Причем, это самое чтение сбрасывает флаги в регистре статуса (у STM32).
DR объявлен как vu16, если заменить на vu8, то лишнего "чтения" не происходит. В новой версии поведение правильное, поэтому и решился.


жесть какая то
я не тестирую сборки для масдая - это адь. мож на линух перескочите, забудите про кучи гиммароев?

нешел масдай - проверил сборку.
пробывал на своем текущем проекте:
компиляция и линковка
Цитата
arm-kgp-eabi-g++ -std=c++11 -D__CORTEX_M4F__ -D__STM32F405RGT6__ -D__STM32F4XX__ -DARM_MATH_CM4 -D__FPU_USED=1 -DSTM32F405xx -DSTM32F40_41xxx -D__VOLKOV_STM32F405_V2__ -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -fsingle-precision-constant -mthumb -Os -fomit-frame-pointer -finline-functions -ffunction-sections -fdata-sections -fgraphite -funroll-loops -Wp,-M,-MP,-MT,main.o,-MF,.dep/main.o.dep -W -Wall -Wno-unused-parameter -ggdb3 -I.././../../SDK_embedded/libs/common -fno-exceptions -fno-rtti -I./ -I.././include -I.././../../SDK_embedded/libs/st/stm32/f4xx/StdPeriph_Driver -I.././../../SDK_embedded/libs/st/stm32/f4xx/crt -I.././../../SDK_embedded/libs/st/stm32/f4xx/../CMSIS -I.././../../SDK_embedded/libs/st/stm32/f4xx/CMSIS -I.././../../SDK_embedded/libs/tlsf-2.4.6 -I.././../../SDK_embedded/libs/readline -I.././../../SDK_embedded/libs/utils -I.././../../SDK_embedded/libs/console -I.././../../SDK_embedded/libs/FreeRTOS/Source/include -I.././../../SDK_embedded/libs/FreeRTOS/Source/portable/GCC/ARM_CM4F -I.././../../SDK_embedded/libs/mmgr -I.././../../SDK_embedded/libs/vmath -DUSE_STDPERIPH_DRIVER -D__USE_FREERTOS__ -DF_OCS=8000000 -DRAM_VEC_TABLE=0 -DUSE_USB_OTG_FS -DUSE_EMBEDDED_PHY -DUSE_OTG_MODE -DF_OSC=8000000 -DOSC_TYPE=1 -DTICK_RATE_HZ_DEFAULT=1000UL -DMAX_PRIORITIES=4UL -DMINIMAL_STACK_SIZE=64UL -DMAX_TASK_NAME_LEN=16UL -c -o main.o main.cc


arm-kgp-eabi-g++ -T .././../scripts/matrix3d_demo.ld -fuse-linker-plugin -nostartfiles -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -fsingle-precision-constant -mthumb -Os -fomit-frame-pointer -finline-functions -ffunction-sections -fdata-sections -fgraphite -funroll-loops -ggdb3 -L.././../lib -Wl,-gc-sections -Wl,--start-group debug_led.o main.o -lmmgr -ltlsf -lfreertos_kernel -lfreertos_portable -lutils -lcrt -lcmsis -lhardware -lvmath -Wl,--end-group -o .././../out/image.elf -Wl,-Map,.././../out/image.map


собираеццо и не ругается. я покане понял в чем у Вас проблема.
Go to the top of the page
 
+Quote Post
adnega
сообщение Mar 30 2014, 09:49
Сообщение #937


Гуру
******

Группа: Свой
Сообщений: 2 724
Регистрация: 14-05-07
Из: Ярославль, Россия
Пользователь №: 27 702



CODE
adnega@NEWSRV:~/temp/test_nand$ ~/temp/arm-kgp-eabi-procyon/bin/arm-kgp-eabi-gcc --version
arm-kgp-eabi-gcc (Klen's GNU package (KGP) for ARM/elf platform. << PROCYON >>) 4.9.0 20140224 (experimental)
Copyright © 2014 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

adnega@NEWSRV:~/temp/test_nand$ make all
compile main.o
~/temp/arm-kgp-eabi-procyon/bin/arm-kgp-eabi-gcc -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -fpack-struct -Wpadded -g -Os -I . -I ./inc -gdwarf-2 -c main.c -o main.o
main.c: In function ‘main’:
main.c:174:2: internal compiler error: Недопустимая инструкция
volatile float x = 3.14f;
^
Please submit a full bug report,
with preprocessed source if appropriate.
See <http://gcc.gnu.org/bugs.html> for instructions.
make: *** [main.o] Ошибка 1

Под
Цитата
Distributor ID: Ubuntu
Description: Ubuntu 13.10
Release: 13.10
Codename: saucy


На той же системе с другой версией собирается.
Цитата
root@NEWSRV:/home/adnega/temp/test_nand# /home/adnega/temp/arm-kgp-eabi-20130623/bin/arm-kgp-eabi-gcc --version
arm-kgp-eabi-gcc (Klen's GNU package (KGP) for ARM/elf platform. << Fedor Konyukhov / Antarctica Cup Race Track 2008 >> ) 4.9.0 20130622 (experimental)
Copyright © 2013 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Go to the top of the page
 
+Quote Post
klen
сообщение Mar 30 2014, 13:39
Сообщение #938


бессмертным стать можно тремя способами
*****

Группа: Свой
Сообщений: 1 405
Регистрация: 9-05-06
Из: Москва
Пользователь №: 16 912



пересоберу еще... посмотрим что получттся
Go to the top of the page
 
+Quote Post
adnega
сообщение Mar 31 2014, 09:46
Сообщение #939


Гуру
******

Группа: Свой
Сообщений: 2 724
Регистрация: 14-05-07
Из: Ярославль, Россия
Пользователь №: 27 702



Попробовал в виртуалке (ubuntu 12.10) - с последней версий все собирается. На железном сервере (ubuntu 13.10) - уже писал, что нет (internal compiler error).
Могу дать удаленный доступ к "плохой" ubunte, но к сожалению, по личным причинам сейчас не до экспериментов (жена и дочка в больницу попали).
Сам второй-третий год собираюсь с windows "спрыгнуть". Уже все компы, включая нетбук и десктоп жены, перевел на linux - остался последний ноутбук-кормилец (нужен для работы). Нашел HDD для ноутбука - попробую временно на нем развернуть все необходимые инструменты.

Итого: если у меня одного проблемы, то беру таймаут на их разрешение + сделаю тестовый проект.
Если, klen, есть желание и возможность поразбираться с internal compiler error, то могу дать учетку для удаленного подключения (ssh).
Go to the top of the page
 
+Quote Post
klen
сообщение Mar 31 2014, 18:25
Сообщение #940


бессмертным стать можно тремя способами
*****

Группа: Свой
Сообщений: 1 405
Регистрация: 9-05-06
Из: Москва
Пользователь №: 16 912



давайте аккаунт, хоца посмотреть в чем косяг.. по идее падать не должно статически собираю....
Go to the top of the page
 
+Quote Post
adnega
сообщение Apr 2 2014, 02:01
Сообщение #941


Гуру
******

Группа: Свой
Сообщений: 2 724
Регистрация: 14-05-07
Из: Ярославль, Россия
Пользователь №: 27 702



Цитата(klen @ Mar 31 2014, 22:25) *
давайте аккаунт, хоца посмотреть в чем косяг.. по идее падать не должно статически собираю....

Отправил в личку
Go to the top of the page
 
+Quote Post
Terminator
сообщение Apr 4 2014, 06:42
Сообщение #942


Местный
***

Группа: Участник
Сообщений: 209
Регистрация: 7-12-04
Из: Томск
Пользователь №: 1 382



Про lto.
Проект на sam7. Чтобы всё впихнуть компилирую всё, что можно в thumb. С включением lto вылазит ошибка:
Код
.../cpu/Devices/adcISR.cpp: In function 'adcirq':
.../cpu/Devices/adcISR.cpp:73:2: error: interrupt Service Routines cannot be coded in Thumb mode


Что-нибудь сделать можно?

P. S. это не на последнем "свежаке", но такой сообщение было и на какой-то версии "свежака", просто забыл написать.
Go to the top of the page
 
+Quote Post
Genadi Zawidowsk...
сообщение Apr 4 2014, 06:54
Сообщение #943


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

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



У sam7 обработчики прерываний только в ARM режиме.
а без смешивания thumb и arm может даже немного компактнее получиться, если от interoperability отказаться в ключах.
а LTO здорово помогало... Не забываете линкеру ключи передать? Может, тогда и влезет?

Сообщение отредактировал Genadi Zawidowski - Apr 4 2014, 07:06
Go to the top of the page
 
+Quote Post
Terminator
сообщение Apr 4 2014, 07:34
Сообщение #944


Местный
***

Группа: Участник
Сообщений: 209
Регистрация: 7-12-04
Из: Томск
Пользователь №: 1 382



Выключил thumb. Пришлось пропатчить макросы freertos (возникла ошибка Error: invalid literal constant: pool needs to be closer, патч на сайте).
Результат получился интересный:
Код
.../arm-none-eabi/bin/ld: cpu.elf section `.text' will not fit in region `MAINPROG'
.../arm-none-eabi/bin/ld: region `MAINPROG' overflowed by 427461 bytes


wacko.gif

Для смеха поправил скрипт линкера, компилилось нормально, только размер в 4-ре раза больше чем без lto. Проверить на работоспособность не могу, в контроллере всего 256к флеша biggrin.gif

Сообщение отредактировал Terminator - Apr 4 2014, 07:44
Go to the top of the page
 
+Quote Post
Genadi Zawidowsk...
сообщение Apr 4 2014, 09:21
Сообщение #945


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

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



-Os -flto должны идти и линкеру. Я говорил не про убирание -flto, а про убирание -mthumb-interwork
Go to the top of the page
 
+Quote Post

85 страниц V  « < 61 62 63 64 65 > » 
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 5th July 2025 - 18:33
Рейтинг@Mail.ru


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