2012-01-12 2 views
1

простой вопрос о Arm и Linux:ARM Embedded Linux ToolChain

Я только построил рычажного NONE-EABI набор инструментов на моей Ubuntu компилировать Ядро Linux для ARM. Эта инструментальная цепочка также способна компилировать исполняемые файлы в среде linux, работающей на моей ARM, или мне нужна вторая инструментальная цепочка?

ах, второй вопрос приходит мне на ум. инструментальную цепочку, которую можно создать с помощью buildroot; используется ли она для компиляции Linux для ARM или для компиляции двоичных файлов для системы Linux, работающей на ARM?

может кто-нибудь объяснить это немного более подробно для меня ?!

+0

Ваш вопрос о различии между кросс-компилятором и прямым компилятором? –

+0

Нет, вопрос в том, что инструментальная цепочка используется для создания linux для ARM и инструментальной цепочки, используемой для создания приложений, которые должны запускаться во встроенной Linux. Или нет необходимости иметь 2 разных инструментальных цепочки, и можно использовать одну инструментальную цепочку для названных случаев использования? Я читал, что важно, если toolchain будет построен с помощью newlib или μClibc в зависимости от вашей цели. – binaryguy

+0

Такая же кросс-цепочка должна быть в состоянии скомпилировать ядро ​​Linux и ваши встроенные приложения (по крайней мере, на C или C++). –

ответ

2

Если у вас есть toolchain на месте, вы можете скомпилировать любую программу для среды Linux/ARM. Вам нужна только одна инструментальная цепочка. Я не вижу разницы между Linux и любой другой программой.

+0

вы так думаете? Я читал, что инструментальная цепочка, использующая newlib, не предназначена для систем Linux. Для этой цели следует использовать μClibc вместо этого ... – binaryguy

+0

Ну, не эксперт по этому вопросу, но ваша инструментальная цепочка должна использовать ту же библиотеку c, которая будет развернута на устройстве ARM/Linux. Вы сами создаете всю систему или используете дистрибутив Linux? – kingdaemon

+0

Я собираюсь создать Linux самостоятельно, чтобы работать на устройстве ARM. – binaryguy

0

Позвольте ответить на вопрос с вопросом. компилятор gcc или gnu, который вы можете использовать для компиляции ядра для компьютера, на котором вы используете linux. Можете ли вы использовать тот же самый компилятор для компиляции прикладных программ, которые выполняются на этом компьютере, или вам нужен второй компилятор gcc для приложений?

Если он может построить ядро ​​linux и это ядро ​​работает, то он, скорее всего, может создавать приложения, которые могут работать на этом ядре. Я уверен, что есть исключения, которые люди могут придумать. Но на практике, в частности arm-none-linux-eabi, мы каждый день используем его для создания рабочей Linux-системы для рук и для компиляции программ, которые работают на этой линейной Linux-системе. Тот же компилятор/toolchain.

+0

, но я использую arm-none-eabi-gcc not arm-none-linux-eabi. и, как было сказано выше, я читал, что newlib, который я использовал для создания инструментальной цепочки arm-none-eabi-gcc, не предназначен для ОС. Вместо этого следует использовать μClibc. Я здесь совершенно не прав? – binaryguy

+0

вы можете построить с ним Linux? Если это так, я бы предположил, что вы могли бы и должны были бы создать приложения Linux с помощью одного и того же инструмента. что происходит, когда вы пытались сделать все это, работали или терпели неудачу? Почему бы не использовать arm-none-linux-eabi? –

0

Да, это возможно! Я создал среду Ubuntu с инструментальной привязкой кросс-компилятора arm-2011.09, и из этой среды обычно создаются оба приложения Arm и компоненты ядра Linux, необходимые для Buildroot. Все отлично работают!

Я построю эти среды с помощью Docker, что делает среду разработки очень переносимой между работой, дома и в других местах. Если Докер вокруг, я в бизнесе.

+0

Это не дает ответа на вопрос. Чтобы критиковать или запросить разъяснения у автора, оставьте комментарий ниже своего сообщения - вы всегда можете прокомментировать свои собственные сообщения, и как только у вас будет достаточно [репутации] (http://stackoverflow.com/help/whats-reputation), вы будете быть в состоянии [прокомментировать любое сообщение] (http://stackoverflow.com/help/privileges/comment). –

+0

@ Тома Томс, безусловно, отвечает на первый из двух его вопросов. Он спросил, может ли инструментарий, используемый для компиляции ядра linux, также скомпилировать другие программы для работы в его ручном режиме. Как я и сказал, я так и могу. – kelflanagan

+0

Да, я читал, что немного скорей сожалею. Вы должны определенно перефразировать его немного (то есть: Да, возможно. Я создал [...]), чтобы дать понять. –

Смежные вопросы