Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Пытаюсь подключить GCC for ARM к Code Blocks IDE, нужен пинок в правильном направлении 
:(
    Опции темы
Курсант
Дата 2.6.2014, 19:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 338
Регистрация: 21.2.2009
Где: Балашиха или Воро неж

Репутация: нет
Всего: 4



Здравствуйте!

Пытаюсь разобраться с компиляторами для ARM из коллекции GCC. А именно, не могу понять, для чего мне нужен MinGW (minimalistic gnu for windows). Насколько я понял, MinGW это какой-то набор утилит, имеющий довольно опосредованное отношение к самой компилляции, и я не могу понять, зачем мне эта красота на винде нужна? Если я правильно понимаю, компилятор, линковщик и другие нужные мне штуки - это в любом случае утилиты, скомпилированные под Windows. Скачанный MinGW отпугнул меня какими-то непонятными пунктами в опциях, необходимостью что-то "собирать аналогично сборке в Linux" и прочими совершенно излишними танцами с бубном. Скажите, можно ли тупо скачать нужные мне утилиты (компилятор, линковщик, make-файл и что там ещё бывает, я не знаю) архивом, распаковать их в поддиректорию Code Blocks, прописать пути к ним в настройках IDE и пользоваться? Когда-то давно с GCC для Windows у меня такое прокатило (использовал компилятор в своей программе для перекомпиляции dll во время работы программы), а вот с ARM не въеду, да и забыл всё...

Спасибо за внимание, сильно не бейте если что smile
PM ICQ Skype   Вверх
bsa
Дата 4.6.2014, 14:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 4
Всего: 196



Курсант, причем тут GCC for ARM? Mingw - это GCC for Win32/64. Просто кроме самого компилятора есть еще ряд утилит, библиотек и файлов, без который ты ничего не скомпилируешь. В частности, нужна стандартная библиотека С, утилиты для работы с исполняемыми файлами (в т.ч. и линкер), программа make (не будешь же ты вызывать компилятор и утилиты каждый раз вручную или из батника)...
Зачем для GCC for ARM понадобился mingw мне вообще не понятно. Скорее всего нужен только make и стандартные программы типа cp, mv, grep и пр., но это уже Msys... 
Если ты собрался собирать кросскомпилятор GCC сам, то очень тебе сочувствую. С твоим уровнем знаний компилятор ты сможешь собрать примерно через месяц (если заниматься этим по 40 часов в неделю), не раньше. А вот чтобы заставить его работать, может уйти еще один месяц. Так что, подумай, может стоит взять готовый, например отсюда: http://gnutoolchains.com/download/ (выбирай arm-elf)
Короче, уточни в документации, что же все-таки тебе нужно от mingw и какое он отношение имеет к тулкиту для arm.
PM   Вверх
Курсант
Дата 5.6.2014, 12:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 338
Регистрация: 21.2.2009
Где: Балашиха или Воро неж

Репутация: нет
Всего: 4



Цитата(bsa @  4.6.2014,  14:49 Найти цитируемый пост)
Если ты собрался собирать кросскомпилятор GCC сам, то очень тебе сочувствую. С твоим уровнем знаний компилятор ты сможешь собрать примерно через месяц (если заниматься этим по 40 часов в неделю), не раньше.


Дело в том, что я пытался установить GCC for ARM по одной статье, а в статье как раз было описано, как собрать GCC for ARM с помощью MinGW. Собственно, в этом и заключался вопрос, зачем мне MinGW. Я уже скачал какой-то GNU tools for AVR, на MSYS пока решил забить, для начала позапускаю компилятор, линковщик и др. утилиты вручную, через cmd.exe, чтобы лучше разобраться в происходящем smile Простейший исходник вроде бы скомпилился и слинковался в elf-файл...

З.Ы. Если честно, вместо make.exe из состава MSYS я решил со временем свой make.exe написать... ИМХО, мне проще на C++ написать сканирование директории на предмет исходников с компиляцией и линковкой (т.е. с вызовами утилит из GCC for ARM) всего и вся, что попадётся под руку, нежели разбираться с устройством makefile-ов. Конечно, автоматизация компиляции с помощью make.exe - отличная идея, но меня бесит реализация... ИМХО, делать под винду порт линуксовых (или каких там) утилит для того, чтобы работал make.exe - это как-то неоптимально... Костыли какие-то...  Пока не поздно - отговорите меня пожалуйста smile

Это сообщение отредактировал(а) Курсант - 5.6.2014, 12:34
PM ICQ Skype   Вверх
bsa
Дата 6.6.2014, 18:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 4
Всего: 196



Цитата(Курсант @  5.6.2014,  13:33 Найти цитируемый пост)
GCC for ARM
Цитата(Курсант @  5.6.2014,  13:33 Найти цитируемый пост)
GNU tools for AVR
AVR - это несколько другая архитектура. Я тебе же кинул ссылку, где можно загрузить готовый toolchain для ARM.
Цитата(Курсант @  5.6.2014,  13:33 Найти цитируемый пост)
Костыли какие-то...  Пока не поздно - отговорите меня пожалуйста
Ты можешь установить Visual Studio и научиться пользоваться nmake. Но mingw значительно меньше. А потом, для работы make не нужны все утилиты. Он работает хорошо и без них. Просто многие проги позволяют писать сложные обработчики файлов без программирования на С/С++. Если тебе не нужна какая-либо обработка, то проблем не будет с голым make. Поищи makefile от winavr, там немного доработать и будет собирать под ARM.

PM   Вверх
Курсант
Дата 9.6.2014, 10:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 338
Регистрация: 21.2.2009
Где: Балашиха или Воро неж

Репутация: нет
Всего: 4



Спасибо smile Методом научного тыка таки получилось прикрутить arm-elf-gcc к Code::Blocks IDE, что получилось пока точно не понял, но файл прошивки из проекта-примера я таки получил... Правда есть один нюанс - слишком большой получился файл. То есть, после компиляции и линковки получается файл с расширением .exe, размером 441 килобайт, потом я вызываю arm-elf-objcopy для переформатирования, и получаю прошивку размером 155 килобайт... В ПЗУ контроллера эта штука не помещается - там всего 128 кб. У коллеги, к примеру, после компиляции и линковки получается elf-файл размером 1,5 Мб, а после преобразования elf-bin получается 32 кбайт. Ну да это уже нюансы, прорвусь smile Спасибо за помощь! smile
PM ICQ Skype   Вверх
bsa
Дата 9.6.2014, 14:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 4
Всего: 196



возможно, у тебя оптимизация отключена (для контроллеров нужно использовать -Os), включен не тот набор инструкций (-marm вместо -mthumb), создается отладочная информация (добавь -g0), линкуются лишние библиотеки.
PM   Вверх
Курсант
Дата 10.6.2014, 07:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 338
Регистрация: 21.2.2009
Где: Балашиха или Воро неж

Репутация: нет
Всего: 4



Спасибо, отладочную информацию убрал, для elf-файла получилось 104 кб, для bin - 45 кб smile Оказывается, в настройках Code::Blocks было Target = Debug, и при вызове компилятора автоматически добавлялся флаг -g.
PM ICQ Skype   Вверх
LeonidPr
Дата 10.6.2014, 09:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 220
Регистрация: 17.2.2012
Где: г. Чебоксары

Репутация: нет
Всего: 1



Еще добавлю, что можете взять готовые сборки и не париться со сборкой своего тулчейна. Там ведь не только компилятор, а еще и GLIBC (или всякие аналоги типа NEWLIB) надо, в общем ИМХО конечно, но гемор еще тот.
Я пользовался этим: Sourcery CodeBench Lite, бесплатный тулчейн от Mentor Graphics, под CortexM3 и ARM9 все нормально собирает (под другие ARMы то же может, просто я не пробовал), правда некоторые товарищи утверждают что генерируемый GCC код далек от идеала, но это потенциально холиварная тема.
А с MinGW это да, вы несколько не в ту степь пошли, это не для ARM.
P.S. Кстати этот тулчейн к Code::Blocks прикручивается, можно юзать.
--------------------
pkunzip.zip
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | GNU toolchain | Следующая тема »


 




[ Время генерации скрипта: 0.1279 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.