Forum: Compiler & IDEs STM32 und Reset Handler


von High Performer (Gast)


Lesenswert?

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ß

von Uwe Bonnes (Gast)


Lesenswert?

Vermutlich fehlt Dir die libusb-1.0.

von Uwe Bonnes (Gast)


Lesenswert?

Sorry, falscher Thread!

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
Noch kein Account? Hier anmelden.