Moinsen! Ich bin gerade dabei, ARM-Assembler zu erlernen. In in der Sturtup-Datei crt0.S steht bei den Intterrupt-Vektoren immer "b ." . 'b' steht ja für branch, aber was bedeuet der Punkt? Wodurch wird dieser erstezt? Das hab ich in keinem Tutorial/Dokumentation finden können. MfG Mark
Anfangsadresse des betreffenden Befehls. "b ." ist also eine 1-Befehl-Totschleife aka Däumchen drehen. Sinn in diesem Zusammenhang: definiertes Verhalten wenn "sollte nicht passieren" eben doch passiert, der Debugger zeigt dann wo.
Danke für die Antwort. Dann verstehe ich aber nicht, wie eine ISR ausgeführt wird, wenn der Controller zum irq-Vector springt und dann einfah hängen bleibt. MfG Mark
Wenn im IRQ-Vektor diese Schleife steht, wird's nichts mit Interrupts. Das ist aber nicht üblich. Üblicherweise steht dort ein LDR-Befehl (=>PC) oder ein Sprung auf etwas Assembler-Code. Details bitte, d.h. den betreffenden Startup-Code.
Stimmt, ich habe nicht richtig hingeguckt. Beim irq-vector wird zu PC-0xFF0 gesprungen, was 0xFFFFF030 entspricht, also der Adresse des VICVectAddr. Was wird aber danach gemacht? Wo finde ich dazu den Code? Im Anhang übrigens die Crt0.S. MfG Mark
Da wird nicht dorthin gesprungen, es wird der dortige Wert (das ist das Vektorregister des Interrupt-Controllers) in den PC geladen.
Ja, stimmt auch. Tut mir leid, aber ich bin noch wie gesagt Anfänger, weshalb ich noch einige Probleme mit der Syntax habe. Ich habs jetzt endlich kapiert, nachdem ich im Datenblatt die Beschreibung des VICVectAddr gelesen hab. Vielen Dankt für die Hilfe a-k, es werden aber in der Zuklunft bestimmt noch mehr Fragen über den ARM auftauchen :-) MfG Mark
Ich hab doch och eine Frage: wieso steht da "ldr pc,[pc,#-0xFF0]" anstatt "ldr pc,=0xFFFFF030" ? Letzteres wäre doch etwas übersichtilcher, weil man die Adresse sofort ablesen könnte. MfG Mark
Der eine Befehl läd eine Konstante, der andere den Wert an einer Adresse.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.