Open-Source-Alternativen im BSD-Stil zu CMSIS?

Da die Lizenzen für CMSIS in Bezug auf Open Source unklar sind, ist es wahrscheinlich ein Verstoß, CMSIS in ein Open Source-Projekt aufzunehmen, unabhängig davon, ob es eine GPL- oder BSD-Lizenz verwendet.

Gibt es eine CMSIS-Alternative für die Cortex M-basierten MCU:s, die mit einer BSD- oder Apache2.0-Lizenz kompatibel ist?

Oder weiß jemand, ob es in Ordnung ist, das CMSIS in ein Open-Source-Projekt aufzunehmen?

Vielen Dank

Antworten (3)

Viele der CMSIS-Softwarekomponenten werden jetzt unter einer BSD-Lizenz veröffentlicht.

Im offiziellen CMSIS-Paket ist dies der relevante Inhalt des "CMSIS END USER LICENSE AGREEMENT.pdf":

The package also includes the components contained in the following directories:
(a) ./CMSIS/DSP_Lib - DSP Library sources and examples;
(B) ./CMSIS/Include - Header files;
(c) ./CMSIS/Lib - DSP Library build for various toolchains;
(d) ./CMSIS/RTOS - Header file template for CMSIS-RTOS implementation; and
(e) ./Device - Template files and implementations for Cortex-M class processors.

All of the above components are licensed to you under the terms of the BSD licence,
which is incorporated within or alongside the above components.

Wir verwenden viele dieser CMSIS-Softwarekomponenten im Open-Source-mbed-SDK mit Apache-Lizenz: http://mbed.org/blog/entry/CMSIS-Components-BSD-Licensed/

Aus der Lektüre der aktuellen CMSIS 2.0-Lizenz geht hervor, dass die Absicht nicht darin besteht, Sie daran zu hindern, Ihre Software als Open Source oder auf andere Weise zu entwickeln, sondern eher darum, den Hintern von ARM abzudecken. Das heißt, sie wollen sicherstellen, dass Sie nicht das Eigentum am Code selbst oder an darin möglicherweise enthaltenem IP beanspruchen, und auch, dass er zur Entwicklung von Code verwendet wird, der CMSIS entspricht, und nicht für andere Zwecke.

  1. Vorbehaltlich der Bestimmungen der Klauseln 2, 3, 4 und 5 gewährt ARM Ihnen hiermit geistiges Eigentum, das (a) Eigentum von ARM ist oder von ARM ohne Zahlung an nicht verbundene Dritte frei lizenziert werden kann und (b) entweder in einem oder beiden verkörpert ist des Quellcodes und der Spezifikation, sofern zutreffend, oder erforderlich (definiert in Abschnitt 4 unten), um eine binäre Anwendungsschnittstelle zu kopieren oder zu implementieren, die mit der Spezifikation konform ist, eine unbefristete, nicht exklusive, nicht übertragbare, gebührenfreie, weltweite Lizenz für:
    ( i) die Spezifikation zu verwenden und zu kopieren, um Produkte zu entwickeln, entwickeln zu lassen, herzustellen, herstellen zu lassen, zum Verkauf anzubieten, zu verkaufen, zu liefern oder anderweitig zu vertreiben, die der Spezifikation entsprechen;
    (ii) den Quellcode (in Quell- oder Objektcodeform) ausschließlich zu dem Zweck zu verwenden, zu kopieren, zu modifizieren und unterzulizenzieren, um Produkte zu entwickeln, entwickeln zu lassen, herzustellen, herstellen zu lassen, zum Verkauf anzubieten, zu verkaufen, zu liefern oder anderweitig zu vertreiben, die konform sind der Spezifikation, vorausgesetzt, dass Sie alle im Quellcode enthaltenen Urheberrechtshinweise beibehalten.

  2. Der Quellcode und die Spezifikation sind Eigentum von ARM oder seinen Lizenzgebern und sind durch Urheberrechtsgesetze und internationale Urheberrechtsverträge sowie andere Gesetze und Verträge über geistiges Eigentum geschützt. Der Quellcode und die Spezifikation werden lizenziert, nicht verkauft. Sofern nicht ausdrücklich gemäß Abschnitt 1 lizenziert, erwerben Sie keine Rechte, Titel oder Anteile am Quellcode und der Spezifikation oder an darin enthaltenem geistigem Eigentum. In keinem Fall dürfen die gemäß Abschnitt 1 gewährten Lizenzen so ausgelegt werden, dass Sie Ihnen ausdrücklich oder stillschweigend, durch Rechtsverwirkung oder anderweitig eine Lizenz zur Nutzung einer ARM-Technologie mit Ausnahme des Quellcodes und der Spezifikation gewähren. Außer wie in Klausel 1 vorgesehen, wird Ihnen kein Recht eingeräumt, die Ihnen unter dieser Lizenz gewährten Rechte unterzulizenzieren.

Das heißt, wenn Ihnen diese Begriffe immer noch unangenehm sind, können Sie einfach das Datenblatt nehmen und die Header selbst erstellen. Die Jungs von microbuilder.eu haben genau das getan und ihre LPC1114- und LPC1343- Codebasis unter BSD veröffentlicht.

nette links zu microbuilder.eu und dem projekt.
@Johan, sie haben auch eine 13xx-Codebasis: code.google.com/p/lpc1343codebase

Ich glaube nicht, dass es ein Problem gibt. Die einzelnen Dateien haben diese Aussage:

"* ARM Limited (ARM) stellt diese Software zur Verwendung mit Cortex-M * -Prozessor-basierten Mikrocontrollern bereit. Diese Datei kann innerhalb von Entwicklungstools *, die solche ARM-basierten Prozessoren unterstützen, frei verteilt werden."

und ich sehe auch nichts in der Lizenz, was das ausschließt.

In der CMSIS-Distribution gibt es ein gcc-Verzeichnis, was impliziert, dass es mit Open-Source-Tools versorgt werden kann.

Diese Aussage:

(i) die CMSIS-Spezifikation zu verwenden und zu kopieren, um Produkte zu entwickeln, entwickeln zu lassen, herzustellen, herstellen zu lassen, zum Verkauf anzubieten, zu verkaufen, zu liefern oder anderweitig zu vertreiben, die der CMSIS-Spezifikation entsprechen, vorausgesetzt, dass Sie alle Urheberrechtshinweise beibehalten in oder in der CMSIS-Spezifikation enthalten sind und vorausgesetzt, dass Sie den Namen, das Logo oder die Marken von ARM nicht verwenden, um solche Produkte zu vermarkten;

bedeutet, dass Sie CMSIS in Ihr Open-Source-Projekt integrieren können.

Aber ist ein Open-Source-Projekt ein „Entwicklungstool“? Nehmen wir an, ich schreibe ein Open-Source-Blinky-Programm und schiebe diesen Code auf GitHub. Kann das wirklich als „in Entwicklungstools verteilt“ definiert werden?
Und unten bei "(iii) den Beispielcode verwenden, kopieren, modifizieren und unterlizenzieren". Ich denke, das Zauberwort ist Unterlizenzierung, denn das muss bedeuten, dass ich mit einer Open-Source-Lizenz modifizieren und weitergeben darf?
Der wichtige Teil ist 'zur Verwendung mit Cortex-M *'. Chiphersteller möchten, dass Sie ihre Chips verwenden! Die Lizenz erlaubt dies - wie Sie in Unterpunkt iii bemerkt haben. Der wichtige Teil ist, dass alles, was Sie damit verkaufen oder unterlizenzieren, ARM Cortex * -Chips enthalten muss. Ändern Sie die Dateien also einfach nicht, damit sie mit einem MSP430 funktionieren, und verteilen Sie sie neu, und schon ist alles in Ordnung.
Ich glaube, das erste Zitat ist absolut gegen GPL (im Geiste), da es Ihre Freiheit zur Nutzung und Verbreitung der Software einschränkt.