IDE Options - CodeBlocks, Workbench for STM32?

I’m new to embedded programming and programming compiled languages in general. I’ve gotten my Electron setup and tried a few simple programs using the Web IDE. However, while I find the Electron very cool, I’m sure that I will want to try out different boards in the future, and I like the idea of getting exposure to tools that will be more versatile than Particle’s ready made development tools for their products. With that in mind, how difficult would it be to use Workbench for STM32, or for that matter CodeBlocks to program my Electron, and what are the basic steps I would need to implement to use those IDE’s. I’m planning to rely mainly on C++.


How about VSCode which will be Particles Desktop IDE


Thank you, I will look further into VSCode. If anyone has comments on what it would take to make CodeBlocks or Workbench for STM32 viable to program my Electron with C++ I’d be very interested to know.


I haven’t had the chance to try Particle’s new desktop IDE yet although it looks very promising, but I can say that I currently use Atollic TrueStudio and it’s been very good.

Hi Paul,

Thanks for the suggestion. TrueStudio looks like an interesting option. Here’s a newbie question - how do I go about getting the libraries onto my machine so that they’ll compile in TrueStudio. For example the very basic code that I put together using the WebIDE included Particle.h and used Particle.keepAlive and Particle.function. I’m using Ubuntu. Cheers!

I’m not positive that I’m following your question but I’ll answer what I think you’re asking me.

If you’re asking about integration of your code to the Particle OS/SDK, then I just followed the guide that rickkas7 did for local compilation using Eclipse. Since TrueStudio is an Eclipse skin then this basically worked as written for me.

If you’re asking about other Particle libraries, then I just git clone them from their respective git repositories as submodules into my source tree, e.g. I’m using FlashEE and ParticleKeysHelper that way.

I hope that helps.

Thanks Paul. I will need to do some googling to fully decipher that, but I think that may be helpful (btw is this the Rickkas7 post you are referring to: From what I understand when building, the compiler and linker look for header files and class and function definition files locally, usually a subfolder of the IDE. Right now I don’t think I have the particle specific libraries in the proper place (on my computer). So my question was, how do I locate those files and then get them in the right spot so that the compiler and linker will find them. I hope that clarified my question. If my question doesn’t make total sense then it is likely a result of my not clearly understanding the mechanics of how the editing/compiling/linking process works for the electron (or other embedded systems for that matter). Thanks for taking the time to share your wisdom. Cheers

Hi Paul,

I set up TrueStudio and I’m trying to build a project that worked fine when I was using the WebIDE. I have spent hours now adding paths to the Include Paths under the C++ Compiler Directories. These path additions are in response to “No such file or directory” errors in relation to header files. I wanted to know from you if this is to be expected or am I completely missing something. The main.cpp basically includes Tinker and some basic Blynk code. From what I can tell there is no easy way to tell the compiler to include all subdirectories of the libraries I’ve brought into the project. Thanks.

Sorry I had missed your previous post.
Yes that guide or I think that turned into this official Particle doc:
in particular the “Create an Eclipse project” section. I pretty much followed just these steps, only slightly modifying it when/where Atollic was different to the Eclipse version shown in the images.

As to the paths, my Atollic settings (Debug Configuration and project Properties) look basically the same as those in the images in that document section, same goes for my Makefile.
I am also using a for including 3rd party libraries (I found this documented somewhere but am not positive where… although it may have actually been in the source tree… I think…).
My includes source for the FlashEE and DeviceKeyHelper libraries:

# Makefile for Main.bin as used by Particle make system

# Include directories
INCLUDE_DIRS += $(SOURCE_PATH)/../SubModules/FlashEE/firmware
INCLUDE_DIRS += $(SOURCE_PATH)/../SubModules/DeviceKeyHelper/src

# add C and CPP files - if USRSRC is not empty, then add a slash
CSRC += $(call target_files,,*.c)
CSRC += $(call target_files,../Shared/,*.c)
CSRC += $(call target_files,../SubModules/DeviceKeyHelper/src,*.c)

CPPSRC += $(call target_files,,*.cpp)
CPPSRC += $(call target_files,../Shared/,*.cpp)
CPPSRC += $(call target_files,../SubModules/FlashEE/firmware,flashee-eeprom.cpp)
CPPSRC += $(call target_files,../SubModules/DeviceKeyHelper/src,*.cpp)

#APPSOURCES=$(call target_files,$(USRSRC_SLASH),*.cpp)
#APPSOURCES+=$(call target_files,$(USRSRC_SLASH),*.c)

I’m not actually sure where you mean by “C++ Compiler Directories” as I can’t see that anywhere.
I have also added some Launch Groups but those were mainly just to get integration with my ST-Link for debugging.

I hope this helps.

[EDIT: Just a note, that my version of Atollic isn’t the latest, I’m still using 9.0.1 so it may require slightly different settings than yours if you’re using 9.1.0]