Hva er forskjellen mellom ARM og armv71? [lukket]

Stengt . Dette spørsmålet trenger detaljer eller klarhet . Det aksepteres for øyeblikket ikke svar.

Kommentarer

  • Har du laget dette programmet? Hva er resultatet av readelf -A ./program.elf? Det finnes en rekke Arm-versjoner. ARMv2, ARMv3, ARMv5, ARMv7 … hard-float og soft-float ABI: etc.
  • Ser på dette nettstedet ( wiki.debian.org / ArmEabiPort ) det ser ut som det ..: skal: .. fungere. Må kanskje jage ned kompilatoralternativene mot maskinvaren din.
  • Jeg kompilerte programmet på en annen datamaskin ved hjelp av en SDK, men at SDK leveres av produsentene av prosessoren I ' bruker, så jeg kan forestille meg at deres SDK burde ha byggekonfigurasjonene for å målrette mot sin egen brikke, riktig?
  • Det ville jeg også gjette, men SDK kunne brukes til flere µ P. Sjekk fortsatt readelf -A ./program.elf informasjonen for å bekrefte. Er det mer feilen enn at " ikke kan utføre binær fil "?
  • Vent. bash ./program.elf? Elf-filen er IKKE et bash-skript. Ikke kjør den gjennom basstolken. Det er en elf-fil ./program.elf. Anta at kjør bit sett. chmod a+x ./program.elf.

Svar

Kommandoen bash ./program.elf sender filen gjennom bash-tolken.

En alf-fil er en kompilert binær fil og skal kjøre fra kommandolinjen slik: ./program.elf

Ikke glem å angi den kjørbare biten for filen med:

chmod a+x ./program.elf 

Svar

Fra det jeg kan fortelle er det langt mer vanlig at en ARMv7-prosessor er modellen ARMv7-A (den typen som brukes til Snapdragon 600/800 i Galaxy S4 og Nexus 5 henholdsvis i tillegg til Raspberry Pi 2 / modell B), men utgangen din viser systembrikken som en ARMv71 (også kalt ARMv7 Revision 1). Det virker fullt mulig at varianten av ARMv7-prosessor SDK du valgte da du kompilerte / bygde programmet, ganske enkelt var feil delmengde av ARMv7, som om du hadde ment å bygge for ARMv7-A og i stedet bygget for ARMv7-M. Nå er dette bare et gjetning da jeg ikke aner hvilken prosessor / enhet du bygde for, eller bygger videre for den saks skyld, men gitt hvor kresen SoC-prosessorer er når det gjelder å kjøre programmer som ikke er spesifikt kompilert for dem, vil jeg foreslå å kompilere kilde direkte på den aktuelle maskinen hvis mulig.

Kommentarer

  • Å kompilere innfødt var min første tanke, men å prøve å gjøre det førte til et annet sett med problemer som jeg ' også prøver å løse. Brikken jeg bruker er en Xilinx-prosessor, og jeg kompilerer på Xilinx SDK på en Windows-datamaskin. Jeg hadde antatt at Xilinx SDK skulle kompilere for riktig arkitektur for ARM de bruker i Xilinx-prosessorer, så det er ' rart for meg at det ikke ' Det ser ut til å være tilfelle.
  • Ser vi på det virker det som om Xilinx har flere prosessorfamilier, som alle faller inn under ARMv7x-kategorien, men bruker forskjellige kombinasjoner av forskjellige armkjerner som finnes ofte i ARMv7 cpus. For eksempel kan en modell ha to A9-Cortexes og en A7-Cortex som en sekundær co-prosessor, mens en annen kan ha en A8-Cortex med en annen single A5-Cortex som co-prosessor. (Jeg aner ikke om dette er ekte kombinasjoner til stede i Xilinx-prosessorer, bare eksempler: P

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *