Commenti
Rispondi
Il comando bash ./program.elf
invierà il file tramite linterprete bash.
Un file elf è un file binario compilato e dovrebbe essere eseguito dalla riga di comando in questo modo: ./program.elf
Non dimenticare di impostare il bit eseguibile per il file con:
chmod a+x ./program.elf
Risposta
Da quello che posso dire è molto più comune per un processore ARMv7 essere il modello ARMv7-A (il tipo utilizzato per Snapdragon 600/800 nei Galaxy S4 e Nexus 5 rispettivamente, così come Raspberry Pi 2 / modello B), tuttavia il tuo output elenca il chip di sistema come ARMv71 (ovvero ARMv7 Revisione 1). Sembra del tutto possibile che la variante dellSDK del processore ARMv7 che hai selezionato durante la compilazione / costruzione del programma fosse semplicemente il sottoinsieme sbagliato di ARMv7, simile a se avessi pensato di compilare per ARMv7-A e invece costruito per ARMv7-M. Ora questa è solo una supposizione poiché non ho idea di quale processore / dispositivo stavi costruendo, o su cui stai costruendo per quella materia, ma dato quanto sono esigenti i processori SoC quando si tratta di eseguire programmi non compilati appositamente per loro, suggerirei di compilare il sorgente direttamente sulla macchina in questione, se possibile.
Commenti
- Compilare in modo nativo è stato il mio primo pensiero, ma provare a farlo ha portato alla luce un diverso insieme di problemi che ' sto anche cercando di risolvere. Il chip che sto usando è un processore Xilinx e sto compilando su Xilinx SDK su un computer Windows. Avevo supposto che Xilinx SDK dovesse compilare per larchitettura corretta per lARM che usano nei processori Xilinx, quindi ' mi sembra strano che questo non ' Non sembra essere il caso.
- Esaminandolo sembra che Xilinx abbia diverse famiglie di processori, che rientrano nella categoria ARMv7x, ma utilizzano diverse combinazioni di vari core arm che si trovano spesso nelle CPU ARMv7. Ad esempio, un modello può avere due A9-Cortex e un A7-Cortex come coprocessore secondario, mentre un altro può avere un A8-Cortex con un altro singolo A5-Cortex come coprocessore. (Non ho idea se queste siano vere combo presenti nelle CPU Xilinx, solo esempi: P
readelf -A ./program.elf
per verificare. Cè di più nellerrore di quanto " non possa eseguire il file binario "?bash ./program.elf
? Il file elf NON è uno script bash. Non eseguirlo tramite linterprete bash. È un file elfo./program.elf
. Supponiamo che il bit di esecuzione sia impostato.chmod a+x ./program.elf
.