Question

Je veux apprendre la programmation en assembleur pour PowerPC et ARM, mais je suis incapable d'acheter du matériel réel à cet effet. Je pense à l'aide de QEMU pour cela. Cependant, je ne suis pas sûr si elle émule les deux architectures assez bien, que je vais compiler et exécuter mes programmes en assembleur natif sur elle?

Était-ce utile?

La solution

QEMU fonctionne bien pour le programme test correction (à savoir si le code serait correctement exécuté sur un ARM ou PowerPC réelle), mais il est pas bon pour le programme test Efficacité : la l'émulation n'est pas le cycle précis, et la vitesse mesurée avec QEMU ne peut pas être fiable (ou même non fiable) en corrélation avec la vitesse sur un véritable matériel.

En outre, QEMU ne piège mémoire les accès non alignés, ce qui est un problème pour l'émulation PowerPC (le PowerPC supporte les accès non alignés), mais peut-être pour ARM (un accès non alignés, par exemple la lecture d'un mot de 32 bits dans la mémoire vive d'une adresse qui est un multiple de 4, fonctionnera bien avec QEMU, mais déclencherait une exception sur un vrai processeur ARM).

En dehors de ces points, QEMU est très bien pour le développement de l'assemblage sur ARM ou MIPS (ont pas essayé PowerPC, parce que je trouve un vieux iBook sur eBay pour cela, mais je l'ai fait l'assemblage ARM et MIPS avec QEMU, puis a couru la code résultant sur un véritable matériel, et cela a fonctionné). Vous pouvez émuler un système complet et exécuter Debian (dans ce cas, le compilateur, éditeur de liens, éditeur de texte ... également fonctionner en émulation), ou utiliser la « émulation en mode utilisateur » où les ARM / MIPS exécutable est exécuté directement, avec une enveloppe qui convertit les appels système dans ceux du PC hôte (cela suppose que l'hôte est un PC fonctionnant sous Linux). Ce dernier est plus pratique (vous avez accès à votre répertoire personnel habituel, des outils de programmation sont natifs ...) mais nécessite l'installation d'outils de développement croisé. Voir buildroot pour cela (et le lien avec -static, cela évitera beaucoup de maux de tête).

Autres conseils

Depuis que j'ai trouvé des signes que Debian PowerPC et ARM peut fonctionner sur QEMU, je suppose que ce ne sera pas un problème.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top