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