Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: GCC for ARM 64-bit
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Cредства разработки для МК > GNU/OpenSource средства разработки
Tarbal
Думал, что легко найду 64 битный кросс компилятор для АРМ, но не тут-то было. Кто-нибудь имел дело с подобным? Как бы строить самому не пришлось sad.gif
ataradov
Официальная сборка - https://releases.linaro.org/14.11/component...chain/binaries/
viakon
http://electronix.ru/forum/index.php?showt...&start=1155
В этой теме как раз 64-бит, по просьбе KLEN может под windows сделать.
ataradov
QUOTE (viakon @ Jul 7 2016, 21:31) *
В этой теме как раз 64-бит, по просьбе KLEN может под windows сделать.
Но зачем? Почему не использовать сборки, официально созданные и поддерживаемые создателями ядра?

Плюс, насколько я понимаю речь идет о AArch64, про который в той теме ничего нет (тут могу ошибаться, быстро просмотрел).

И если нужно для МК, то опять-же официальные релизы лучше брать тут https://launchpad.net/gcc-arm-embedded
nanorobot
Цитата(ataradov @ Jul 8 2016, 07:32) *



У меня закончилось с такой ошибкой

Код
home/rain/gcc-linaro-4.9-2014.11-x86_64_arm-eabi/bin/../lib/gcc/arm-none-eabi/4.9.3/../../../../arm-none-eabi/bin/ld: error: no memory region specified for loadable section `.note.gnu.build-id'


этот же самый проект с компилятором 5.3 от ланчпада - ошибок нет...
Tarbal
Спасибо ataradov, nanorobot и viakon.
ataradov
QUOTE (nanorobot @ Jul 8 2016, 03:57) *
этот же самый проект с компилятором 5.3 от ланчпада - ошибок нет...
Я по историческим причинам использую ланчпад для МК и линаро для линукса.

Но еще одно преимущество использования таких сборок - это то, что все ошибки уже были кем-то замечены.

В данном случае компилятор собран с опцией --enable-linker-build-id. Я не уточнял, но опция как-то помогает с отладочной информацией.

Для починки компиляции нужно либо выключить это через опцию линкера " --build-id=none".

Или добавить такую секцию в скрипт:
QUOTE
.note.gnu.build-id :
{
. = ALIGN(4);
PROVIDE( _note = .);
*(.note.gnu.build-id)
. = ALIGN(4);
*(.note.gnu.build-id.*);
. = ALIGN(4);
PROVIDE( _enote = .);
} > flash
Не уверен, что ей действительно нужно находиться во флеше, но это нужно читать, что именно делает --enable-linker-build-id.
ataradov
QUOTE (ataradov @ Jul 8 2016, 08:56) *
Не уверен, что ей действительно нужно находиться во флеше, но это нужно читать, что именно делает --enable-linker-build-id.


Почитал. Опция добавляет уникальный хеш (SHA1 или MD5) к бинарникам. Может быть полезно в некоторых случаях, в остальных
CODE
LDFLAGS += -Wl,--build-id=none

alx2
Цитата(Tarbal @ Jul 8 2016, 07:07) *
Как бы строить самому не пришлось sad.gif

Что плохого в самостоятельном строительстве?
Tarbal
Цитата(alx2 @ Jul 11 2016, 13:42) *
Что плохого в самостоятельном строительстве?


Во-первых и так много чего делать надо.
Во-вторых когда что-то делаешь в первый раз и не знаешь на что надо обратить внимание -- обращаешь внимание на все, что замедляет скорость работы.
В-третьих появляется еще один элемент в котором возможны ошибки, неподходящие опции и т.д.. Я например до конца не осознаю чем bare metal и linux отличаются. Нет. То что везде написано я много раз читал, и где и как использовать знаю, а как строить тот или иной компилятор мне надо исследование проводить.
В-четвертых если делать правильно, то надо много чего почитать по теме, а времени на это нет.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.