Kommentarer
Svar
Kommandot bash ./program.elf
skickar filen genom bash-tolken.
En elf-fil är en kompilerad binär fil och ska köras från kommandoraden så här: ./program.elf
Glöm inte att ställa in den körbara biten för filen med:
chmod a+x ./program.elf
Svar
Från vad jag kan säga är det mycket vanligare att en ARMv7-processor är modellen ARMv7-A (den typ som används för Snapdragon 600/800 i Galaxy S4 och Nexus 5 respektive Raspberry Pi 2 / modell B), men din utdata listar systemchipet som en ARMv71 (även kallad ARMv7 Revision 1). Det verkar helt möjligt att den variant av ARMv7-processor SDK du valde när du kompilerade / byggde programmet helt enkelt var fel delmängd av ARMv7, liknande om du hade tänkt att bygga för ARMv7-A och istället byggt för ARMv7-M. Nu är det bara en gissning eftersom jag inte har någon aning om vilken processor / enhet du byggde för, eller byggde på för den delen, men med tanke på hur kräsna SoC-processorer är när det gäller att köra program som inte kompilerats specifikt för dem skulle jag föreslå att kompilera källa direkt på maskinen ifråga om möjligt.
Kommentarer
- Att kompilera inbyggt var min första tanke, men att försöka göra det tog upp en annan uppsättning problem som jag ' också försöker lösa. Chipet jag använder är en Xilinx-processor och jag kompilerar på Xilinx SDK på en Windows-dator. Jag antog att Xilinx SDK skulle kompilera för rätt arkitektur för ARM som de använder i Xilinx-processorer, så det ' är konstigt för mig att det inte ' Det verkar inte vara fallet.
- När man tittar på det verkar det som om Xilinx har flera processorfamiljer, som alla faller under ARMv7x-kategorin, men använder olika kombinationer av olika armkärnor som finns ofta i ARMv7 cpus. Till exempel kan en modell ha två A9-Cortexes och en A7-Cortex som en sekundär co-processor, medan en annan kan ha en A8-Cortex med en annan enda A5-Cortex som sin co-processor. (Jag har ingen aning om det här är riktiga kombinationer som finns i Xilinx-processorer, bara exempel: P
readelf -A ./program.elf
informationen för att verifiera. Finns det mer i felet än att " inte kan köra binär fil "?bash ./program.elf
? Elf-filen är INTE ett bash-skript. Kör inte den genom bash-tolken. Det är en elf-fil./program.elf
. Antag att köra bituppsättning.chmod a+x ./program.elf
.