Alternativas de código aberto estilo BSD ao CMSIS?
8
Como as licenças no CMSIS não são claras quando se trata de código aberto, provavelmente é uma violação incluir o CMSIS em um projeto de código aberto, independentemente de estar usando uma licença no estilo GPL ou BSD.
Existe alguma alternativa CMSIS disponível para o MCU: s baseado no Cortex M compatível com uma licença BSD ou Apache2.0?
Ou alguém sabe se está correto incluir o CMSIS em um projeto de código aberto?
Muitos dos componentes de software CMSIS agora são liberados sob uma licença BSD.
No pacote oficial do CMSIS, este é o conteúdo relevante do "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 templatefor CMSIS-RTOS implementation; and(e)./Device-Template files and implementations forCortex-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.
Com a leitura da licença atual do CMSIS 2.0 , parece que a intenção não é impedi-lo de desenvolver seu software como código-fonte aberto ou não, mas mais sobre cobrir a bunda da ARM. Ou seja, eles querem garantir que você não reivindique a propriedade do código em si ou de qualquer IP que possa estar nele, e também que ele seja usado para desenvolver código compatível com o CMSIS e não para outro fim.
Sujeito às disposições das Cláusulas 2, 3, 4 e 5, a ARM concede a você sob qualquer propriedade intelectual que seja (a) possuída ou livremente licenciada pela ARM sem pagamento a terceiros não afiliados e (b) incorporada em um ou ambos o Código Fonte e a Especificação, conforme aplicável, ou Necessário (definido na Cláusula 4 abaixo) para copiar ou implementar uma interface binária de aplicativos compatível com a Especificação, uma licença mundial perpétua, não exclusiva, intransferível e isenta de royalties, para:
( i) usar e copiar a Especificação com o objetivo de desenvolver, desenvolver, fabricar, fabricar, oferecer para vender, vender, fornecer ou distribuir produtos que cumpram a Especificação;
(ii) usar, copiar, modificar e sublicenciar o Código Fonte (na forma de código fonte ou de objeto) apenas com o objetivo de desenvolver, desenvolver, fabricar, fabricar, oferecer para vender, vender, fornecer ou distribuir produtos que estejam em conformidade com a especificação, desde que você preserve todos os avisos de direitos autorais incluídos no código-fonte.
O Código Fonte e a Especificação são de propriedade da ARM ou de seus licenciadores e estão protegidos pelas leis de direitos autorais e tratados internacionais de direitos autorais, bem como outras leis e tratados de propriedade intelectual. O código-fonte e a especificação são licenciados e não vendidos. Exceto conforme especificamente licenciado de acordo com a Cláusula 1, você não adquire nenhum direito, título ou interesse no Código Fonte e nas Especificações ou em qualquer propriedade intelectual incorporada nele. Em nenhum caso as licenças concedidas de acordo com a Cláusula 1 serão interpretadas como concedendo a você, expressamente ou implicitamente, impedimento ou não, uma licença para usar qualquer tecnologia ARM, exceto o Código Fonte e a Especificação. Exceto conforme previsto na Cláusula 1, nenhum direito é concedido a você para sublicenciar os direitos concedidos a você sob esta Licença.
Dito isto, se você ainda não se sente à vontade com esses termos, basta pegar a folha de dados e criar os cabeçalhos. Caras do microbuilder.eu fez exatamente isso, e lançou seu LPC1114 e LPC1343 codebase sob BSD.
Eu não acho que há um problema. Os arquivos individuais têm esta declaração:
"* A ARM Limited (ARM) está fornecendo este software para uso com microcontroladores baseados em processador Cortex-M *. Este arquivo pode ser distribuído * livremente * nas ferramentas de desenvolvimento que suportam esses processadores baseados em ARM."
e também não vejo nada na licença que a impeça.
Há um diretório gcc na distribuição do CMSIS, o que implica que ele pode ser fornecido com ferramentas de código aberto.
Esta afirmação:
(i) usar e copiar a Especificação CMSIS com o objetivo de desenvolver, desenvolver, fabricar, fabricar, oferecer para vender, vender, fornecer ou distribuir produtos que cumpram a Especificação CMSIS, desde que você preserve quaisquer avisos de direitos autorais que sejam incluído ou incluído na especificação CMSIS e desde que você não use o nome, o logotipo ou as marcas comerciais da ARM para comercializar esses produtos;
implica que você pode incorporar o CMSIS em seu projeto de código aberto.
Mas um projeto de código aberto é uma "ferramenta de desenvolvimento"? Digamos que estou escrevendo um programa intermitente de código aberto e insira esse código no github. Isso pode realmente ser definido como "distribuído nas ferramentas de desenvolvimento"?
Johan
E abaixo em "(iii) use, copie, modifique e sublicencie o Código de Exemplo". Eu acho que a palavra mágica é sublicenciada, pois isso deve significar que eu posso modificar e redistribuir com uma licença de código aberto?
Johan
1
A parte importante é 'para uso com o Cortex-M *'. Os fabricantes de chips querem que você use seus chips! A licença permite isso - como você notou no subitem iii. A parte importante é que tudo o que você vende com ele ou qualquer sublicenciamento que você faz deve incorporar os chips ARM Cortex *. Portanto, apenas não modifique os arquivos para trabalhar com um MSP430 e os redistribua e você estará bem.
precisa saber é o seguinte
1
Acredito que a primeira citação seja absolutamente contra a GPL (em espírito), pois limita sua liberdade de usar e distribuir o software.
Eu não acho que há um problema. Os arquivos individuais têm esta declaração:
"* A ARM Limited (ARM) está fornecendo este software para uso com microcontroladores baseados em processador Cortex-M *. Este arquivo pode ser distribuído * livremente * nas ferramentas de desenvolvimento que suportam esses processadores baseados em ARM."
e também não vejo nada na licença que a impeça.
Há um diretório gcc na distribuição do CMSIS, o que implica que ele pode ser fornecido com ferramentas de código aberto.
Esta afirmação:
(i) usar e copiar a Especificação CMSIS com o objetivo de desenvolver, desenvolver, fabricar, fabricar, oferecer para vender, vender, fornecer ou distribuir produtos que cumpram a Especificação CMSIS, desde que você preserve quaisquer avisos de direitos autorais que sejam incluído ou incluído na especificação CMSIS e desde que você não use o nome, o logotipo ou as marcas comerciais da ARM para comercializar esses produtos;
implica que você pode incorporar o CMSIS em seu projeto de código aberto.
fonte