1

Bonjour!
Je suis actuellement en première année de génie informatique à l'université, et notre projet de session est un robot (tournant un linux sur processeur ARM). L'IDE qui nous est fourni ne fonctionne malheureusement que sous Windows, et j'aimerais pouvoir coder sur mon MacBook sous mac OS X Leopard...
Je croyais que c'était facile de compiler pour une autre plateforme que la sienne (comme ce que TIGCC fait), mais apparemment il n'en est rien. Est-ce que quelqu'un aurait quelques précisions sur la façon de réussir cela?
Je me souviens
Ad mari usque ad mare

GENERATION 23: The first time you see this, copy it into your sig on any forum and add 1 to the generation. Social experiment.

2

Si tu connais le processeur (et j'ai cru comprendre que c'était le cas), tu devrais assez facilement trouver les arguments qui vont bien pour que GCC compile ce qu'il faut, voir même directement un compilateur qui va bien... Google ne donne rien quand tu cherches "compilateur <nom du processeur>" ?
avatar
Que cache le pays des Dieux ? - Forum Ghibli - Forum Littéraire

La fin d'un monde souillé est venue. L'oiseau blanc plane dans le ciel annonçant le début d'une longue ère de purification. Détachons-nous à jamais de notre vie dans ce monde de souffrance. Ô toi l'oiseau blanc, l'être vêtu de bleu, guide nous vers ce monde de pureté. - Sutra originel dork.

3

À vrai dire, je suis un peu confus... la version de GCC qui est déjà installée sur mon ordi semble pouvoir compiler pour processeur ARM, mais j'ai vu à plusieurs endroits des compilateurs (commerciaux) spécifiques, et une page de la doc de ubuntu dit qu'il faut carrément recompiler GCC et binutils... j'ai essayé, sans succès...
Je me souviens
Ad mari usque ad mare

GENERATION 23: The first time you see this, copy it into your sig on any forum and add 1 to the generation. Social experiment.

4

Il te faut une toolchain gcc i386 pour ARM, tu peux soit la faire toi même comme indiqué ici par exemple, soit en trouver une en binaire toute prête comme par exemple devkitarm qui est une toolchain utilisée pour programmer sur gba, ds etc

Edit: en cherchant ça sur google tu devrais avoir les infos que tu cherches
avatar
Combien de tas de bois une marmotte pourrait couper si une marmotte pouvait couper du bois ?

5

DevkitARM ne va pas lui convenir, c'est une chaîne d'outils pour ARM sans OS, alors qu'il lui faut une chaîne d'outils pour arm-linux-gnu.

Mais en tout cas, il est impossible de compiler pour arm-linux-gnu avec la chaîne d'outils de OS X, il faut compiler une version cross de GCC et Binutils, et il y aura aussi une compilation de la glibc dans tout ça.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

6

Kevin Kofler (./5) :
DevkitARM ne va pas lui convenir, c'est une chaîne d'outils pour ARM sans OS, alors qu'il lui faut une chaîne d'outils pour arm-linux-gnu.
Mais oui je le sais très bien c'était un exemple que je connaissais au cas où il voulait jeter un coup d'oeil smile
avatar
Combien de tas de bois une marmotte pourrait couper si une marmotte pouvait couper du bois ?

7

Merci à tous! Donc, si je comprends bien, certaines versions de GCC peuvent compiler pour ARM, mais pas celle par défaut sur Mac. Je dois donc en compiler une moi-même...
Je me souviens
Ad mari usque ad mare

GENERATION 23: The first time you see this, copy it into your sig on any forum and add 1 to the generation. Social experiment.

8

Exact.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

9

Oui, et je suis moi même en train de compiler une toolchain gcc pour m68k (68040). Je vais me servir de newlib.

j'ai mis toutes les instructions dans un makefile, je peux te le passer dans la journée, ça t'inspirera.

10

Il y a quand-même des différences entre une chaîne d'outils newlib et une chaîne d'outils glibc (et c'est vraisemblablement cette dernière qu'il lui faudra).
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

11

12

En fait, la plateforme étant assez réduite, c'est uClibc qu'on utilise...
Je me souviens
Ad mari usque ad mare

GENERATION 23: The first time you see this, copy it into your sig on any forum and add 1 to the generation. Social experiment.

13

alors utilise buildroot pour faire ton build complet, t'auras tout en même temps, uclinux, uclibc, busybox, et une toolchain.

14

Je n'ai jamais fait ça mais ça m'intéresse de savoir: dans le cas où on n'a pas d'outils officiels pour le linux embarqué en question, il faut créer une toolchain soi-même avec linkerscript pour le format d'exécutable de destination et autres joyeusetés? Ou alors c'est plus ou moins standard? (dans le sens un linux reste un linux et les paramètres à modifier sont quasi nuls)
avatar
Highway Runners, mon jeu de racing à la Outrun qu'il est sorti le 14 décembre 2016 ! N'hésitez pas à me soutenir :)

https://itunes.apple.com/us/app/highway-runners/id964932741

15

ça dépend.

pour les linux avec mmu la memorymap est toujours la même par cpu je pense, et on s'en sort avec un seul linkerscript par plate forme.

par contre en embarqué avec uclinux nommu par exemple, il y a des formats de fichiers relogeables, et là on a aussi un linker script qui produit des exécutables spéciaux, mais les ldscripts sont fournis.

16

*** BFD does not support target arm-unknown-linux-uclibc.
*** Look in bfd/config.bfd for supported targets.
make: *** [configure-bfd] Error 1

... ça me donne cette erreur lorsque j'essaye de compiler binutils...
Je me souviens
Ad mari usque ad mare

GENERATION 23: The first time you see this, copy it into your sig on any forum and add 1 to the generation. Social experiment.

17

Faut patcher ton Binutils peut-être?
Sinon, a priori Binutils n'a pas besoin de savoir que tu utilises ucLibc, ça touche GCC seulement.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

18

utilise --target=arm-elf ou arm-coff

ça marche très bien.

19

C'est arm-elf dans son cas (GNU/Linux), mais les targets -elf et -coff sont faits pour les machines sans OS, donc il ferait mieux de configurer son Binutils pour arm-linux (et pour GCC, c'est bien arm-linux-uclibc qu'il lui faut, la libc est importante pour GCC).
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

20

21

ouais, mais ce n'est pas moi qui ai choisi... la plateforme a déjà un système d'exploitation (linux), je veux seulement compiler du code qui va tourner dessus...

je vais de ce pas essayer ce que vous m'avez dit, je vous en donne des nouvelles
Je me souviens
Ad mari usque ad mare

GENERATION 23: The first time you see this, copy it into your sig on any forum and add 1 to the generation. Social experiment.