ARM920T - Ausnahmehandler



  • Hallo an alle,

    ich soll für die verschiedenen Ausnahmen (Reset, Undefined Instruction, Software Interrupt, Prefetch Abort, Data Abort, IRQ und FIQ) jeweils verschiedene Handler schreiben.
    Ich weiß, dass beim ARM920T Sprungziele bei einer Ausnahme festverdrahtet sind, d.h. z.B. bei einem Reset wird immer die Adresse 0x0000 0000 angesprungen. Ich muss also in diese Adressen irgendwie eine Weiterleitung zu meiner Handlerfunktion schreiben. Mein Ansatz wäre, dass ich so etwas wie bl handler an die entsprechende Adresse schreibe; nur wie mach ich das?

    MfG

    shft



  • shft schrieb:

    Mein Ansatz wäre, dass ich so etwas wie bl handler an die entsprechende Adresse schreibe; nur wie mach ich das?

    Ein Weg wäre den Befehl durch einen ARM Assembler jagen, mit einem reinen binary als Ausgabeformat. Das binay mit an deinen Systemcode linken (oder irgendwie anders mit auf dein verwendetes Speichermedium packen), damit du darauf zugreifen kannst. Dann in deinem Code das Binary an die Adressen kopieren wo die entsprechenden Interruptvektoren verdrahtet sind.



  • Ok, dass klingt schon mal vielversprechend.
    Gibt es noch andere (evtl. elegantere ) Wege, dieses Problem zu lösen?



  • Guck mal in die Doku vom Compiler, da gibt es bestimmt eine (nicht genormte) Syntax für Interruptvektoren/Interrupts.


Anmelden zum Antworten