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.
![]() |
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.
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 a drag and drop folder interface:
![]() | ![]() |
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:

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:
![]() |
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 and showing changes).
The main things you can do include:
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.

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.
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.

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
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:

Code IDE
Compile Engine
Built-in Version Control
Importing and Exporting
Please login to post comments.
Having some difficulty with mouse usage within the compiler window. Can't seem to make it select the area the mouse is pointing to. Using the arrow keys seems to work. I also need a good reference for embeded C as applied to the mbed. I have experience with PIC assembly language, but zero with C. Thanks Dean