Exploring compilers
In the general software development industry, the term compiler may mean slightly different things to different people. A toolchain typically includes a compiler, an assembler, a linker, and a disassembler. Although not totally correct, the collection of tools may also be called a compiler. With these utilities, the source code that you write for your application, along with any software libraries you have integrated, gets converted into the final executable that runs on the Cortex-M device. As we walk through some of the toolchains available for your Cortex-M project and their features, we will also highlight the utilities in each of these toolchains that perform these functions.
Several factors can influence your compiler choice. It depends on what your target Arm processor is and whether you are more inclined to use an open source compiler (available at zero cost) or a commercial compiler (costs money). Other factors such as support from the vendor, code size...