Upgrade gcc4mbed project used by Smoothie.
[clinton/Smoothieware.git] / gcc4mbed / notes / overview.creole
1 ==Overview
2 The gcc4mbed project was created to give mbed users the flexibility to develop code even when it isn't convenient to be connected to the Internet. While there have been [[http://mbed.org/cookbook/Using-mbed-with-gcc-and-eclipse|documented steps]] for quite some time on how to use GCC for building CMSIS based programs for the mbed processor, they have sacrificed the convenience of the mbed libraries. The gcc4mbed project gives you the flexibility of offline compilation through **free** GCC based ARM toolchains without sacrificing the convenience of these libraries.
3
4 While it can be very liberating to pull the plug from the online cloud compiler and work on your mbed code in offline mode, there are a few things you should consider before making the switch:
5 * Code size. The code currently generated by GCC when used with the gcc4mbed project is about two times larger than when compiled with the online compiler. Initially the size delta was closer to 10x so this is an improvement from the beginnings of the gcc4mbed project. That's not to say that someone in the community might not be able to analyze the code differences and make changes to gcc4med to further reduce the code size.
6 * Community support. Most of the mbed user base is going to continue using the cloud compiler. If you encounter an issue with your project while using the gcc4mbed offline process, you may find it harder to get help since there will be a smaller pool of people familiar with this environment. However if you like adventure and helping others then taking the plunge means you will be one more person able to help others who go on this adventure with us.
7 * Libraries. You will have to do some more leg work yourself to get community created libraries to work. People writing these libraries will be developing and testing them on the cloud compiler. They may use features that are specific to the cloud compiler which lead to build breaks and runtime crashes or hangs when used with GCC.
8 * Testing. In general, everything mbed related will have been much more thoroughly tested on the cloud compiler.
9 * LPC1768 only. This is the only version of the mbed device that the original participants of the gcc4mbed project had access to and used in their projects.
10
11 If you are the adventurous sort and want to try out the offline gcc4mbed project then there are some things you will receive for your enthusiasm:
12 * Offline capability. No Internet connection? No problem!
13 * Build customization. Want to tweak something in the build such as optimization levels, generation of disassembly, code profiling, etc? The gcc4mbed project gives you access to the makefiles and you are free to play. Maybe you will be the one to figure out how to make gcc4mbed projects run 5x times faster while cutting the size in half.
14 * Editor/IDE of your choice. Like to code in Eclipse, vi or emacs? As long as you can build from a makefile then you are good to go with gcc4mbed.