STM32CubeIDE - ersättare?

C, C++, Pascal, Assembly, Raspberry, Java, Matlab, Python, BASIC, SQL, PHP, etc.
Användarvisningsbild
Icecap
Inlägg: 26681
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

STM32CubeIDE - ersättare?

Inlägg av Icecap »

Till att skriva programmet till de STM32 vi använder i sensorerna, använder vi STM32CubeIDE.

Det känns 'tungt' och osmidigt med många sökvägar som kan våra svårt att få till, konstiga fel som beror på att filer inte inkluderas fastän de finns i sökvägar osv.

Vi har en grupp produkter som i grunden gör samma sak och använder samma källkod-filer, dock med vissa parameter ändrade, ena eller andra typ hårdvara osv.

Jag har en grupp "gemensamma" filer (igen med parameter/funktioner/liknande beroende av det specifika projekt) så att en viss uträkning alltid sker med samma funktion, oavsett om det är för en eller fler kanaler t.ex.

När de funktioner är debuggad och stabila, kan vi enkelt skapa nya versioner utan att misstro basen.

Men STM32CubeIDE... suck.

Jag har upplevd andra - i mina ögon - bättre fungerande och enklare att skapa nya projekt i, dock till andra typer µC.

Finns det erfarenhet... Fel!

Det FINNS erfarenhet här om vilket IDE som kan fungera enklare och smidigare till STM32 - så några tips?
Såklart helst gratis - men betalning kan ske på sikt vid behov.

Så frågan i klartext:
Ett bra IDE till att skriva C till STM32?

Jag har koll på programmeringen (via 'STM32_Programmer_CLI.exe' och ST-LINK) så den delen kör som vanligt.
Användarvisningsbild
rvl
Inlägg: 7021
Blev medlem: 5 april 2016, 14:58:53
Ort: Helsingfors

Re: STM32CubeIDE - ersättare?

Inlägg av rvl »

Har inte provat men VSC (visual studio code) låter inte helt fel. Använder vsc till mycket annat och fick precis spam från ST att det finns.
hawkan
Inlägg: 3572
Blev medlem: 14 augusti 2011, 10:27:40

Re: STM32CubeIDE - ersättare?

Inlägg av hawkan »

Jag använder platformio som är ett tillägg i vscode
Användarvisningsbild
Klas-Kenny
Inlägg: 11858
Blev medlem: 17 maj 2010, 19:06:14
Ort: Växjö/Alvesta

Re: STM32CubeIDE - ersättare?

Inlägg av Klas-Kenny »

Jag har inga konkreta tips, men tycker att STM32CubeIDE funkar rätt bra.

Har ett antal projekt där som rattas av olika personer på olika datorer tämligen problemfritt.
Men gäller såklart att man alltid använder relativa sökvägar, och helst relativa till projektet snarare än workspace som olika personer tenderar hantera lite olika.

Är väl inte mycket där som är specifikt för just STM32CubeIDE utan allmänt Eclipse bara.
Användarvisningsbild
Icecap
Inlägg: 26681
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Re: STM32CubeIDE - ersättare?

Inlägg av Icecap »

Hmmm... jo, mycket av problemen kan mycket väl vara sökvägar som strular.

Jag håller på att flytta allt <gemensamt> till ett enda bibliotek och sedan ha <projektet> som sådan vara en projekt-definition i 'main.h' i grova drag.

Det verkar vara så att man måste ange sökvägen till varenda underbibliotek, istället för att ge till roten där de finns.

Jag ska kolla mer i relativa sökvägar, projekt ska ju kunde kopieras-och-ändras på ett vettigt sätt.
Användarvisningsbild
Icecap
Inlägg: 26681
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Re: STM32CubeIDE - ersättare?

Inlägg av Icecap »

Ja, sökvägar är ganska säkert svaret.

Lite förklaringar först:
"C:/Users/'jag'/Workspace": Ett bibliotek där jag har alla projekt och liknande - i var deras underprojekt-filmapp.
"Drivers": Ett bibliotek under "Workspace" där alla STM32-drivers finns, en redig trä-struktur där.
"SharedFiles" : Ett bibliotek under "Workspace" med en samling .C-filer som används som källkod/funktionskod i projekten.

"Projekt_A" är mitt aktuella här o nu.

STM32CubeIDE är ju glad för att strö lite olika filer runt så under "Workspace" finns själva projektbiblioteket och där kan STM32CubeIDE sprida sitt skit fritt.

Mina projekt ska alltså dels ha källkod från Workspace/Projekt_A/Core/Inc (.H-filer) och Workspace/Projekt_A/Core/Src (.C-filer)
och dels från SharedFiles. (.C och .H filer)

Det sker inklusion från Drivers/CMSIS/Device/ST/STM32G0xx/Include (.H-filer)
och Drivers/STM32G0xx_HAL_Driver/Inc (.H-filer)

STM32CubeIDE->under projektets Properties->Paths and Symbols->Includes har jag:
* /${ProjName}/Core/Inc
* /${ProjName}/Core/Src
* /${ProjName}/Core/Startup
* C:\Users\'jag'\Workspace\SharedFiles
* C:\Users\'jag'\Workspace\Drivers\CMSIS\Include
* C:\Users\'jag'\Workspace\Drivers\CMSIS\Device\ST\STM32G0xx\Include
* C:\Users\'jag'\Workspace\Drivers\STM32G0xx_HAL_Driver\Inc

STM32CubeIDE->under projektets Properties->Paths and Symbols->Source Location har jag:
* /Projekt_A

Jag har testat att lägga in sökväg till varenda av de "slut-biblioteker" som används - men likaväl kan jag inte få en fil i ett underbibliotek att inkludera en annan fil i ett annat underbibliotek.

Jag har testat att bara ha de överordnade sökvägar - men då hittas knappast några filer.

Jag anser att det är viktigt att behålla strukturen i "Drivers" då den är original från ST och vid en uppdatering ska den "bara" uppdatera, inte flytta runt på saker.

Tanken är att jag har ett antal ganska likvärda projekt som alla använder de gemensamma funktioner. Jag har en definitionsfil som flaggar vilka funktioner som aktiveras medels flaggor så alla funktioner kan bli inkluderat - men innehållet sorteras efter vilka flaggor det finns.

Tänk att ett projekt har 1 kanal, ett annat har 2 kanaler, uträkningar som ska fixas sker mer varje kanals parameter men är annars de samma.

Det står klart för mig att jag har missat något kapitalt - men vad?
Användarvisningsbild
Icecap
Inlägg: 26681
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Re: STM32CubeIDE - ersättare?

Inlägg av Icecap »

Nu tror jag att jag har hittat något!

Under Project->Properties->C/C++ General->Paths and Symbols, flig "Source Location" la jag in alla sökvägarna, till de olika bibliotek som används.

Plötsligt kan skiten kompilera och strukturen i "Project Explorer" är ganska platt.

Men när jag återser "Source Location" finns det bara "Projekt_A" samt "Projekt_A/SharedFiles".

Nåväl, bara skiten fungerar.

EDIT: Och det fungerar INTE. Det uteslöt alla källkoder och då kompilerar <ingenting> ju utan fel.

Mer EDIT: Lade in 'bas'-biblioteken igen, kompilerar utan annat än den vanliga varning som är utan betydelse.
Skriv svar