Project

General

Profile

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