= Toolchain for firmware builds =
The SAM3U microcontroller used in OsmoSDR is based on an ARM Cortex-M3 core.
Cortex-M differs from classic ARM (ARM7TDMI) in a number of ways. One of them is that it only supports
the Thumb2 instruction set, and neither the 32-bit ARM nor the older Thumb instruction set.
This means that any code compiled for it needs to be pure Thumb2, with no ARM interworking. The best way
to ensure this is to create a separate toolchain for it.
As an example, you can follow the instructions from * http://openmulticopter.org/wiki/Building_an_ARM_Cortex-M3_toolchain
where you will have to run the summon-arm-toolchain script with:
./summon-arm-toolchain TARGET=arm-cm3-eabi DEFAULT_TO_CORTEX_M3=1
to generate the toolchain. It will download all required components/dependencies
as a first step of the compilation process.