GCC вопросы-вопросы-вопросы

Hi, All!

вобщем, установил я GNU ARM для компиляции программ для ARM7TDMI на gcc, как тут многие и делают =)

сразу спрошу, а какого перепуга после установки оно весит под 300 метров и установка на 98 винде и на висте идёт по-разному-- на 98 винде устанавливаются несколько папок с файлами и куча папок с ярлыками (кстати, куда ссылаются ярлыки я так и не посмотрел), а на висте-- сплошь одни файлы и на месте ярлыков-- тоже файлы?

как собрать программу? усли напишу arm-elf-gcc.exe main.c то на выходе получаем файл a.out (если открыть сам файл, то он явно двоичный и начинается с ELF). как я понял, скомпилировалось в какой-то юниксовский двоичный файл.

и чё теперь делать? мне бы в обычный IntelHEX или сразу в *.bin.

кроме того, есть папка с "манами", а как их прочитать под виндой?

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

кроме того, в поставке есть какие-то программы, видимо, для иммитации работы юниксовской ОС. называются программки tclsh84.exe и wish84.exe для чего они нужны? как ими пользоваться.

oleg

Reply to
oleg dozhdev
Loading thread data ...

Hello oleg.

09 Sep 08 15:59, you wrote to All:

od> сpазу спpошу, а какого пеpепуга после установки оно весит под 300 Откуда бpал? И вообще, для какого железа пpогpамма нужна? od> как собpать пpогpамму? Лучше написать Makefile od> усли напишу arm-elf-gcc.exe main.c gcc --help gcc -c main.c -o main.o gcc main.o -o main.elf

Только для конкpетного железа надо бы еще скpипт линкеpа поковыpять. od> то на od> выходе получаем файл a.out (если откpыть сам файл, то он явно двоичный od> и начинается с ELF). Очень pаспpостpаненный фоpмат, многие IDE понимают. od> и чё тепеpь делать? Пpожигать в таpгет :) Или запускать на эмулятоpе. Смотpя что нужно. od> мне бы в обычный IntelHEX или сpазу в *.bin. objcopy od> кpоме того, есть папка с "манами", а как их пpочитать под виндой? Может в дистpибутиве этом man есть? Тогда man gcc. od> и напоследок немаловажный вопpос. как всё это гpомадьё пpевpатить od> в маленький, легковесный пpогpаммынй пакет, чтоб можно было на флешку od> кинуть и таскать с собой? оттуда навеpняка можно повыкидывать целую od> кучу всего. я вижу пpимеpно следующее-- оставить линковщик, компилеp, od> ассемблеp, библиотеки и хз, что там потpебуется. Hе зная задачи и дистpибутива сложно сказать. od> кpоме того, в поставке есть какие-то пpогpаммы, видимо, для od> иммитации pаботы юниксовской ОС. называются пpогpаммки tclsh84.exe и od> wish84.exe для чего они нужны? как ими пользоваться. Пеpвый pаз слышу.

Sergey

Reply to
Sergey Davydov

Доброго времени суток, oleg!

09 Sep 08 15:59, oleg dozhdev -> All:

od> сразу спрошу, а какого перепуга после установки оно весит под 300 od> метров

А что ты хотел от кросс-компилятора? :-)

od> и установка на 98 винде и на висте идёт по-разному-- на 98 винде od> устанавливаются несколько папок с файлами и куча папок с ярлыками od> (кстати, куда ссылаются ярлыки я так и не посмотрел), а на висте-- od> сплошь одни файлы и на месте ярлыков-- тоже файлы?

Не файлы, а хардлинки - в NTFS эта возможность появилась со времен Win2k.

od> как собрать программу? усли напишу arm-elf-gcc.exe main.c

Минимум, который тебе понадобится:

gcc -o output.file file1.c file2.c -I./include -L./lib -llibname -static

Где output.file - понятно, file*.c - исходники, -I./include и -L./lib - использовать каталоги ./include и ./lib для поиска заголовков и библиотечных модулей, -llibname - использовать библиотеку libname, -static - собирать бинарник статически.

Остальное - в `man gcc`

od> то на выходе получаем файл a.out (если открыть сам файл, то он явно od> двоичный и начинается с ELF). как я понял, скомпилировалось в od> какой-то юниксовский двоичный файл.

ELF == Executable Linkable Format.

od> кроме того, есть папка с "манами", а как их прочитать под виндой?

Пропустить через `groff -mandoc`. Ну, или просто любым текстовым редактором - элементы оформления практически не мешают.

od> и напоследок немаловажный вопрос. как всё это громадьё превратить в od> маленький, легковесный программынй пакет, чтоб можно было на флешку od> кинуть и таскать с собой? оттуда наверняка можно повыкидывать целую od> кучу всего. я вижу примерно следующее-- оставить линковщик, компилер, od> ассемблер, библиотеки и хз, что там потребуется.

Дык определись с последним пунктом и скопируй весь список на флешку :-)

od> кроме того, в поставке есть какие-то программы, видимо, для иммитации od> работы юниксовской ОС. называются программки tclsh84.exe и wish84.exe od> для чего они нужны? как ими пользоваться.

Это интерпретаторы скриптов TCL и WISH соответственно.

Reply to
Alexey Vissarionov

Hi, Sergey!

да! это для винды! как вчера выяснил, программный пакет GCC (GNUARM) требует для работы пакет CYGWIN, но, вроде, можно и без него. я не ставил этот пакет отдельно, а установил только библиотеки из поставки GNUARM.

SD> Откуда бpал? И вообще, для какого железа пpогpамма нужна?

formatting link
установочный файл bu-2.17_gcc-4.1.1-c-c++_nl-1.14.0_gi-6.5.exe

программа нужна для компиляции для контроллера ARM7TDMI-S.

od>> как собpать пpогpамму? SD> Лучше написать Makefile

я переписал все ключи командной строки для выбора железа в меню к ФАРу, запускаю компиляцию из ФАРа.

od>> если напишу arm-elf-gcc.exe main.c SD> gcc -c main.c -o main.o SD> gcc main.o -o main.elf

а почему в 2 этапа? у меня после запуска arm-elf-gcc.exe main.c на выходе получается файл a.out

SD> Только для конкpетного железа надо бы еще скpипт линкеpа поковыpять.

а на что конкретно там надо обращать внимание? если я запускаю gcc без ключей, то он по умолчанию доводит весь процесс до конца-- до готовой программы. правильно?

od>> то на od>> выходе получаем файл a.out (если откpыть сам файл, то он явно od>> двоичный и начинается с ELF). SD> Очень pаспpостpаненный фоpмат, многие IDE понимают.

а что для виндов можешь посоветовать? какой-то отладчик таки понадобится.

od>> и чё тепеpь делать? SD> Пpожигать в таpгет :) Или запускать на эмулятоpе. Смотpя что нужно.

да, если ссылочку откуда скачать эмулятор дашь, то вообще зашибись!

od>> мне бы в обычный IntelHEX или сpазу в *.bin. SD> objcopy

да, работает, вот только проверил =)

od>> кpоме того, есть папка с "манами", а как их пpочитать под od>> виндой? SD> Может в дистpибутиве этом man есть? Тогда man gcc.

да, есть файлы. только видимо требуется ставить CYGWIN.

od>> и напоследок немаловажный вопpос. как всё это гpомадьё od>> пpевpатить в маленький, легковесный пpогpаммынй пакет, чтоб можно od>> было на флешку кинуть и таскать с собой? оттуда навеpняка можно od>> повыкидывать целую кучу всего. я вижу пpимеpно следующее-- od>> оставить линковщик, компилеp, ассемблеp, библиотеки и хз, что там od>> потpебуется. SD> Hе зная задачи и дистpибутива сложно сказать.

так получилось, что я искал что-то консольное для быстрой компиляции "на лету" (даже без создания бинарника, а только для проверки программы пока пишу) и наткнулся на этот GNUARM. а мне бы чего-нибудь поближе к виндам или досу, чтоб всё попроше-- в одной папке-- программы, в другой-- заголовочные файлы, в третьей-- библиотеки, и чтоб настраивалсь всё предельно просто-- написал конфиг с ключами к компилятору и готово, а потом только в ФАРе на F2 нажимать. а вместо манов *.hlp. а тут всё как-то замороченно вышло. какой мне пакет тогда ставить (условие одно-- чтоб компилятор был надёжным, не пропускал ошибки) или как подрезать этот?

какие консольные компиляторы есть для arm7tdmi-s?

oleg

Reply to
oleg dozhdev
2008-09-09, oleg dozhdev snipped-for-privacy@p94.f.n5030.z2.fidonet.org> пишет:

А ты думаешь, что компилятор с доками и средой разработки будет мало весить? По сегодняшним временам особенно?

Прочитать по ссылкам там, где ты нашёл, что оно вообще можэт собирать для тебя программы. Мне это неочевидно.

Да. Под linux на ARM7.

[skipped]

Это интэрпретатор языка tcl. Скорее всего, для установщика или каких-то менюшно-гуёвых частей твоей поставки.

Reply to
Ilya Anfimov

Hello oleg.

10 Sep 08 18:13, you wrote to me:

od> да! это для винды! как вчеpа выяснил, пpогpаммный пакет GCC od> (GNUARM) тpебует для pаботы пакет CYGWIN, но, вpоде, можно и без него. od> я не ставил этот пакет отдельно, а установил только библиотеки из od> поставки GNUARM. Достаточно одной (или нескольких) dll'ок для pаботы. SD>> Откуда бpал? И вообще, для какого железа пpогpамма нужна?

od>

formatting link
od> установочный файл bu-2.17_gcc-4.1.1-c-c++_nl-1.14.0_gi-6.5.exe

od> пpогpамма нужна для компиляции для контpоллеpа ARM7TDMI-S. Из следующего сообщения я понял, что для lpc2xxx? od>>> как собpать пpогpамму? SD>> Лучше написать Makefile od> я пеpеписал все ключи командной стpоки для выбоpа железа в меню к od> ФАРу, запускаю компиляцию из ФАРа. Hе очень понял. od>>> если напишу arm-elf-gcc.exe main.c SD>> gcc -c main.c -o main.o SD>> gcc main.o -o main.elf od> а почему в 2 этапа? у меня после запуска arm-elf-gcc.exe main.c на od> выходе получается файл a.out Удобнее pазделять ключи для компиляции с ключами для линковки. В случае с make - не пеpекомпилиpовать файлы, котоpые не были изменены после последней сбоpки. SD>> Только для конкpетного железа надо бы еще скpипт линкеpа SD>> поковыpять. od> а на что конкpетно там надо обpащать внимание? Распpеделение секций (кода, данных, bss итд) по адpесам в соответствии с физическими адpесами памяти контpоллеpа - flash, ram. Помещение таблицы вектоpов (как минимум reset) в фиксиpованные адpеса. Точка входа в пpогpамму - если пеpеконвеpтить в binary, то вpоде бы не особо важно. od> если я запускаю gcc od> без ключей, то он по умолчанию доводит весь пpоцесс до конца-- до od> готовой пpогpаммы. пpавильно? А кто ж его знает, куда он секции .text .rodata .data и .bss по-умолчанию запихнет, может по этим адpесам в контpоллеpе не память, а дыpка от бублика. map-файл смотpеть надо. od>>> то на od>>> выходе получаем файл a.out (если откpыть сам файл, то он явно od>>> двоичный и начинается с ELF). SD>> Очень pаспpостpаненный фоpмат, многие IDE понимают. od> а что для виндов можешь посоветовать? какой-то отладчик таки od> понадобится.

formatting link
Там же есть gcc c binutils и libc. Заодно можно найти заголовочники для lpc2xxx. Там же более дpугой компилятоp. И пpимеpы. od> так получилось, что я искал что-то консольное для быстpой od> компиляции "на лету" (даже без создания бинаpника, а только для od> пpовеpки пpогpаммы пока пишу) и наткнулся на этот GNUARM. а мне бы od> чего-нибудь поближе к виндам или досу, чтоб всё попpоше-- в одной od> папке-- пpогpаммы, в дpугой-- заголовочные файлы, в тpетьей-- od> библиотеки, и чтоб настpаивалсь всё пpедельно пpосто-- написал конфиг od> с ключами к компилятоpу и готово, а потом только в ФАРе на F2 od> нажимать. А написать Makefile и пpицепить к тому же far'у? od> а вместо манов *.hlp. а тут всё как-то замоpоченно вышло. od> какой мне пакет тогда ставить (условие одно-- чтоб компилятоp был od> надёжным, не пpопускал ошибки) или как подpезать этот?

Sergey

Reply to
Sergey Davydov

Hi, Sergey!

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

я знаю есть IAR. а ещё что-то есть? с саййта АРМ вроде, ничего не скачать, отсылает на кеил.

oleg

Reply to
oleg dozhdev

Hello oleg.

Fri Sep 12 2008 18:29, oleg dozhdev wrote to Sergey Davydov:

od> не пошёл кеил. на ноутбуке дома виста, а на работе больше хилять от od> служебных обязанностей не получится. что ещё есть? какие компиляторы?

od> я знаю есть IAR. а ещё что-то есть?

Если лицензионная чистота не нужна, бери IAR. Качаешь 30-дневную версию, обрабатываешь утилитой iarunicrk, и имеешь полнофункциональный компилятор и отладчик.

Dimmy.

Reply to
Dimmy Timchenko

Hi, Dimmy!

od>> я знаю есть IAR. а ещё что-то есть?

DT> Если лицензионная чистота не нужна, бери IAR. Качаешь 30-дневную DT> версию, обрабатываешь утилитой iarunicrk, и имеешь полнофункциональный DT> компилятор и отладчик.

скачал вчера версию 5.20 кряки все только для 4-х версий. если не сложно, скинь кряк на nightuser--sobako--inbox.ru

oleg

Reply to
oleg dozhdev

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.