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.