Est-il possible d'utiliser gcc pour convertir C en MIPS?
J'ai terminé une C à MIPS de conversion pour une catégorie, et je veux vérifier contre l'assemblée. J'ai entendu dire qu'il y a un moyen de la configuration de la gcc afin qu'il puisse convertir le code en C pour l'architecture MIPS plutôt que l'architecture x86 (mon ordinateur des utilisateurs d'un processeur Intel i5) et imprime le résultat.
Exécutant le terminal Ubuntu (qui est livré avec gcc), quelle commande dois-je utiliser pour la configuration de gcc pour convertir MIPS? Est-ce que je besoin d'installer aussi bien?
EDIT:
Permettez-moi de clarifier. Veuillez lire ce qui suit.
Je ne suis pas à la recherche pour le compilateur à utiliser, ou les gens en disant: "eh bien, vous pourriez cross-compiler, mais au lieu de cela, vous devriez utiliser cette autre chose qui n'a pas d'instructions sur la façon de mettre en place."
Si vous allez à la poste, à moins de me référer aux instructions. GCC est venu avec Ubuntu. Je n'ai pas d'expérience sur la façon d'installer les compilateurs et il n'est pas facile de trouver des tutoriels en ligne pour autre chose que la GCC. Ensuite, il ya le cas de cross-compilation j'ai besoin de savoir au sujet en tant que bien. Merci.
source d'informationauteur Mike
Vous devez vous connecter pour publier un commentaire.
GCC peut produire assemblée de code pour un grand nombre d'architectures, d'inclure MIPS. Mais ce que l'architecture d'un GCC exemple de cibles est décidé lors de la GCC en lui-même est compilé. Les binaires précompilés, vous trouverez dans un système Ubuntu sait sur x86 (éventuellement dans les deux versions 32 bits et 64 bits des modes), mais pas MIPS.
De la compilation de GCC avec une architecture cible distincte de l'architecture sur laquelle GCC lui-même sera en cours d'exécution est connu comme la préparation d'un la cross-compilation de la chaîne d'. C'est faisable, mais nécessite un peu de documentation de la lecture et de la patience, vous avez généralement besoin d'abord de construire un cross-assembleur et cross-linker (GNU binutils), puis construire la croix-GCC lui-même.
Je recommande d'utiliser buildroot. C'est un ensemble de scripts et les fichiers makefile conçues pour aider à la production d'un cross-compilation chaîne d'outils et d'utilitaires. À la fin de la journée, vous obtenez un système complet et des outils de développement pour un système cible. Cela inclut le cross-compilateur, vous êtes après.
L'autre tout à fait autre solution est d'utiliser QEMU. C'est un émulateur pour différents processeurs et de systèmes, y compris les systèmes MIPS. Vous pouvez l'utiliser pour exécuter une machine virtuelle avec un processeur MIPS, et, à l'intérieur de cette machine, installer un système d'exploitation pour MIPS, par exemple Debianune distribution Linux. De cette façon, vous obtenez un natif GCC (GCC en cours d'exécution sur un système MIPS et la production de code pour les MIPS).
QEMU peut-être un peu plus simple; à l'aide de la cross-compilation exige une certaine compréhension de certains poilus de détails. De toute façon, vous aurez besoin d'environ 1 GO d'espace disque libre.
Ce n'est pas une configuration chose, vous avez besoin d'une version de GCC que le cross-compile de MIPS. Cela nécessite un GCC construire et est assez poilu à mettre en place (construction de GCC n'est pas pour les faibles de cœur).
Je vous recommande d'utiliser LCC pour cela. C'est beaucoup plus facile de faire de la cross-compilation avec CCV que c'est avec GCC, et le bâtiment CCV est une question de secondes sur les machines actuelles.
Vous devez télécharger la source de binutils et gcc-core et compiler avec quelque chose comme
../configure --target=mips ...
. Vous devrez peut-être choisir une MIPS cible. Ensuite, vous pouvez utilisermips-gcc -S
.Vous pouvez le cross-compiler GCC afin qu'il génère des MIPS code au lieu de x86. C'est une belle expérience d'apprentissage.
Si vous voulez des résultats rapides, vous pouvez également obtenir un préconstruit GCC avec MIPS soutien. L'un est le CodeSourcery Lite de la Chaîne. Il est gratuit, vient pour beaucoup d'architectures (y compris les MIPS) et ils sont prêt à utiliser des binaires pour Linux et Windows.
http://www.codesourcery.com/sgpp/lite/mips/portal/subscription?@template=lite
Vous devez compiler votre propre version de gcc qui est capable de cross-compiler. Bien sûr, ce n'est pas facile, de sorte que vous pourriez regarder pour une approche différente.. par exemple cette SDK.