Richard Man at Imagecraft recently offered a free Jumpstart Microbox to bloggers willing to review it. The kit includes ST Nucleo board with a STM32F030R8 ARM MCU, an add-on board, the Imagecraft compiler, and a book on embedded C programming. I've done a lot of 8-bit AVR development, and had intended to test out some of the STM32 MCUs, so I took Richard up on his offer. The price point is much higher than a $4 Maple Mini clone with stm32duino, but Richard says they're trying to compete with IAR & Keil, not arm-gcc.
Before the hardware arrived I downloaded the IDE, which is based on Code::Blocks. It includes an annoying license manager (I haven't found a licence manager I didn't hate). On Windows 7E-64, the IDE identifies itself as Imagecraft 8.12. Unlike gcc, Imagecraft is not a full C++ compiler. Once the loads, the project options require you to pick your MCU, which defaults to the STM32F030R8.
For debug/download interface it only supports SWD. All STM32 chips have a UART bootloader in ROM that allows flashing the chip without a SWD link, using software like stm32flash. When I pointed this out to Richard he replied saying they would likely add support for it. The project template includes a main.c with the implementation of putchar for printf to work. I'll look at the compiler and Jumpstart libraries in more detail in a future post.
The jumpstart tutorial book is very basic. I've been programming in C and C++ for 25 years, so there was nothing in it I didn't already know. I didn't like the examples that included preprocessor directives (i.e. #define END 90) and code. Good coding practice is to put preprocessor defines in a separate file like config.h. The tutorial doesn't mention fixed-point, which I think should be preferred over floating point in embedded systems. Richard responded that their compiler doesn't (yet) support fixed point (gcc does), so he hadn't mentioned it in the tutorial. He said it will eventually be added to the compiler, but no promises as to the release date.
I'll finish this first part of my review with saying that I think, on one hand, that it would be better to have noobs reviewing the Jumpstart Microbox since the target market is not old C programmers like me that live by bash, vi, gcc, and objdump. On the other hand, noobs aren't going to know about the UART ROM bootloader, so I suppose I make a good (and cheap) beta tester for Imagecraft.