Hallo Leute, ich hätte wieder einmal Fragen zum STM32F10X: In der ARM-Doku, aber auch in der ST-Doku steht, dass in den Einträgen der Vektortabelle bei den Sprungzielen Bit 0 wegen interwork gesetzt sein muss. Das CMSIS-Startup macht das auch für die Vektoren außer dem Reset Handler (über .thumb_set). Ich habe nun im CMSIS Startup von ST auch für das Symbol "Reset_Handler" über die Assembler-Direktive .thumb_set erreicht, dass Bit 0 für diesen Handler in der Vektor-Tabelle gesetzt ist. Nun folgende Fragen: - Muss im Eintrag des Reset-Handlers Bit 0 nun gesetzt sein oder nicht? (In der ST-Doku scheint das entsprechende Bit im EPSR (Bit 24) dauerhaft auf eins gesetzt zu sein, wozu also die Forderung nach dem Thumb-Bit in den Einträgen der Vektortabelle?) - Muss das Bit 0 für die übrigen Handler gesetzt sein? - Woher "weiß" gcc, dass für einen Handler das Bit 0 in der Vektortabelle gesetzt werden muss? Erledigen das die Zeilen: ".thumb_set NMI_Handler,Default_Handler" (hier wird der Standard-Handler eingetragen). Wird die Direktive ".thumb_set" nicht nur dann aktiv, wenn das Symbol (in diesem Fall "NMI_Handler") nicht definiert ist, oder bewirkt die Direktive grundsätzlich die korrekte Erzeugung des Tabelleneintrags. - (Wozu) ist das Interworkbit überhaupt notwendig, da der STM32F doch gar kein Interwork kann (da kein ARM-Befehlssatz vorhanden). Ich danke euch schon jetzt für eure Antworten. Gruß
Beitrag #7120337 wurde von einem Moderator gelöscht.
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.