Technologies

From a customer:

btw, I used to have -well, still have somewhere-, a license for ICCAVR6, which I used extensively for similar projects for experiments at CERN; your tools have played their part in the discovery of the Higgs boson, no kidding

JumpStart C/C++ for Cortex with GCC Compiler

NOTE: you can write pure C programs with this product as well.

ImageCraft’s new release (“V9”) of the JumpStart compiler addresses one of the most glaring problems with JumpStart C for Cortex-M (”V8”): how do we ensure that we can build all the third party and open source stacks, as well as examples both from silicon vendors and those found on the web? The solution is obvious: we are moving to adopt GCC as the underlying compiler in the new JumpStart C++ for Cortex product. With GCC’s dominance in the Linux and other Open Source projects, GCC is now the standard third party compiler that most (if not all) silicon vendors support in their example and library releases.

From our users’ point of view, ImageCraft’s core competencies have not changed:

Support: ImageCraft has been in business supporting embedded development since 1994. Our customer base ranges from consulting engineers, to Fortune 500 companies, and to professors teaching classes at institutes of higher education. ImageCraft understands the importance of products that work “out of the box”; and when customers have an issue or questions, timely support is of utmost importance. These do not change, regardless of the compiler choice.

Professional features: the IDE (Integrated Development Environment) has all the features you would expect: a code-aware editor, code browsing, workspace and project management with multiple-target support, plus compiler and debugging integration.In addition, unlike IDEs written in Java or other slower languages, CodeBlocks is quick to start, as it is written natively in GCC itself.

Ease of use: we have fine-tuned and continue to enhance the CodeBlocks IDE to offer user-friendly features, such as generating the compiler/linker commands automatically by allowing a user to select the target device by name.In addition, ImageCraft’s JumpStart API (JSAPI) makes it easy to program the MCU’s peripherals at a functional level, rather than the tedium of manipulating the MCU’s I/O register level.

Sensible licensing policy and pricing: commercial embedded tools tend to be expensive. Indeed, ImageCraft pioneered the concept of “low cost professional embedded tools” back in 1994, with a professional high-quality $100 HC11 compiler. Unlike companies which still charge $7000+ for the initial license and $1000+ for annual support maintenance, our prices have remained significantly less than that.

NO Single Vendor Lock-in: it is common for a silicon vendor provide their own IDE or GUI tools, targeting (of course) only their own MCU offerings. Nowadays it is also common for a silicon vendor to buy a third party compiler vendor company, and then release the vendor’s previous commercial IDE tool “for free”, again, for the vendor’s own products.

This may sound appealing to end users, except that any support which that compiler originally provided for other silicon vendors’ products would most likely disappear in future releases.

Third Party Libraries

And now, with adopting GCC, we are adding one more major feature: the ability to use all the open source libraries and the third party stacks provided by the silicon vendors. We will implement simple-to-use-and-install schemes for downloading and building popular third party stacks, so that the users do not have to collect bits and pieces from all over the place. In addition, JumpStart C++ can import projects created by ST’s graphical CubeMX tools. We expect to support other vendors’ GUI tools in a similar fashion.

C Support Is Still Here

Of course, moving to C++ is a major step. Fortunately, GCC supports pure C, including the ISO C99 Standard and the 0x Standard, and since JumpStart C for Cortex-M (“V8”) uses our Standard C90/C99 compiler, your source code can be recompiled with minimal effort. We even include a V8 project importer command in the V9 IDE, so that you can convert your existing projects effortlessly. You can continue to write entirely in C if you wish.

Optionally, you can start with the simplest but most useful C++ enhancements such as objects for encapsulation, variable length array, literal structures etc. that are helpful for simplifying your C code, without using the more complex aspects of C++.

Footnote: AVR Compiler Support

Given the limited memory available in the Atmel AVR, and since our customers have a large number of existing projects written in our ICCAVR/JumpStart C for AVR, we do not feel it necessary to switch to GCC for the AVR product at this time. The only advantage might be to be able to compile some of Atmel’s latest software releases in their “walled garden” environment. However, the tradeoffs do not currently seem worth doing so. Therefore, JumpStart C for AVR remains our current AVR release.

Support Cortex-M0, Cortex-M3, M4, and M7 series from all major vendors.

Easy to use JumpStart API. Get started in Cortex-M programming in minutes, not days or months.

Built-in flash downloader.

JumpStart C++ for Cortex Come in Two Different Editions

STD (Standard) - for basic commercial development.

NC (Non-Commercial) - for students and hobbyists. Non-commercial use only.

More comments from a customer Patrick Cowan:

Your business model is awesome, and I think it has huge potential to sell your software by making it very easy to use and basically idiot-proof. I don't know much about software, but I was able to learn how to use an Arduino fairly easily. The idea of your software being that same level of simple/easy, but working on other processors is very appealing. In fact we found your company existed because I told [my partner] that someone HAD TO be making software like this. After doing some google searching we found you guys!

CodeBlocks IDE

ImageCraft enhanced the Open Source CodeBlocks IDE to add user friendly features such as selecting target device via point-and-click, instead of writing complicated linker files. We integrated it with our own JumpStart Debugger including the ability to see the MCU's IO register content. More information and screenshots here.

JumpStart Debugger

The integrated debugger is described here. It requires a separate license purchase to enable all of its features.