Commentaires
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
readelf -A ./program.elf
pour vérifier. Y a-t-il plus à lerreur que " ne peut pas exécuter le fichier binaire "?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
.