Forum: Compiler & IDEs STM32CubeIDE: F3 springt zu WEAK function


von Wie nur? (Gast)


Lesenswert?

Ich versuche mal, mein Problem zu beschreiben:
STM32CubeIDE erzeugt z.B. in main.c eine Funktion
MX_USART1_UART_Init();
Mit F3 springt man dann ja zur Defintion dieser Funktion, hier in der 
Datei usart.c
In dieser Definition wird zum Schluß wie immer eine Init-Funktion 
aufgerufen, hier
HAL_HalfDuplex_Init(&huart1)
Mit F3 springe ich dann zu dieser Definition, in der dann irgendwo
HAL_UART_MspInit(huart);
steht. Und hier ist mein Problem: Wenn ich da mit F3 zur Definition 
springe, lande ich bei
__weak void HAL_UART_MspInit(UART_HandleTypeDef *huart)
Aber das ist gar nicht die Funktion, die aufgerufen wird, sondern
void HAL_UART_MspInit(UART_HandleTypeDef *huart)
also ohne __weak. Das Prinzip mit weak habe ich jetzt nachgelesen, ist 
gar nicht so schlecht.
Aber wie bringe ich jetzt die IDE dazu, statt zur __weak zur wirklich 
genutzten Funktion zu springen???

von Oliver S. (oliverso)


Lesenswert?

Schreib einen Bug-Report.

Oliver

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

Kontrolliere ob die C-Datei mit "HAL_UART_MspInit()" überhaupt mit 
übersetzt wird.

von Mike R. (thesealion)


Lesenswert?

Ich habe das ganze gerade mal bei mir getestet.

Beim drücken von F3 springt er erst einmal zu __weak Funktion, da diese 
in der aktiven Datei steht.

Wenn du jetzt noch einmal F3 drückst, springt er zur entsprechenden 
Declaration in der Header Datei.

Mit einem dritten druck von F3 öffnet sich jetzt (bei mir) ein Fenster 
mit allen Implementationen der Funktion und man kann sich die richtige 
aussuchen.

von Wie nur? (Gast)


Lesenswert?

OK, das klappt bei mir auch. Danke. Ist aber etwas doof, zukünftig immer 
vorsichtshalber 2 x F3 zu drücken. Aber besser als gar nichts.

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.