ARM Linux toolchain

S

Sobakava

Guest
Labas,

Aš su ARM9 lenta su AT91RM9200 ir ARM-Linux dirbdami joje.Jis batai su Uboot naudojant RS232 Ethernet.

Noriu kurti programinę įrangą šios platformos ..Paprasta "Hello world" taikymas pirmą ...

Aš neturiu patirties linux.Aš ką tik įdiegta Cygwin mano Win2K kompiuterio.

Gali kas nors paaiškinti man, kaip sukurti savo toolchain šią konfigūraciją?http://ecos.sourceware.org/build-toolchain.html
Aš bandžiau šį būdą.Bet aš įtariamasis aš kažką neteisingai.

mkdir-p / tmp / sukurti / binutils
cd / tmp / sukurti / binutils
/ src/binutils-2.13.1/configure - target = TARGET \
- prefix = / gnutools-v 2> & 1 | tee configure.out

šis siuntos suteikia "nepavyko rasti konfigūruoti" Manau tai daryti neteisingas katalogas.

anyway, man reikia aiškios ir geros paaiškinimą iš pastato toolchain į kompiliuoti savo pirmąją "Hello world" paraišką.

Nuoširdžiausi linkėjimai

 
Pabandykite tai atlikti pasirengę toolchain ...

http://www.macraigor.com/full_gnu.htm

 
Statybos GNU:
http://billgatliff.com/articles/gnu/gnu-arm7t.html/x56.html
http://billgatliff.com/embedded-gnu.shtml
http://billgatliff.com/articles.shtml

 
Labas,

Įdiegiau įrankiai http://www.gnuarm.com į Cygwin pagal Win2K.

Tada aš paprastas bandymas kodas:

int main () (

printf ( "Hello World");
)ir sudarė su:

arm-elf-gcc-mcpu = arm920t-mthumb-O2-g-c hello_world.ctuomet susijęs su:

arm-elf-gcc-mcpu = arm920t-mthumb-o hello_world hello_world.o-lc

nėra klaidos ar įspėjimo pranešimų rodomas.
taip, dabar aš susijęs hello_world failą.Tai 216KB.
Ar jis normalus?(objekto kodas 2100bytes)

yra kompiliatorių ir Linker galimybes savo vykdomąjį teisingas?(Mano procesorius yra Atmel ARM9 AT91RM9200 ir ARM-Linux 2.95.3 darbo jai)

Jeigu aš nukopijuoti šį vykdomąjį į mano įvaizdį ramdisk, kuri mano laive krovinius paleidus, gali paleisti jį po paleidimo?

Linkėjimai

 
http://billgatliff.com/articles/gnu/gnu-arm7t.html/x341.html

dabar gali imituoti mano kodas gdb kaip aprašyta čia ...ji veikia.Ir aš galiu pamatyti tai ELF executable naudojantis "file" komanda Cygwin.

taip, ji darbą mano tikslinę laive?

 
Jūs turėsite patikrinti Linker failas yra teisingai nustatytas jūsų tikslą, pvz.ram / rom atminties adresus.
Jūs taip pat turėsite savo Paleistis failą kaip numatytasis vienas greičiausiai neveiks jūsų tikslą.

Pradinių bandymų padaryti viską, barana.

Naudojant printf pridės gana kodą, kurį galite naudoti iprintf, kuri yra sveikasis skaičius tik printf (ne plūduriuojančius paramą), siekiant sumažinti kodas dydžio.
Taip pat naudojant UClibc vietoj newlib gali padėti kodas mažinimo.

Taip pat savo pirmojo bandymo Norėčiau nenaudoja nykščio būdas ar optimizacijos (O0 vietoj-O2).

Linkėjimai
NTFreak

 
Dabar aš neturiu linux įdiegta čia dar.ir mano įkėliklis įkelia įvaizdį ramdisk iš kompiuterio.
Matau turinį šios įvaizdį ramdisk pagal langų naudojant Explore2fs naudingumas.bet aš negaliu pridėti failą prie jo (explore2fs tik skaityti priemonė)

ir:
mkdir r
mount-o loop ramdisk / r
---> pridėti failus
odmontować

neveikia pagal Cygwin.

Kaip aš galiu papildyti savo failus į šį įvaizdį ramdisk išbandyti?

 
pagaliau aš galėsiu perduoti savo hello_world failą tikslą.
I'm using HyperTerminal su mano ARM9 laive.

bet, deja, kai aš stengiuosi atlikti hello_world failą, jis sako: bash: hello_world: command not found.

net jei aš galiu pamatyti failo su "dir" komanda.

atrodo linux (rankos) nemato failą kaip galiojantį vykdomąjį.

pagal Cygwin:

byla hello_world <
hello_world: ELF 32-bit LSB executable, ARM, versija 1 (ARM), Statiškai susijęs,
o ne atėmė.Aš kopijuoti vykdomąjį (mount) mano ranką-linux archyvas Cygwin katalogą pamatyti skirtumą:

byla kalno <
kalno: ELF 32-bit LSB executable, ARM, versija 1 (ARM), GNU / Linux 2.0.0, dyn
amically susiję (naudoja bendr libs), draudžiantitaip, kalnai komandų vykdomąjį darbus, bet mano hello_world vykdomąjį neveikia.Ką darome neteisingai?

ntfreak, jūs sakė:
"Jūs turėsite patikrinti Linker failas yra teisingai nustatytas jūsų tikslą, pvz. Ram / rom atminties adresus.
Jūs taip pat turėsite savo Paleistis failą kaip numatytasis vienas greičiausiai neveiks jūsų tikslą.
Pradinių bandymų padaryti viską, barana."

kaip tai padaryti?

linkėjimai

 
Kas leidimą turi "hello_world"?
Ar "paleidžiamųjų" bitai?

Jei bandote atlikti per visą kelią, pavyzdžiui, "/ usr / bin / hello-pasaulis" ... ką jis sakytų?"Permission denied"?

 
kaip nustatyti failo vykdomąjį bitų, jei jis nėra nustatytas?

 
Ui ... besivystančiose Linux ir clue apie jos naudojimą?(o;Kodas:

chmod x filename
 
nagi ...
Esu naujas su linux ir arm-linux, todėl klausia mano klausimus čia.tikriausiai jie kvailas klausimus specialistams, bet padėti I'm getting šiame forume tikrai gerina savo įgūdžius ir sutaupyti savo laiką ...todėl šis forumas yra ...

Žinoma, aš turiu išmokti linux komandos ir duomenys kuo greičiau, bet dabar esu šiek tiek susijaudinęs apie rodyti savo pirmąją paraišką dėl arm-linux.I'm sorry, jei jus ..

Bandžiau nustatyti hello_world's exe naudojant "chmod x hello_world", bet kaip matau, nieko keisti ...Aš naudoju "ls-al" į sąrašą failus ...Aš tai daryti pagal Cygwin ...turbūt aš negaliu nustatytą bitų vykdymo pagal Cygwin, I'll try to nustatyti jai ranką-linux į tikslą laive ...bet ...kad "ant kalno" bylą, tai bitų vykdymo, taip pat nėra nustatyta, bet ji dirba ...

turbūt aš problemas susieti.Nežinau, ar aš turiu keletą papildomų parametrų įvažiavimo punktas vykdomąjį
tt ..

linkėjimai

 
Ar galima dėti čia, kad "ls-l" produkciją?

Ehhm .. jūs bandote dabar visiškai kelią, pavyzdžiui, "/ usr / bin / hello_world"?

Aš manau visi reikalingi bibliotekos yra vieta jūsų tikslinė sistema, nes kitos programos gali juos rasti ...

 
Jūs bandote paleisti bin FLE kai prisijungęs kaip root vartotojas?

 
Cygwin pagal Win2K į FAT32:
$ Ls-al <

viso 15645

-rw-r - r - 1 Administ Nėra 216193 Rgp 24 10:27 hello_world

-rw-r - r - 1 Administ Nėra 53 Rgp 24 10:20 hello_world.c

-rw-r - r - 1 Administ Nėra 2100 Rgp 24 10:27 hello_world.o

-rw-r - r - 1 Administ Nėra 59.692 Rgp 25 11:06 kalnochmod x hello_world <$ Ls-al <

viso 15645

-rw-r - r - 1 Administ Nėra 216193 Rgp 24 10:27 hello_world

-rw-r - r - 1 Administ Nėra 53 Rgp 24 10:20 hello_world.c

-rw-r - r - 1 Administ Nėra 2100 Rgp 24 10:27 hello_world.o

-rw-r - r - 1 Administ Nėra 59.692 Rgp 25 11:06 kalno$ Failas kalno <

kalno: ELF 32-bit LSB executable, ARM, versija 1 (ARM), GNU / Linux 2.0.0, dinamiškai susietos (naudoja bendr libs), draudžianti$ Failas hello_world <

hello_world: ELF 32-bit LSB executable, ARM, versija 1 (ARM), Statiškai susijęs, o ne atėmėAš taip pat po ką gi staiga aš matau, kai bandau paleisti hello_world naudoti visas kelias į tikslą greičiau.
 
dabar pakeistas vėliavas hello_world Linux tiksliniame laive.

tai-rwxrwxrwx

kai bandau paleisti / usr / bin / hello_world
ji sako:
Segmentation fault

Kas blogai?

 
Citata:

$ Failas hello_world <

hello_world: ELF 32-bit LSB executable, ARM, versija 1 (ARM), Statiškai susijęs, o ne atėmė
 
int main () (

printf ( "Hello World");
)ir sudarė su:

arm-elf-gcc-mcpu = arm920t-mthumb-O2-g-c hello_world.ctuomet susijęs su:

arm-elf-gcc-mcpu = arm920t-mthumb-o hello_world hello_world.o-lctai buvo mano surinkti ir susieti.

Dabar aš pašalinti printf () ir tik naudojamos ir tuščias () linijos ir surinkti su tuo pačiu būdu,
dabar aš pridėti jį įvaizdį ramdisk.(mano ---, turi būti lengviau ne-linux pavaduojančius pridėti šį failą!)

 
Don't know much about ARM (dar; o) ...

Citata:

-mcpu = arm920t-mthumb
 

Welcome to EDABoard.com

Sponsor

Back
Top