Difference between revisions of "Arm-linux-gnueabi-gcc un qemu-arm"

From DiLab
Jump to: navigation, search
(Ubuntu)
 
(16 intermediate revisions by the same user not shown)
Line 1: Line 1:
{{TocRight}}
Iespējams, jūs vēlaties kompilēt un testēt arm platformas programmas uz sava datora.
Iespējams, jūs vēlaties kompilēt un testēt arm platformas programmas uz sava datora.
Tad nepieciešams uzstādīt gcc un qemu priekš arm platformas.
Tad nepieciešams uzstādīt kros-kompilācijas rīkus, gdb, bibliotēkas un emulatoru qemu priekš arm platformas.


==Ubuntu==
==Instalācija uz Ubuntu==
Šis testēts uz Ubuntu 12.04.
Šis testēts uz Ubuntu 20.04.
sudo apt-get install gcc-arm-linux-gnueabi linux-libc-dev-armel-cross qemu-user


Vadzēs arī gdb-multiarch atkļūmotāju:
Uzstādam arm-linux-gnueabi-gcc un qemu-arm
sudo apt-get install gdb-multiarch


Iespējams, noderēs arī šie:
sudo apt-get install gcc-arm-linux-gnueabi qemu qemu-kvm-extras linux-libc-dev-armel-cross
sudo apt-get install build-essential binutils gcc git ddd


==Instalācija uz Debian==
Šis testēts uz Debian Wheezy.

Jums jāpieliek sekojoša apt-get repozitorija /etc/apt/sources.list failā
deb http://www.emdebian.org/debian/ stable main

Tad jūs varat installēt rīkus:

apt-get update
apt-get install linux-libc-dev-armel-cross gcc-4.4-arm-linux-gnueabi gdb-arm-linux-gnueabi

==Lietošana==
Tagad varam kompilēt programmu myprog.c arm platformai, piemēram, šādi.
Tagad varam kompilēt programmu myprog.c arm platformai, piemēram, šādi.


Line 21: Line 37:
Parametrs -L vajadzīgs, lai atrastu arm platformai piederīgās bibliotēkas
Parametrs -L vajadzīgs, lai atrastu arm platformai piederīgās bibliotēkas


==Debian==
== Versijas ==
Šis testēts uz Debian Wheezy.
apt-get install linux-libc-dev-armel-cross gcc-4.4-arm-linux-gnueabi gdb-arm-linux-gnueabi


==== Versijas ====


Ņemiet vērā, ka arm-linux-gnueabi-gcc un qemu-arm attīstās, un dažādas versijas spēj izķert vai ignorē dažādas kļūmes. Tāpēc, ja jūsu darbs iet "bez kļūdām" uz LU DF asm1 servera, tas nenozīmē ka visas kļūmes ir izķertas. Parasti jaunākas versijas spēj brīdināt par vairāk kļūdām.
Ņemiet vērā, ka arm-linux-gnueabi-gcc un qemu-arm attīstās, un dažādas versijas spēj izķert vai ignorē dažādas kļūmes. Tāpēc, ja jūsu darbs iet "bez kļūdām" uz LU DF asm1 servera, tas nenozīmē ka visas kļūmes ir izķertas. Parasti jaunākas versijas spēj brīdināt par vairāk kļūdām.


Šobrīd uz ''asm1'' servera versijas ir šādas:
Šobrīd uz ''asm1'' servera versijas ir šādas:
* arm-linux-gnueabi-gcc: gcc version 4.4.5 (Debian 4.4.5-8)
* arm-linux-gnueabi-gcc: gcc version 7.3.0 (Ubuntu/Linaro 7.3.0-27ubuntu1~18.04)
* qemu-arm: version 0.10.0
* qemu-arm: qemu-arm version 2.11.1(Debian 1:2.11+dfsg-1ubuntu7.10)


Bet, piemēram, Ubuntu 12.04 repozitorijās versijas ir šādas:
Bet, piemēram, Ubuntu repozitorijās versijas varētu būt citas.
* arm-linux-gnueabi-gcc: gcc version 4.6.3 (Ubuntu/Linaro 4.6.3-1ubuntu5)
* qemu-arm: version 1.0.50 (Debian 1.0.50-2012.03-0ubuntu2.1)

Latest revision as of 15:13, 7 November 2022

Iespējams, jūs vēlaties kompilēt un testēt arm platformas programmas uz sava datora. Tad nepieciešams uzstādīt kros-kompilācijas rīkus, gdb, bibliotēkas un emulatoru qemu priekš arm platformas.

Instalācija uz Ubuntu

Šis testēts uz Ubuntu 20.04.

sudo apt-get install gcc-arm-linux-gnueabi linux-libc-dev-armel-cross qemu-user 

Vadzēs arī gdb-multiarch atkļūmotāju:

sudo apt-get install gdb-multiarch

Iespējams, noderēs arī šie:

sudo apt-get install build-essential binutils gcc git ddd

Instalācija uz Debian

Šis testēts uz Debian Wheezy.

Jums jāpieliek sekojoša apt-get repozitorija /etc/apt/sources.list failā

deb http://www.emdebian.org/debian/ stable main

Tad jūs varat installēt rīkus:

apt-get update
apt-get install linux-libc-dev-armel-cross gcc-4.4-arm-linux-gnueabi gdb-arm-linux-gnueabi

Lietošana

Tagad varam kompilēt programmu myprog.c arm platformai, piemēram, šādi.

arm-linux-gnueabi-gcc -g -mcpu=xscale -O0 -Wall -o myprog.o -c myprog.c
arm-linux-gnueabi-gcc  -o myprog myprog.o


Tagad varam darbināt arm programmu, piemēram, myprog ar qemu-arm

qemu-arm -L /usr/arm-linux-gnueabi myprog

Parametrs -L vajadzīgs, lai atrastu arm platformai piederīgās bibliotēkas

Versijas

Ņemiet vērā, ka arm-linux-gnueabi-gcc un qemu-arm attīstās, un dažādas versijas spēj izķert vai ignorē dažādas kļūmes. Tāpēc, ja jūsu darbs iet "bez kļūdām" uz LU DF asm1 servera, tas nenozīmē ka visas kļūmes ir izķertas. Parasti jaunākas versijas spēj brīdināt par vairāk kļūdām.

Šobrīd uz asm1 servera versijas ir šādas:

  • arm-linux-gnueabi-gcc: gcc version 7.3.0 (Ubuntu/Linaro 7.3.0-27ubuntu1~18.04)
  • qemu-arm: qemu-arm version 2.11.1(Debian 1:2.11+dfsg-1ubuntu7.10)

Bet, piemēram, Ubuntu repozitorijās versijas varētu būt citas.