- Akku Tests und Balkonkraftwerk Speicher         
Ergebnis 1 bis 8 von 8

Thema: STM32 - Interrupts

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Roboter Genie Avatar von White_Fox
    Registriert seit
    04.10.2011
    Beiträge
    1.473

    STM32 - Interrupts

    Ave

    Ich bin grad dabei, mich mal mit richtig mit Interrupts beim STm32 auseinander zu setzen.

    Der STm32 hat ja keine interrupt-Vektoren mehr wie der AVR (wo der Interrupt zu einem Sprungbefehl führt, sondern springt die jeweilige Adresse direkt an.

    Jetzt wollte ich mal gerne wissen wie ich das in C umsetze. Ich kann ja schlecht eine Adresse irgendwo in meinen Code reinknallen. Im Netz finde ich nur Beispiele mit der Standard-Bibliothek (die mir zudem auch nicht gerade einleuchten), ich arbeite aber nur mit den Registern. Hat da jemand vielleicht irgendein Beispiel?

  2. #2
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    03.09.2009
    Ort
    Berlin (Mariendorf)
    Beiträge
    1.023
    Zitat Zitat von White_Fox Beitrag anzeigen
    Der STm32 hat ja keine interrupt-Vektoren mehr wie der AVR (wo der Interrupt zu einem Sprungbefehl führt, sondern springt die jeweilige Adresse direkt an.
    Irgendwo muss doch der Ort der Service Routine bzw. deren Startadresse fix hinterlegt sein oder vom Programm bestimmt werden. Wie ist das denn im STm32 technisch gelöst? Ohne Adresssprung geht das doch irgendwie nicht, oder? Gibt es dort evtl. Register für die Sprungadressen anstelle der gewohnten im Code eingebetteten Sprungtabelle ?

  3. #3
    Hallo,

    um genau zu sein, möchtest du dich mit den Interrupts des CortexM auseinander setzen. Vielleicht hilft die Erkenntnis weiter?

    Sehr nützlich ist es auch sich das startup file des CortexM anzuschauen:
    https://github.com/Counterfeiter/ANN..._stm32f407xx.s

    Oben mal ein Beispiel aus einem beliebigen Projekt. Die Datei ist ein Template und fast bei jedem Projekt gleich aufgebaut.

    VG

    Basti

  4. #4
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    07.03.2011
    Beiträge
    1.899
    Ich kenne den STM nicht, aber eine kurze Google-Suche bringt follgendes zu Tage

    Derartige Funktionen sind als extern „C“ void zu deklarieren und besitzen fest vorgegebene Namen, die es dem Compiler ermöglichen, die ISR dem richtigen Interrupt zuzuordnen. Die Namen der Eventhandler folgen immer dem Muster Gerät_IRQHandler.
    Und als Beispiel:

    extern "C" void TIM7_IRQHandler() {

    Thats it. Das entspricht dem, was ich von anderen CPUs so kenne. In einem der Systemheader steht dann mehr zum jeweiligen Symbol (hier xxx_IRQHandler) und in einem Linkerfile etwas zu den absoluten Adressen. Den realen Mechanismus der jeweiligen CPU muß man eigentlich nicht kennen, C ist ja nicht Assembler.

    MfG Klebwax
    Strom fließt auch durch krumme Drähte !

  5. #5
    Erfahrener Benutzer Roboter Genie Avatar von White_Fox
    Registriert seit
    04.10.2011
    Beiträge
    1.473
    @Klebwax:
    Ich glaube, das von dir zitierte Beispiel kenne ich. Da wird mit der STL gearbeitet...das war der Grund, warum ich das nicht versucht habe nachzubauen.

    Ich hab in der stm32f446xx.h nichts gefunden, was irgendwie nach Interrupthandler aussieht.

  6. #6
    Wie gesagt, steht alles im startup-asm-file... Std-Perif. oder HAL-lib spielt keine Rolle.
    Die Einsprungadressen sind dann im Linker-File absolut definiert.

Ähnliche Themen

  1. RC Transmitter auf stm32 Basis
    Von The Man im Forum Vorstellungen+Bilder von fertigen Projekten/Bots
    Antworten: 1
    Letzter Beitrag: 07.09.2014, 19:28
  2. STM32 + Kamera
    Von Wsk8 im Forum ARM - 32-bit-Mikrocontroller-Architektur
    Antworten: 15
    Letzter Beitrag: 11.03.2014, 21:26
  3. sind ALLE Interrupts wieder ON nach Enable Interrupts?
    Von sBronco im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 2
    Letzter Beitrag: 19.07.2011, 15:58
  4. stm32 discovery
    Von drew im Forum ARM - 32-bit-Mikrocontroller-Architektur
    Antworten: 17
    Letzter Beitrag: 07.04.2011, 17:55
  5. STM32 + blinkende LED
    Von Mountainking im Forum Konstruktion/CAD/3D-Druck/Sketchup und Platinenlayout Eagle & Fritzing u.a.
    Antworten: 41
    Letzter Beitrag: 11.11.2009, 15:48

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

12V Akku bauen