Provide bare metal ARM cross-compiler packages for Ubuntu Natty

Registered by Marcin Juszkiewicz on 2010-11-10

We want cross compiler able to build for micro controllers based on Cortex-M[0-4] cores.

Blueprint information

Status:
Not started
Approver:
Marcin Juszkiewicz
Priority:
Undefined
Drafter:
Marcin Juszkiewicz
Direction:
Needs approval
Assignee:
None
Definition:
Review
Series goal:
None
Implementation:
Unknown
Milestone target:
None

Related branches

Sprints

Whiteboard

[hrw] Please do not remove work items without discussing it with me.

Status:
First set of work items defined.

Work items:

- investigate bare metal gcc-4.5 build: TODO
- bring in newlib: TODO
- create package to support STM32 Cortex-M3 chips: MAYBE
- [michaelh1] investigate libmaple integration: MAYBE

Rules:

1. Natty will be main place of work.
2. Packages for Lucid/Maverick will be provided in PPA and built from Natty versions patched to produce *-source packages only (cross packages will revert patches to get all packages cross built).
3. Bare metal cross compiler will be provided without support for any cpu. Users will have to provide all needed libraries/objects and linker scripts. Package with support for one of popular families may be created to show how to add support. Compiler should default to Cortex-M3, Thumb-2, and no FPU.
4. All toolchain components needs to honor PF variable so /opt/linaro/ builds will be possible to use.
5. Sysroot support will be used for non standard locations of cross compiler. Such ones will be provided only as tarballs.

Notes:

Bare metal compiler is a would be nice at best. Ideally there should be a way to install add-on packages that end up in the right place e.g. if I install the STM32 specific libmaple then a #include <libmaple.h> will work when compiled with arm-none-eabi-gcc.

15:16 < zumbi> hrw: i already got a bare metal tool, i need to test it, then workout the packaging
15:16 < zumbi> zumbi@enorme:~/Cortex-M3-SW/tcl$ bin/arm-eabi-gcc-4.5.0 -v
15:16 < zumbi> Using built-in specs.
15:16 < zumbi> COLLECT_GCC=bin/arm-eabi-gcc-4.5.0
15:16 < zumbi> COLLECT_LTO_WRAPPER=/home/zumbi/Cortex-M3-SW/tcl/libexec/gcc/arm-eabi/4.5.0/lto-wrapper
15:16 < zumbi> Target: arm-eabi
15:16 < zumbi> Configured with: ../configure --target=arm-eabi --prefix=/home/zumbi/Cortex-M3-SW/tcl --disable-nls --disable-threads
               --with-cpu=cortex-m3 --with-mode=thumb --enable-interwork --disable-multilib --enable-languages=c,c++ --with-newlib
               --without-headers --disable-shared --with-gnu-as --with-gnu-ld
15:16 < zumbi> Thread model: single
15:16 < zumbi> gcc version 4.5.0 (GCC)

(?)

Work Items

Dependency tree

* Blueprints in grey have been implemented.

This blueprint contains Public information 
Everyone can see this information.