mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik cortex-m3 rtx-rtos stop mode


Autor: as (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hi,

ich benutze das rtx rtos von keil auf dem stm32f100 prozessor mit 
cortex-m3 kern.
für meine applikation ist es nötig, in den stop-mode zu gehen. ich 
verwende die konfigs aus dem beispiel für den stop mode aus der st-bib.
den aufruf habe ich ebenfalls aus dem beispiel in meinen task 
übernommen.

PWR_EnterSTOPMode(PWR_Regulator_LowPower, PWR_STOPEntry_WFI);

als ergebnis des aufrufs lande ich allerdings immer im hard fault 
handler. ich habe den fehler verfolgt und offenbar stimmt etwas mit dem 
zugriff aufs system control register nicht. die adresse sollte aber 
eigentlich stimmen:

#define SCB_SysCtrl              ((uint32_t)0xE000ED10)

der aufruf sieht in der source der standard lib so aus (nicht für rtx, 
darauf habe ich keinen zugriff, müsste aber gleich sein):

*(__IO uint32_t *) SCB_SysCtrl |= SysCtrl_SLEEPDEEP_Set;

mit der maske

#define SysCtrl_SLEEPDEEP_Set    ((uint32_t)0x00000004)

hat jemand dazu eine idee?
den scheduler vorher mit tsk_lock(); anzuhalten hat auch nicht geholfen.

Autor: as (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
übrigens:
wenn ich exakt das selbe (copy paste) nicht im os-task sondern in main 
durchführe ohne das rtx os zu aktivieren funktioniert es einwandfrei.

Autor: cb (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vergleich doch mal die CPU Modi im vor und nach OS initialisierung, bzw 
im main und im task kontext.

Autor: as (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ah ja! ist tatsächlich nach der os init im unprivileged mode. hab auch 
gefunden, wie man das für die einzelnen tasks oder für alle tasks 
einstellt.
wieder einen schritt weiter in der lernkurve ;) Danke!
Gruß!

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.