Quelle est la différence entre ARM et armv71? [fermé]

Fermé . Cette question nécessite détails ou clarté . Il naccepte pas les réponses actuellement.

Commentaires

  • Avez-vous compilé ce programme? Quelle est la sortie de readelf -A ./program.elf? Il existe plusieurs versions dArm. ARMv2, ARMv3, ARMv5, ARMv7 … ABI flottant fixe et flottant souple: etc.
  • En regardant ce site ( wiki.debian.org / ArmEabiPort ) ça y ressemble ..: devrait: .. fonctionner. Il peut être nécessaire de rechercher les options du compilateur par rapport à votre matériel.
  • Jai compilé le programme sur un autre ordinateur à laide dun SDK, mais ce SDK est fourni par les fabricants du processeur I ' m en utilisant, donc jimagine que leur SDK devrait avoir les configurations de construction pour cibler leur propre puce, correct?
  • Ce serait aussi mon estimation, mais le SDK pourrait être utilisé pour plusieurs µ P. Vérifiez toujours les informations readelf -A ./program.elf pour vérifier. Y a-t-il plus à lerreur que " ne peut pas exécuter le fichier binaire "?
  • Attendez. bash ./program.elf? Le fichier elf nest PAS un script bash. Ne lexécutez pas via linterpréteur bash. Cest un fichier elfe ./program.elf. Supposons que le bit dexécution soit défini. chmod a+x ./program.elf.

Réponse

La commande bash ./program.elf enverra le fichier via linterpréteur bash.

Un fichier elf est un fichier binaire compilé et doit être exécuté à partir de la ligne de commande comme suit: ./program.elf

Noubliez pas de définir le bit exécutable du fichier avec:

chmod a+x ./program.elf 

Réponse

Daprès ce que je peux dire, il est beaucoup plus courant quun processeur ARMv7 soit le modèle ARMv7-A (le type utilisé pour le Snapdragon 600/800 dans le Galaxy S4 et le Nexus 5 respectivement, ainsi que le Raspberry Pi 2 / modèle B), mais votre sortie répertorie la puce système comme un ARMv71 (alias ARMv7 Revision 1). Il semble tout à fait possible que la variante du SDK du processeur ARMv7 que vous avez sélectionnée lors de la compilation / construction du programme soit tout simplement le mauvais sous-ensemble dARMv7, similaire à si vous aviez lintention de construire pour ARMv7-A et à la place construit pour ARMv7-M. Maintenant, ce nest quune supposition car je nai aucune idée du processeur / appareil pour lequel vous étiez en train de construire, ou sur lequel vous étiez en train de construire, mais étant donné à quel point les processeurs SoC sont difficiles lorsquil sagit dexécuter des programmes non compilés spécifiquement pour eux, je suggérerais de compiler la source directement sur la machine en question si possible.

Commentaires

  • Compiler nativement a été ma première pensée, mais essayer de faire cela a amené un ensemble différent de problèmes que j’essaie également ' de résoudre. La puce que jutilise est un processeur Xilinx, et je compile sur Xilinx SDK sur un ordinateur Windows. Javais supposé que Xilinx SDK devrait compiler pour la bonne architecture pour lARM quils utilisent dans les processeurs Xilinx, donc cela ' est étrange pour moi que cela ne ' Cela semble être le cas.
  • En y regardant, il semble que Xilinx possède plusieurs familles de processeurs, qui appartiennent tous à la catégorie ARMv7x, mais utilisent différentes combinaisons de différents cœurs de bras qui se trouvent souvent dans les processeurs ARMv7. Par exemple, un modèle peut avoir deux A9-Cortex et un A7-Cortex comme coprocesseur secondaire, tandis quun autre peut avoir un A8-Cortex avec un autre A5-Cortex comme coprocesseur. (Je nai aucune idée si ce sont de vrais combos présents dans les processeurs Xilinx, juste des exemples: P

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *