For those of you who don’t already know about mbed, it is an open-source, ARM-based hardware and software platform designed for professional rapid prototyping of products and mass production. Since joining the mbed team this past March, I get asked quite a lot of questions about the platform. Below are the top ten things you may not know, but should know about mbed.
1. Did you know the compile used by mbed is the same compiler used by ARM's commercial offline tools?
It's true! No GCC and nothing crippled or time bombed here, it is the same compiler used by DS-5 and Keil MDK, for free!
2. Did you know you can download the source for the mbed SDK? Indeed, you can get the SDK source right here.
Now if you want to move to a different processor, or add functionality to the SDK, you have the choice to do so.
3. And speaking of the mbed SDK, I often get asked what the cost is to license the mbed SDK for commercial application and is there a royalty. If you were expecting to pay I have bad news, the mbed SDK costs nothing to use in commercial applications and is royalty free. Now who does not think free is good?
4. Often teamwork or collaboration is needed to solve a tough problem or take on a big project. mbed makes that easy, just visit http://mbed.org/teams and create your own team. The members of your team can work together from a common code base with all members having access online. Teams are a great tool for online collaboration.
5. Did you know you can create your own components to contribute to the mbed components library? Yes indeed, in fact we encourage users to create their own components and share their hard work with the community. This makes inspiring innovations easy to find.
6. Did you know updating libraries to the latest revision is just a click away? In the program workspace select a library. In the "Library Build Details" panel you can see if your library is up-to-date, if not, just select "Update". If you are experiencing unusual problems it is a best practice to check the status of all of the project's libraries.
7. In the same vein if you open the library homepage and click on the history tab you will see the different revisions. This works for any archive so it is easy to see what has changed in time.
8. To fork or not to fork, that is the question. When you make modifications to an existing library or program you have the choice of creating a new, independent fork of that code, or to get your changes integrated into the original archive. Ideally if your changes fix a bug, or add functionality without affecting the proginal functionality it is best to merge your work with the original archive. On the other hand if you create something new it should be a fork so it does not break code based on the original project. Merging code is easy, just publish you code to a fork, then in the homepage for the fork you can send a "Pull Request" to the original author. He can then approve your changes and merge your contribution. This is great because as a community we can do great things!
9. Did you know how easy it is to export your code to an offline tool chain? It's easy as can be, just right click on your project, select "Export Project", verify the target is correct and select the desired tool chain. Everything you need to build your mbed project in including source, libraries, project files etc. is exported to a zip archive. Now you can work offline during that long flight or for advanced debugging.
10. Finally, did you know that you can design your own mbed enabled hardware? Of course you can, all you need is the mbed HDK (Hardware Design Kit). By leveraging the HDK it is easy to design your own hardware platform by simply adding an mbed interface MCU to the design in addition to your target MCU. The HDK provides schematics and code for the mbed interface MCU so you get the same user experience as the platforms from our silicon partners.
Find out more about mbed and how to get started, here.
Have a question about mbed? Comment below and I'll get back to you as soon as possible.
Hi. How can I compile a program off-line using arm-none-eabi-gcc?