Kommentarer
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
readelf -A ./program.elf
informasjonen for å bekrefte. Er det mer feilen enn at " ikke kan utføre binær fil "?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
.