Package: wnpp Severity: wishlist Owner: chrysn <chrysn@fsfe.org> * Package name : libopencm3 Version : not released yet Upstream Author : Uwe Hermann <uwe@hermann-uwe.de>, Piotr Esden-Tempski <piotr@esden.net> and others * URL : http://libopencm3.org/ * License : LGPL-3+ Programming Lang: C Description : firmware library for ARM Cortex-M3 and similar microcontrollers libopencm3 (formerly libopenstm32) provides the basic library functions for programming ARM Cortex M-3 microcontrollers. These tend to have around up to 128k RAM and 1024k flash ROM, and onoboard peripherials like SPI, UARTs, USB and general purpose IO (GPIO) pins. The library contains drivers for the common core chip functionality (turning on and off interrupts, managing the systick timer) and for the individual chips. * * * the debian branch i'm keeping in the upstream git repo at [1] is functional in the sense that libopencm3 can be used from the installed package, but has several shortcomings: * it depends on something to provide arm-none-eabi-gcc and an appropriate libc (eg newlibc). currently, i'm using a popular script to download, compile and install the required toolchain: summon-arm-toolchain[2] (by the libopencm3 authors), for which i wrote a little debian directory[3] -- in that form, it's pretty inacceptable as a debian package, though. * it feels strange to have compiled binaries (statically linked libraries) in an "architecture: all" package -- but seems technically correct. (things were different if there was a debian port to those chips, but only few of them support running linux at all). * loads of lintian warnings, many about files at strange locations. upstream installs to /usr/arm-none-eabi/{lib,include}, which is in line with what the gcc used is expecting. * some essential packaging stuff is missing (copyright and watch file, the latter for lack of a release process, which is just being discussed on the project mailing list) -- can fix that myself, it's just lower priority than getting everything to build in the first place * examples are not installed yet -- can fix that myself too so what i'd need in order to complete that package is: * an idea of how to create an arm-none-eabi-gcc package properly. my gut feeling says that the gcc-4.[67] packages should build another binary package called gcc-4.[67]-arm-none-eabi, similar to gcc-4.6-hppa64. i'm not familiar with how gcc actually works, so i wonder whether we could have a gcc-4.7-multiarch just like we have binutils-multiarch (which works well for libopencm3). same goes for gdb (not depended on, but more "essential" than "useful" to developers) * a packaged newlibc; given how libstdc++ is integrated with gcc, i don't know whether that's separate from the above or not. * a statement on where things should actually go. /usr/share feels just as wrong as "architecture: any" feels, and lintian complains about /usr/arm-none-eabi/. i'd like to emphasise that (from my understanding) this is neither related to multiarch nor to emdebian, both of which are dealing with cross compilation to other debian architectures, and this is about bare metal programming. [1] https://github.com/libopencm3/libopencm3/tree/debian [2] https://github.com/esden/summon-arm-toolchain [3] https://github.com/chrysn/summon-arm-toolchain -- To use raw power is to make yourself infinitely vulnerable to greater powers. -- Bene Gesserit axiom
Attachment:
signature.asc
Description: Digital signature