Gast
#3710172
Hallo, ich beschäftige mich gerade etwas mit dem STM32F105 und FreeRTOS. Ich wollte vorallem etwas mit der UART herumprobieren. Also habe ich alles nötige aus dem beigelegten Demoprogramm "CORTEX_STM32F103_GCC_Rowley" kopiert. Dachte ich zumindest. Das Programm funktionierte anfangs auch ganz ordentlich. Nur wenn man längere Zeit grössere Datenmengen über die UART geschickt hatte kam es zu Problemen, dass sich Lese- und Schreibpointer der Queues verschoben haben. Also nochmal von vorne angefangen und das komplette Beispielprogramm geladen. Hier hat es funktioniert. Offensichtlich habe ich doch etwas vergessen aus dem Quellcode mitzunehmen. Nach dem ich den Quellcode intensiver durchgeschaut hatte, fiel mir folgende Zeile auf: NVIC_PriorityGroupConfig( NVIC_PriorityGroup_4 ); Nach dem ich die Zeile in mein Projekt übernommen hatte, funktioniert nun auch mein zusammgebasteltes Demoprojekt. Um zu verstehen, was die Zeile macht habe ich mir den Quellcode angeschaut und anschliessen PM0056 ( http://www.st.com/st-web-ui/static/active/en/resource/technical/document/programming_manual/CD00228163.pdf ). Dort wird auf Seite 134 das Register beschrieben. Es wird festgelegt, dass es 16 Priotiäten und 0 Subprioritäten gibt. Abschliessend wollte ich wissen, wie der Reset Zustand ist um zu verstehen, was genau bei meinem ersten Versuch schiefgelaufen ist. Hier kommt nun die eigentliche Frage: tl;dr Laut PM0056 ( http://www.st.com/st-web-ui/static/active/en/resource/technical/document/programming_manual/CD00228163.pdf ) ist der Standardwert des Registers SCB_AIRCR 0xFA050000. => PRIGROUP[2:0] = 0b000. Laut Table 45 sind die gültigen Werte aber zwischen 0b011 und 0b111. Was bedeutet 0b000 bzw. wie vehält sich die MCU bzw. wie interpretiert es die Prioritäten (welche Aufteilung)? CU, Jay