Project

General

Profile

Toolchain » History » Version 5

laforge, 02/28/2016 06:47 PM

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.
Add picture from clipboard (Maximum size: 48.8 MB)