Kommentarer
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
readelf -A ./program.elf
info for at bekræfte. Er der mere ved fejlen, end " ikke kan udføre binær fil "?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
.