Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

STM32CubeIde e progetti C++

Raccolta di codici sorgenti

Moderatore: Foto UtentePaolino

0
voti

[1] STM32CubeIde e progetti C++

Messaggioda Foto Utentestefanoxjx » 2 apr 2022, 20:13

Ciao a tutti,
sono nuovo dell'ambiente STM32CubeIde (sto usando la versione 1.9.0 sotto linux) e volevo creare un progetto in C++, niente di più facile ||O
Ho quindi importato il mio file IOC in un nuovo progetto ed ho generato il codice.
A questo punto ho eseguito una compilazione completa per assicurarmi che tutto fosse ok ed effettivamente tutto funziona alla perfezione.
Ho quindi eseguito la conversione in C++ tramite l'apposita voce "Convert to C++" ed ho provato a ricompilare e tutto sembra ok.
A questo punto ho rinomintato (sempre tramite ide) il file main.c in main.cpp e da qui in poi la compilazione non funziona più.
Ricevo questo errore:
Codice: Seleziona tutto
/opt/st/stm32cubeide_1.9.0/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.10.3-2021.10.linux64_1.0.0.202111181127/tools/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/bin/ld: ./USB_DEVICE/Target/usbd_conf.o: in function `HAL_PCDEx_LPM_Callback':
/home/stefano/Scrivania/Test-CubeIde/Test/Debug/../USB_DEVICE/Target/usbd_conf.c:620: undefined reference to `SystemClock_Config'
collect2: error: ld returned 1 exit status
make: *** [makefile:83: Magic.elf] Error 1
"make -j8 all" terminated with exit code 2. Build might be incomplete.


Ho provato a rigenerare il progetto in vari modi, tra qui selezionando C++ già durante la creazione del progetto, ma sempre con gli stessi risultati.
Ovviamente di provare a creare una classe al momento nemmeno ci ho pensato.

Probabilmente è un argomento già trattato in questo forum, ma se faccio la ricerca come "cubide c++" la riga di ricerca viene automaticamente cambiata in "+cubeide" e quindi non riesco ad avere i risultati che vorrei vedere.

Grazie a chiunque mi potrà aiutare.
Avatar utente
Foto Utentestefanoxjx
15 4
 
Messaggi: 46
Iscritto il: 8 ago 2006, 13:06

1
voti

[2] Re: STM32CubeIde e progetti C++

Messaggioda Foto Utentestefanoxjx » 2 apr 2022, 23:01

Soluzione trovata!!!
Oltre a fare tutto quello che ho scritto sopra, bisognava anche anteporre extern "C" davanti al prototipo della funzione SystemClock_Config
Avatar utente
Foto Utentestefanoxjx
15 4
 
Messaggi: 46
Iscritto il: 8 ago 2006, 13:06

0
voti

[3] Re: STM32CubeIde e progetti C++

Messaggioda Foto Utenterugweri » 3 apr 2022, 13:13

Ciao Foto Utentestefanoxjx, ti andrebbe di scrivere brevemente la motivazione per cui l'aggiunta dello specificatore citato risolve il problema? Credo che sarebbe molto utile per i futuri lettori comprendere perché esso risulta necessario in situazioni come la tua.
Avatar utente
Foto Utenterugweri
5.948 2 8 13
CRU - Account cancellato su Richiesta utente
 
Messaggi: 1368
Iscritto il: 25 nov 2016, 18:46

1
voti

[4] Re: STM32CubeIde e progetti C++

Messaggioda Foto Utentestefanoxjx » 4 apr 2022, 9:52

Ciao rugweri, senza reinventare l'acqua calda metto un link che lo spiega in maniera molto semplice: https://embeddedartistry.com/blog/2017/05/01/mixing-c-and-c-extern-c/
Avatar utente
Foto Utentestefanoxjx
15 4
 
Messaggi: 46
Iscritto il: 8 ago 2006, 13:06


Torna a Firmware e programmazione

Chi c’è in linea

Visitano il forum: Nessuno e 4 ospiti