[go: nahoru, domu]

Skip to content
Piotr Esden-Tempski edited this page Jan 18, 2017 · 1 revision

'''libopencmsis''' is a sub-project and the result of the EFM32 series support. It provides a subset of the functionality that ARM's proprietary CMSIS library provides.

Aims

libopencmsis was created to support the use of libraries designed to run atop CMSIS while having libopencm3 available at the same time. Thus, the linker scripts and general work flow of libopencm3 can be re-used, as well as other libraries based on libopencm3. Besides, it alleviates problems stemming from inclusion of non-free code in free software projects, as libopencmsis is licensed under the same LGPL terms as the rest of libopencm3.

Features provided

So far, libopencmsis provides exactly those interfaces that are needed to build and run Energy Micro's emlib library for EFM32 and library examples for the Tiny Gecko platform, as well as very few features extrapolated from that. This is because the author avoided looking at CMSIS documentation or even code lest to put the implementation in danger of legal threats. (CMSIS and documentation are covered by EULAs and/OR NDAs).

Supported features include several compiler dependent #defines (eg __STATIC_INLINE, __IO), #defines for CPU instructions (__CLZ), IRQ handling and IRQ definitions and systick handling. Some features may look supported but are actually no-op stubs, in particular ITM, MPU and CoreDebug support.

Clone this wiki locally