Forum: Mikrocontroller und Digitale Elektronik STM32 HAL Layer Code Generator default values


von Wolfram L. (amazon)


Lesenswert?

Hallo, ich verwende bisher ganz erfolgreich CodeIDE. Ich nutze für die 
Entwicklung den HAL Layer der im Großen und Ganzen auch ganz gut 
funktioniert. Meine Frage ist:
Immer wenn ich IOs für neue Funktionen im IOC File definiere, generiert 
mir die IDE neuen Quellcode - soweit ok. Für zwei Exti GPIO Inputs muss 
ich jedoch andere Interrupt-Prioritäten einstellen, als generiert 
werden. Bisher habe ich dann eben immer den generierten Code manuell 
geändert. Manchmal vergisst man das jedoch: Z.B.
von:
1
  /* EXTI interrupt init*/
2
  HAL_NVIC_SetPriority(EXTI0_IRQn, 0, 0);
3
  HAL_NVIC_EnableIRQ(EXTI0_IRQn);
4
  HAL_NVIC_SetPriority(EXTI1_IRQn, 0, 0);
5
  HAL_NVIC_EnableIRQ(EXTI1_IRQn);
geändert nach
1
  /* EXTI interrupt init*/
2
  HAL_NVIC_SetPriority(EXTI0_IRQn, 5, 0);
3
  HAL_NVIC_EnableIRQ(EXTI0_IRQn);
4
  HAL_NVIC_SetPriority(EXTI1_IRQn, 5, 0);
5
  HAL_NVIC_EnableIRQ(EXTI1_IRQn);
Gibt es eine Möglichkeit z.B. die Interrupts defaultmäßig zu ändern, das 
die gleich richtig eingestellt sind ?
Es gibt sicher die Möglichkeit über User Statements Code hinzuzufügen 
die die Interrupts dann später passend umprogrammiert, find ich aber 
irgendwie unschön.
Vielleicht hat einer eine Idee.

: Bearbeitet durch User
von Stefan F. (Gast)


Lesenswert?

Der generierte Code enthält Kommentare die dir anzeigen, wo du deinen 
eigenen Code einfügen sollst. Beispiel:
1
/* USER CODE BEGIN 0 */
2
3
/* USER CODE END 0 */
1
/* USER CODE BEGIN 1 */
2
3
/* USER CODE END 1 */
1
/* USER CODE BEGIN Init */
2
3
/* USER CODE END Init */
1
/* USER CODE BEGIN SysInit */
2
3
/* USER CODE END SysInit */
1
/* USER CODE BEGIN 2 */
2
3
/* USER CODE END 2 */
1
/* USER CODE BEGIN 3 */
2
/* USER CODE END 3 */

Lass den generierten Code einfach stehen und überschreibe dessen 
Interrupt-Konfiguration darunter durch deine eigene. Du darfst das geren 
unschön finden. Für Schönheitswettbewerbe wurde Cube MX nicht gemacht.

von uff basse (Gast)


Lesenswert?

Wolfram L. schrieb:
> Hallo, ich verwende bisher ganz erfolgreich CodeIDE.

So so, CodeIDE .....  da wird wieder eine neue (alte) Sau
durchs Dorf getrieben.

von Wolfram L. (amazon)


Lesenswert?

Nee das ist keine neue Sau, CodeIDE gibts schon viele Jahre...

von uff basse (Gast)


Lesenswert?

Wolfram L. schrieb:
> das ist keine neue Sau

Deswegen:

uff basse schrieb:
> neue (alte) Sau

von Karl Georg (Gast)


Lesenswert?

Wolfram L. schrieb:
> Gibt es eine Möglichkeit z.B. die Interrupts defaultmäßig zu ändern, das
> die gleich richtig eingestellt sind ?

Sind sie nicht in der NVIC Tabelle enthalten?

von uff basse (Gast)


Angehängte Dateien:

Lesenswert?

Karl Georg schrieb:
> Sind sie nicht in der NVIC Tabelle enthalten?

Wenn man CubeMX nutzt und seine Einstellung immer brav
abspeichert, dann schon.

Wolfram L. schrieb:
> keine neue Sau

Vielleicht muss man doch mal eine neue Sau nehmen ....

von Johannes S. (Gast)


Angehängte Dateien:

Lesenswert?

bei den GPIOs ist doch die Einstellung für die NVIC Prio.

von Wolfram L. (amazon)


Lesenswert?

ja die sind da, aber leider ausgegraut...

von Johannes S. (Gast)


Angehängte Dateien:

Lesenswert?

bei mir auch, aber wenn ich den Int da aktiviere, dann kann ich im NVIC 
Tab die Prio einstellen.

von Wolfram L. (amazon)


Lesenswert?

Hallo Karl,
ja hab ich irgendwie übersehen. Ich dachte man müsste die in der 
jeweiligen Section (GPIO) einstellen, aber dort sind die 
Interruptparameter disabled. In Aber in der NVIC Übersicht sind sie 
drin, und dort kann man sie auch einstellen. Und wenn mans speichert 
bleiben die auch persistent - ;-) Vielen Dank auf jeden Fall-

von Wolfram L. (amazon)


Lesenswert?

alles fein, habs gefunden...

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.