Toolchain » History » Version 2
laforge, 02/19/2016 10:50 PM
add some text
1 | 1 | laforge | |
---|---|---|---|
2 | 2 | laforge | = Toolchain for firmware builds = |
3 | 1 | laforge | |
4 | 2 | laforge | The SAM3U microcontroller used in OsmoSDR is based on an ARM Cortex-M3 core. |
5 | |||
6 | Cortex-M differs from classic ARM (ARM7TDMI) in a number of ways. One of them is that it only supports |
||
7 | the Thumb2 instruction set, and neither the 32-bit ARM nor the older Thumb instruction set. |
||
8 | |||
9 | This means that any code compiled for it needs to be pure Thumb2, with no ARM interworking. The best way |
||
10 | to ensure this is to create a separate toolchain for it. |
||
11 | |||
12 | As an example, you can follow the instructions from |
||
13 | 1 | laforge | * http://openmulticopter.org/wiki/Building_an_ARM_Cortex-M3_toolchain |
14 | |||
15 | 2 | laforge | where you will have to do the following changes to the summon-arm-toolchain script: |
16 | * change {{{TARGET=arm-cm3-eabi}}} |
||
17 | * change {{{DEFAULT_TO_CORTEX_M3=1}}} |
||
18 | 1 | laforge | |
19 | 2 | laforge | and then run the script to generate the toolchain. It will download all required components/dependencies |
20 | as a first step of the compilation process. |