Hvad er forskellen mellem ARM og armv71? [lukket]

Lukket . Dette spørgsmål har brug for detaljer eller klarhed . Det accepteres i øjeblikket ikke svar.

Kommentarer

  • Kompilerede du dette program? Hvad er output fra readelf -A ./program.elf? Der findes et antal armversioner. ARMv2, ARMv3, ARMv5, ARMv7 … hard-float og soft-float ABI: etc.
  • Ser på dette websted ( wiki.debian.org / ArmEabiPort ) det ser ud som det ..: skal: .. arbejde. Det kan være nødvendigt at jagte kompilatorindstillingerne i forhold til din hardware.
  • Jeg kompilerede programmet på en anden computer ved hjælp af en SDK, men at SDK leveres af producenterne af processoren I ' bruger, så jeg kan forestille mig, at deres SDK burde have byggekonfigurationerne til at målrette mod deres egen chip, korrekt?
  • Det ville også være mit gæt, men SDK kunne bruges til flere µ P. Tjek stadig readelf -A ./program.elf info for at bekræfte. Er der mere ved fejlen, end " ikke kan udføre binær fil "?
  • Vent. bash ./program.elf? Alfefilen er IKKE et bash-script. Kør det ikke gennem bash-tolken. Det er en alfefil ./program.elf. Antag at udføre bit-sæt. chmod a+x ./program.elf.

Svar

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

En elf-fil er en kompileret binær fil og skal køre fra kommandolinjen sådan: ./program.elf

Glem ikke at indstille den eksekverbare bit til filen med:

chmod a+x ./program.elf 

Svar

Fra hvad jeg kan fortælle, er det langt mere almindeligt, at en ARMv7-processor er modellen ARMv7-A (den slags, der bruges til Snapdragon 600/800 i Galaxy S4 og Nexus 5 henholdsvis samt Raspberry Pi 2 / model B), men din output viser systemchippen som en ARMv71 (også kaldet ARMv7 Revision 1). Det ser ud til at være helt muligt, at den variant af ARMv7-processor SDK, du valgte, da du kompilerede / opbyggede programmet, simpelthen var den forkerte delmængde af ARMv7, svarende til hvis du havde tænkt dig at bygge til ARMv7-A og i stedet bygget til ARMv7-M. Nu er dette kun et gæt, da jeg ikke har nogen idé om, hvilken processor / enhed du byggede til eller bygger videre for den sags skyld, men i betragtning af hvor kræsne SoC-processorer er, når det kommer til at køre programmer, der ikke er specifikt sammensat til dem, vil jeg foreslå at kompilere kilde direkte på den pågældende maskine, hvis det er muligt.

Kommentarer

  • At kompilere indbygget var min første tanke, men at prøve at gøre det bragte et andet sæt problemer, som jeg ' også prøver at løse. Den chip, jeg bruger, er en Xilinx-processor, og jeg kompilerer på Xilinx SDK på en Windows-computer. Jeg havde antaget, at Xilinx SDK skulle kompilere for den rigtige arkitektur til den ARM, de bruger i Xilinx-processorer, så det ' er underligt for mig, at det ikke ' Det ser ud til at være tilfældet.
  • Når man ser på det, ser det ud til, at Xilinx har flere processorfamilier, som alle falder ind under ARMv7x-kategorien, men bruger forskellige kombinationer af forskellige armkerner, der findes ofte i ARMv7 cpus. For eksempel kan en model have to A9-Cortexes og en A7-Cortex som en sekundær co-processor, mens en anden kan have en A8-Cortex med en anden single A5-Cortex som sin co-processor. (Jeg aner ikke, om disse er ægte kombinationer til stede i Xilinx CPUer, bare eksempler: P

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *