Wat is het verschil tussen ARM en armv71? [gesloten]

Gesloten . Deze vraag heeft details of duidelijkheid nodig. Het accepteert momenteel geen antwoorden.

Reacties

  • Heb je dit programma gecompileerd? Wat is de output van readelf -A ./program.elf? Er zijn een aantal Arm-versies. ARMv2, ARMv3, ARMv5, ARMv7 … hard-float en soft-float ABI: etc.
  • Kijkend naar deze site ( wiki.debian.org / ArmEabiPort ) het lijkt erop ..: should: .. werken. Moet misschien de compiler-opties ten opzichte van uw hardware opsporen.
  • Ik heb het programma op een andere computer gecompileerd met behulp van een SDK, maar die SDK wordt geleverd door de makers van de processor I ' m gebruiken, dus ik kan me voorstellen dat hun SDK de build-configuraties zou moeten hebben om hun eigen chip te targeten, correct?
  • Dat zou ook mijn gok zijn, maar de SDK zou kunnen worden gebruikt voor meerdere µ P. Controleer nog steeds de readelf -A ./program.elf info om te verifiëren. Is er meer aan de fout dan " kan het binaire bestand " niet uitvoeren?
  • Wacht. bash ./program.elf? Het elf-bestand is GEEN bash-script. Haal het niet door de bash-interpreter. Het is een elfbestand ./program.elf. Veronderstel bit set uitvoeren. chmod a+x ./program.elf.

Antwoord

Het commando bash ./program.elf stuurt het bestand door de bash-interpreter.

Een elf-bestand is een gecompileerd binair bestand en zou als volgt vanaf de opdrachtregel moeten worden uitgevoerd: ./program.elf

Vergeet niet om het uitvoerbare bit voor het bestand in te stellen met:

chmod a+x ./program.elf 

Antwoord

Voor zover ik kan zien, is het veel gebruikelijker dat een ARMv7-processor het model ARMv7-A is (het soort dat wordt gebruikt voor de Snapdragon 600/800 in de Galaxy S4 en Nexus 5, evenals de Raspberry Pi 2 / model B), maar uw uitvoer vermeldt de systeemchip als een ARMv71 (ook bekend als de ARMv7 Revision 1). Het lijkt heel goed mogelijk dat de variant van de ARMv7-processor-SDK die je hebt geselecteerd bij het compileren / bouwen van het programma gewoon de verkeerde subset van ARMv7 was, vergelijkbaar met de bedoeling om te bouwen voor ARMv7-A en in plaats daarvan gebouwd voor ARMv7-M. Dit is slechts een gok, aangezien ik geen idee heb voor welke processor / apparaat je aan het bouwen was, of waar je op voortbouwt, maar gezien hoe kieskeurig SoC-processors zijn als het gaat om het draaien van programmas die niet specifiek voor hen zijn gecompileerd, zou ik willen voorstellen om de bron te compileren rechtstreeks op de machine in kwestie, indien mogelijk.

Opmerkingen

  • Native compileren was mijn eerste gedachte, maar toen ik dat probeerde te doen, ontstond een andere reeks problemen die ik ' m ook probeer op te lossen. De chip die ik gebruik, is een Xilinx-processor en ik compileer op Xilinx SDK op een Windows-computer. Ik had aangenomen dat Xilinx SDK zou moeten compileren voor de juiste architectuur voor de ARM die ze gebruiken in Xilinx-processors, dus het ' vind ik raar dat dat niet ' t lijkt het geval te zijn.
  • Als je ernaar kijkt, lijkt het erop dat Xilinx verschillende processorfamilies heeft, die allemaal onder de categorie ARMv7x vallen, maar verschillende combinaties van verschillende arm-cores gebruiken die worden vaak gevonden in ARMv7-cpus. Het ene model heeft bijvoorbeeld twee A9-Cortexen en een A7-Cortex als secundaire coprocessor, terwijl een ander model een A8-Cortex heeft met een andere enkele A5-Cortex als coprocessor. (Ik heb geen idee of dit echte combos zijn die aanwezig zijn in Xilinx-CPUs, slechts voorbeelden: P

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *