Technologies

The IDE (Integrated Development Environment) is a compiler toolset's interface to the users. A minimal IDE manages projects and provides basic editing functions. An advanced IDE additionally provides syntax and programming-language-aware functions such as code completion, code folding, pop-up hints to function declarations, and integration with a source-level debugger.

The CodeBlocks IDE is an Open Source project which provides all of these advanced features. However, we at ImageCraft were not satisfied with just repackaging CodeBlocks as is. We added CodeBlocks IDE usability enhancements, such as allowing users to select a target device by name so that they do not need to write cumbersome "linker files". Instead of leveraging the free but hard-to-use (and outdated!) GDB debugger, we wrote the JumpStart Debugger from scratch, designed to be tightly integrated with the CodeBlocks IDE.

Code::Blocks IDE (C::B) is an IDE with the following features:

Workspace / Project support. A project organizes files for an output "executable" for the microcontroller to run. Multiple projects can be organized in a single workspace.

User-friendly project settings: select the target device by name, and the IDE generates the right compiler and linker flags suitable for the memory layout of the devices without writing a cumbersome "linker file".

Modern editor with syntax-aware and code-browsing features: code completion; function declaration pop-up; right-click to search for a symbol's declaration, its implementation, or "find all references"; etc.

Integrated flash downloader to program the project output onto the target microcontroller.

Integrated JDB JumpStart Debugger.

View of the CodeBlocks IDE. Note the white pop-up displaying the function's declaration.

The Project Options dialog. Note that you select the Cortex-M device by the manufacturer and name, and it sets up the memory addresses for the compiler/linker automatically. This is one of the many user friendly enhancements we added to CodeBlocks.

CodeBlocks IDE is Open Source. Per its GPL requirements, you may download the modified source code (trunk SVN8162) here.

“JumpStart API allows you to focus on the application coding and not ARM coding. In a few minutes I had a configured and working skeleton for my hardware.” – M. Barber

Hardware:

The hardware provides everything you need to get started with ARM® Cortex®-M programming. The ST Nucleo board is Arduino form-factor compatible with a powerful Cortex®-M chip and the ST-LINK/V2 debug pod on board.

Software:

The JumpStarter C compiler includes an easy-to-use, fast Integrated Development Environment (IDE) and a friendly debugger (separate license required for the debugger). The JumpStart API allows you to get started writing applications without getting bogged down in the tedium of system and peripheral setup.

Examples:

Start programming the Cortex®-M devices in C immediately by downloading one of the ready-to-run example programs. Complete source code and projects with tutorials included. Learn C by modifying existing projects and following the tutorials.

eBook:

A textbook-style tutorial reference ebook “C for Everyone: The JumpStart Guide to C”, written by authors with 30+ years of experience in writing C compilers and providing user support, contains all the information you need to become an effective C programmer.

ACE™ (Arduino Compatible Education) Shield Features

The expansion hardware for the JumpStart MicroBox is provided as an Arduino-type shield. It is a “kitchen sink” design intended especially (though not exclusively) to be suitable for educational use. The following features are included on this shield (the MCU peripheral functions used are listed in parentheses):

8x8 LED matrix (I2C)

2 line OLED (GPIO)

RTC module with battery (I2C)

Serial EEPROM (I2C)

Micro-SD card (SPI)

Thermistor temperature sensor (ADC)

Optical Light Sensor (ADC)

2 wires output to drive a small speaker (DAC)

Two user buttons (GPIO)

Communication over the USART is accomplished through the ST-LINK/V2 VCOM port. With these peripherals, all major features of the STM32F030 (except USB and CAN) can be exercised.

Comments from Wesley Roberson:I used Arduino for quite a few years tinkering and building projects. Recently, I decided to take an idea out of the world of Arduino and into the world of true embedded systems. I started my search for a simple way to create an embedded system that i could put into a commercial product. I found the answer and then some by using JumpStart MicroBox from ImageCraft. I found ImageCraft originally by searching for a compiler to use with avr MCUs but after a month and a half of reading and looking at code. I was no closer to my goal of creating a commercial MCU. Then Richard at ImageCraft suggested i try their JumpStart MicroBox with the JumpStart API.

After looking at a few examples, I knew this was going to be a much easier and faster way for me to get my code onto a micro controller. I ordered a Jumpstart Microbox kit, and it was at my door a few days later. The compiler I used was ImageCraft's JumpStart C for Cortex M series micro controllers. I have very little experience with other Cortex-M C compilers, but I had their example programs running within 30 minutes. A 32 bit 84 MHz micro controller was under my control (a mechanical engineer with little c programming experience). The example code and documentation from ImageCraft was very easy to follow and understand.

I was able to use a 32 bit micro controller just like i would an Arduino. I couldn't be more impressed with this product. If you are interested in making a commercial product or learning more about micro controllers, and you want or need to use a powerful micro controller. JumpStart MicroBox is the answer period. The last thing and probably the best thing about this product is the customer service. The guys at ImageCraft would answer any question I had within minutes no kidding. They even answered questions i didn't know i would need to ask. Excellent job ImageCraft.