You are viewing an older revision! See the latest version

mbed Compiler

Take the mbed Tour

Instant access to your lightweight C/C++ microcontroller development environment

The mbed Compiler provides a lightweight online C/C++ IDE that is pre-configured to let you quickly write programs and compile and download them to run on your mbed Microcontroller. In fact, you don't have to install or set up anything to get running with mbed. Because it is a web app, you can log in from anywhere and carry on where you left off, and you are free to work on Windows, Mac or Linux, or all three.

/media/uploads/simon/cross-platform.png

It may be online and lightweight, but it is also powerful. The compiler uses the professional ARMCC compiler engine, so it produces efficient code that can be used free-of-charge, even in commercial applications. The IDE includes workspace version control, code formatting and auto-generation of documentation for published libraries. The mbed tools are focused on prototyping and are designed for fast experimentation, and complement other professional production-level tools; you can even export directly to other toolchains if you choose, as you progress to productise your design.

You can publish projects directly from your compiler workspace to the mbed.org website to share code with others, and pull existing libraries in to your workspace to get a head start.

Feature Highlights

Online Compiler IDE

Every mbed user account gets their own private compiler workspace which contains their programs. This is private to you, and available wherever you login to mbed.

The IDE includes a full code editor including syntax highlighting, standard editor keyboard shortcuts, copy/paste, tabs etc, and even a code auto-formater. This is where you work on your personal workspace, with multiple files, folders, programs, including drag 'n' drop folder interface:

http://mbed.org/media/uploads/simon/beta-tabs.pnghttp://mbed.org/media/uploads/simon/beta-find02.png

The editor also includes features like find and searching across multiple files and filetypes; for example, searching across your whole program. When you search, the results will appear as a list in the compiler output window where you can jump to any of them with a click:

http://mbed.org/media/uploads/simon/beta-find03.png

Integrated Version Control

You can use the built-in version control features to let you version, branch and merge code, with a nice representation of the state of your project history:

http://mbed.org/media/uploads/simon/_scaled_screen_shot_2011-06-14_at_21.08.49.png

The approach should be familiar to those of you with experience of distributed version control models (as used by mercurial/git); each program has its own local repository, so you can commit and perform actions on it within your own workspace (such as updating, branching, showing changes).

The main things you can do include:

  • Commit a version of your project, and view the revision history
  • View changes a version made, and compare changes between versions
  • Update or revert to a different version
  • Branch and merge

Importing Libraries or Example Programs

The import wizard allows you to import programs from an mbed URL. This is useful for importing code that has been packaged as a reusable library component (e.g. a class for a peripheral), so you can quickly pull in the building blocks for your project.

http://mbed.org/media/uploads/dan/import.png

You can discover the programs or libraries on the mbed website, find it in the import wizard, or use a known URL.

The compiler IDE also allows you to easily publish your programs or libraries to the code section of the mbed Developer Website, so you can easily share your achievements (or problems!) with others.

Compilation

To perform the actual compilation the mbed Compiler uses the industry standard ARM RVDS 4.1 compiler engine, in the default configuration, to give excellent code size and performance. There are no limitations on code size (apart from the limits of the device itself!), and the generated code can be used freely for commercial and non-commercial use.

When you compile a program, you'll get a display of the memory usage. This shows the size of program code and any constant (const) variables that will end up in FLASH, and size of data variables that end up in main RAM.

http://mbed.org/media/uploads/dan/details.png

Note, this doesn't include the runtime allocated variables (i.e. the heap and stack), which live in any remaining RAM. See the mbed Memory Model

Export to Offline Toolchains

The mbed C/C++ SDK used with the mbed Online Compiler is also compatible with a number of other popular ARM microcontroller toolchains, so we've also built in the ability to export directly to these toolchains! For example, if you'd like to migrate to a different toolchain as your project develops past prototype, you can choose to export an mbed project by right-clicking on it:

http://mbed.org/media/uploads/emilmont/export_2.png

Features List

Code IDE

  • Full code editor! Syntax highlighting, standard editor keyboard shortcuts, copy/paste etc
  • Personal workspace with multiple files, folders, programs, including drag 'n' drop folder interface
  • Code auto-formatter

Compile Engine

  • Pre-configured compile engine that "just works", delivering .bin binary file to save to mbed microcontroller
  • Switch between different mbed targets with single dropdown
  • Output of compile-time messages, including click to go to error and error message wiki
  • Build information including graphical display of code size and RAM usage

Built-in Version Control

  • Built-in program version control (DVCS)
  • Commit, update and branching
  • View graphs, diffs, changesets

Importing and Exporting

  • Import programs from online catalogue of published programs
  • Publish your code directly from the compiler to the mbed Developer Website
  • Import from and export to local zip files
  • Export directly to other popular ARM toolchains!

See also

Take the mbed Tour


All wikipages