I promised to share my customized Em :: Blocks environment.
Keep the promise.

What is Em :: Blocks?
This is an IDE based on Code :: Blocks - a cross-platform, fast development environment with a built-in scripting language and very flexible customization oriented for C / C ++ development. The environment has built-in templates for a heap of different cases and the ability to connect any compilers.
EmBlocks, unlike CodeBlocks, is not cross-platform, it exists only under Windows.
But along with it comes a special version of the CodeSourcery toolchain, which allows for closer integration of the toolchain with the IDE. The bundled version is always fresh.
Advantages of EmBlocks
- fast, because written in native code
- extensible and well automated with scripts
- project templates can be customized to your taste
- you can change the dialogue of the project creation wizard
- does not require installation - you can carry it with you on a flash drive and easily transfer it with settings to another computer
- out of the box supports debugging via ST-Link and J-Link
- free
- well maintained on your own forum
An example of a project using EmBlocks - blinking LEDs.
I work most often with STM32F103C8, STM32F103VE, STM32F100RB, therefore the project has been modified by the templates for them. But adapting to other processors is not a problem. If there are specific questions - I will write how.
I customized it for myself:
- Edited project templates for STM32F10x medium density, high density, medium density line
- In the templates, I replaced the project structure by expanding into stm_lib, cmsis, cmsis_boot and Src folders.
- Updated cmsis version in project template to version 3.0
- Added support for ColinkEx debugger (it is not very flexible, but it works)
- Added processor selection in the create project wizard for firmware using ColinkEx
- Added “Flash w ColinkEx”, “Flash w ST-Link / V2 ″ to the Tools menu
- Changed default setting for ST-Link debugger from JTAG to SWD
- Added creation of HEX file for Debug target (standard only for Release)
- Added build options to USE_STDPERIPH_DRIVER
- Added search directories stm_lib \ src, stm_lib \ inc,. \ STM32_USB-FS-Device_Driver \ src,. \ STM32_USB-FS-Device_Driver \ inc, cmsis, cmsis \ boot
- Fixed gcc_arm.ld flash and memory size for STM32F10x_MD series on values ​​for STM32F103C8
Something else changed in trifles, but I do not remember.
To start working with EmBlocks, just unpack the archive and run emblocks.exe.
If someone doesn’t like the changes I made, the original is
on the developers website . The original splashscreen also lies inside the archive.
')
What changes give:
- The project is ready for firmware immediately after creation by the wizard
- There is everything you need to blink an LED
- The project is designed to use the STM32 StdPeriph Library (as necessary we add modules to the project in the stm_lib folder, archive at the end of the article)
- To work with the USB-FS library, you just need to throw it into the project directory and add it to the project. (archive with library at the end of the article)
- Fresh compiler does not swear for optimization thanks to the new version of CMSIS
- Easy to move project from CooCox IDE
- You can use CoolinkEx, which is quite popular with us and can be bought in Russia
Surely each of us has its own subtleties in the development, so I can’t cover all of them. I am going to tell you how to use all this in the following entries. Ask questions, I will try to take them into account when describing.
In general, I have an idea to lower the threshold of entry into the development under STM32, making it easier to start a set of convenient tools. Put and after 2 minutes you have Blink.EmBlocks and Library Archives: STM32F10x StdPeriph Library, STM32 USB-FS-Device driver I posted
on my site .
Please do not put hosting :) If you are not going to use right now - download later.