5e4bf55ecc61e508a7832b0546148c01395455b5
[fw/cortex-toolchain] / README
1 REMEMBER!
2 ---------
3 THE RESULTING TOOLCHAIN IS FOR BARE BONE ARM PROCESSOR SOFTWARE. NOT FOR USE
4 WITH GLIBC OR THE LINUX KERNEL. DO NOT EVEN BOTHER TO ASK FOR THAT!
5
6 To compile the ARM toolchain for barebone ARM devices:
7 ------------------------------------------------------
8 * Edit the shell script to match your environment
9 * Run it
10 * Profit
11
12 Currently tested and known to work target platforms:
13 ----------------------------------------------------
14 * STM32F10x (Olimex STM32-H103 eval board, Open-BLDC v0.1, v0.2, v0.3)
15
16 Currently tested and known to work host platforms:
17 --------------------------------------------------
18 * Linux 32bit and 64bit (Debian unstable)
19 * Mac OS X Snow Leopard with MacPorts
20
21 Notes for Mac OS X users:
22 -------------------------
23 You need to install gmp, mpfr, mpc and libiconv packages using MacPorts,
24 DarwinPorts or fink. GCC-4.5.1 requires them.
25
26 port install gmp mpfr libmpc
27
28 For xml support in gdb you may want to install expat too. And add the 
29 --with-expat parameter to GDB target.
30
31 Notes for Linux users:
32 ----------------------
33 You need to install several packages on debian just run:
34
35 apt-get install flex bison libgmp3-dev libmpfr-dev libncurses5-dev \
36 libmpc-dev autoconf texinfo build-essential
37
38 You may want to try running the following comand instead too:
39
40 apt-get build-dep gcc-4.5
41
42 For xml support in gdb you may want to install libexpat1 and libexpat1-dev 
43 too. 
44
45 Usage notes:
46 ------------
47
48 As we support multilib now in SAT thanks to Eric Parsonage's and Bernard
49 Davison's amazing work. You want to use the following GCC flag combinations to
50 generate full fledged floating point supporting code for some selected
51 architectures.
52
53 * stm32 (probably cortex-m3 in general): -mthumb -march=armv7 -mfix-cortex-m3-ldrd -msoft-float
54 * lpc21 (thumb instruction set): -mthumb -msoft-float
55 * lpc21 (arm instruction set): -mthumb -march=armv4t -msoft-float
56
57 If you need support for some other arm mcu and know the parameters for it just drop us a line and we will add that combination to the multilibs.
58
59 You can list available combinations by running:
60 arm-none-eabi-gcc -print-multi-lib
61
62 How to submit improvements and patches
63 --------------------------------------
64 As more and more people start to submit patches and improvements to
65 Summon-Arm-Toolchain (SAR) this section seems to become necessary.
66
67 First of all any way of submission is appreciated, if you just want to dump
68 your version of the script to us feel free to do so. Still if you want your
69 improvements and fixes to go upstream quicker there is a good way to do that.
70
71 1) Create an account on GitHub. (or some other git hosting service, if you
72    really have to)
73 2) Fork the main SAR repository.
74 3) Clone the forked repository to your disk
75 4) Change the script, try to make small changes adding one feature or bugfix at
76    a time (That makes review much easier for us).
77 5) Push your changes to GitHub, or the other service you chose
78 6) Test your changes, by compiling the toolchain. (You probably want to do that
79    with different options)
80 7) Make sure that everything still works
81 8) Test a little bit more
82 9) Click on pull request on GitHub or drop us a line so that we can pull your
83    changes
84
85 I know that sounds like a lot of work, but if you don't we have to do it and that means that your awesome improvement or bugfix will take longer to be integrated into the official script. And as you we want everyone to profit from such changes sooner then later. :)