Alternatives Open Source de style BSD au CMSIS?

8

Étant donné que les licences sur CMSIS ne sont pas claires en ce qui concerne l'open source, c'est probablement une violation d'inclure le CMSIS dans un projet open source, qu'il utilise une licence de style GPL ou BSD.

Existe-t-il une alternative CMSIS pour le MCU basé sur Cortex M qui est compatible avec une licence BSD ou Apache2.0?

Ou quelqu'un sait-il s'il est acceptable d'inclure le CMSIS dans un projet open source?

Merci

Johan
la source

Réponses:

4

De nombreux composants logiciels CMSIS sont désormais commercialisés sous licence BSD.

Dans le package officiel CMSIS, voici le contenu pertinent du "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.

Nous utilisons plusieurs de ces composants logiciels CMSIS dans l'open source, sous licence Apache, mbed SDK: http://mbed.org/blog/entry/CMSIS-Components-BSD-Licensed/

emilmont
la source
6

À la lecture de la licence CMSIS 2.0 actuelle , il semble que l'intention ne soit pas de vous empêcher de développer votre logiciel en open source ou autrement, mais plutôt de couvrir le cul d'ARM. C'est-à-dire qu'ils veulent s'assurer que vous ne revendiquez pas la propriété du code lui-même ou de toute IP qui pourrait s'y trouver, et également qu'il est utilisé pour développer un code conforme au CMSIS et non à d'autres fins.

  1. Sous réserve des dispositions des clauses 2, 3, 4 et 5, ARM vous accorde par la présente toute propriété intellectuelle qui est (a) détenue ou librement concédée sous licence par ARM sans paiement à des tiers non affiliés et (b) soit incorporée dans l'un ou l'autre ou dans les deux le code source et la spécification, selon le cas, ou nécessaire (défini à l'article 4 ci-dessous) pour copier ou mettre en œuvre une interface binaire d'applications conforme à la spécification, une licence mondiale perpétuelle, non exclusive, non transférable, libre de redevance pour:
    ( i) utiliser et copier la spécification dans le but de développer, d'avoir développé, de fabriquer, d'avoir fabriqué, d'offrir de vendre, de vendre, de fournir ou de distribuer de toute autre manière des produits conformes à la spécification;
    (ii) utiliser, copier, modifier et sous-licencier le code source (sous forme de code source ou objet) uniquement dans le but de développer, d'avoir développé, de fabriquer, d'avoir fabriqué, d'offrir de vendre, de vendre, de fournir ou de distribuer autrement des produits conformes aux la spécification, à condition que vous conserviez toutes les mentions de copyright incluses dans le code source.

  2. Le code source et les spécifications appartiennent à ARM ou à ses concédants de licence et sont protégés par les lois sur le droit d'auteur et les traités internationaux sur le droit d'auteur ainsi que par d'autres lois et traités sur la propriété intellectuelle. Le code source et les spécifications sont sous licence et non vendus. À l'exception d'une licence spécifique conformément à l'article 1, vous n'acquérez aucun droit, titre ou intérêt sur le code source et les spécifications ou toute propriété intellectuelle qui y est incorporée. En aucun cas, les licences accordées conformément à l'article 1 ne doivent être interprétées comme vous accordant, expressément ou implicitement, une préclusion ou autrement, une licence d'utilisation de toute technologie ARM à l'exception du code source et des spécifications. Sauf dans les cas prévus à l'article 1, aucun droit ne vous est accordé pour sous-licencier les droits qui vous sont accordés en vertu de cette licence.

Cela dit, si vous n'êtes toujours pas à l'aise avec ces termes, vous pouvez simplement prendre la fiche technique et créer les en-têtes vous-même. Les gars de microbuilder.eu ont fait exactement cela et ont publié leur base de code LPC1114 et LPC1343 sous BSD.

Igor Skochinsky
la source
de bons liens vers microbuilder.eu et ces projets.
Johan
1
@Johan, ils ont également la base de code 13xx: code.google.com/p/lpc1343codebase
max taldykin
4

Je ne pense pas qu'il y ait de problème. Les fichiers individuels ont cette déclaration:

"* ARM Limited (ARM) fournit ce logiciel pour une utilisation avec les microcontrôleurs à processeur Cortex-M *. Ce fichier peut être librement distribué * dans les outils de développement qui prennent en charge ces processeurs à base ARM."

et je ne vois rien dans la licence qui l'empêche non plus.

Il existe un répertoire gcc dans la distribution CMSIS, ce qui implique qu'il peut être fourni avec des outils open-source.

Cette déclaration:

(i) utiliser et copier la spécification CMSIS dans le but de développer, d'avoir développé, de fabriquer, d'avoir fabriqué, d'offrir de vendre, de vendre, de fournir ou de distribuer autrement des produits conformes à la spécification CMSIS, à condition que vous conserviez toutes les mentions de copyright qui sont inclus dans ou dans la spécification CMSIS et à condition que vous n'utilisiez pas le nom, le logo ou les marques commerciales d'ARM pour commercialiser ces produits;

implique que vous pouvez intégrer CMSIS dans votre projet open source.

Leon Heller
la source
1
Mais un projet open source est-il un "outil de développement"? Disons que j'écris un programme open source blinky, et poussons ce code sur github. Peut-on vraiment définir cela comme «distribué dans les outils de développement»?
Johan
Et en bas à "(iii) utiliser, copier, modifier et sous-licencier l'exemple de code". Je pense que le mot magique est sous-licence, car cela doit signifier que je peux modifier et redistribuer avec une licence open source?
Johan
1
La partie importante est «à utiliser avec Cortex-M *». Les fabricants de puces veulent que vous utilisiez leurs puces! La licence le permet - comme vous l'avez remarqué au sous-point iii. La partie importante est que tout ce que vous vendez avec ou toute sous-licence que vous faites doit intégrer des puces ARM Cortex *. Donc, ne modifiez pas les fichiers pour qu'ils fonctionnent avec un MSP430 et redistribuez-les et tout va bien.
AngryEE
1
Je crois que la première citation est absolument contraire à la GPL (dans l'esprit) car elle limite votre liberté d'utiliser et de distribuer le logiciel.
XTL