Qual è la differenza tra ARM e armv71? [chiuso]

Chiuso . Questa domanda richiede dettagli o chiarezza . Attualmente non accetta risposte.

Commenti

  • Hai compilato questo programma? Qual è loutput di readelf -A ./program.elf? Esistono diverse versioni di Arm. ARMv2, ARMv3, ARMv5, ARMv7 … hard-float e soft-float ABI: ecc.
  • Guardando questo sito ( wiki.debian.org / ArmEabiPort ) sembra che ..: dovrebbe: .. funzionare. Potrebbe essere necessario cercare le opzioni del compilatore rispetto al tuo hardware.
  • Ho compilato il programma su un altro computer utilizzando un SDK, ma tale SDK è fornito dai produttori del processore I ' sto usando, quindi immagino che il loro SDK dovrebbe avere le configurazioni di build per indirizzare il proprio chip, giusto?
  • Anche questa sarebbe la mia ipotesi, ma lSDK potrebbe essere usato per più µ P. Controlla ancora le informazioni readelf -A ./program.elf per verificare. Cè di più nellerrore di quanto " non possa eseguire il file binario "?
  • Attendi. 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.

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

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *