Gast
#3456843
Hallo ich habe eine Frage zum program-relativen Branchen. Dazu folgendes Szenario: Ich möchte in Adresse 0xFFFF0000 einen Branch zur Adresse 0x00100000 durchführen. Leider ermöglicht der Assembler "B" Opcode keine solch große Reichweite (-4293853184 Bytes) Ist es möglich einen Überlauf zu nutzen: PC = 0xFFFF0000 + 0x00110000 = 0x00100000 Im Detail geht es um den SAM9G45 welcher es ermöglicht den gesamten SRAM als TCM zu konfigurieren. Dadurch ist dieser leider nur über das TCM-Interface verfügbar uns steht nicht mehr als Remap-Zone zu Verfügung. Problematisch ist dies für das Exception-Handling welches eine Exception-Vector-Tabelle an Addresse 0x00000000 erfordert. Der CP15 ermöglicht es, die Exception-Vector-Tabelle von 0x00000000 - 0x0000001C(innerhalb der remap-zone) nach 0xFFFF0000 - 0xFFFF001C zu verlagern. Um dieses Feature nutzen zu können, muss ich die Vector-Tabelle mit Branches von 0xFFFF0000 zum ITCM (0x00100000) erstellen. Gruß Tobias