CMSIS?

Joel Sherrill joel.sherrill at oarcorp.com
Tue Sep 2 14:51:17 UTC 2014


This is the license.

The big problem I see first is the typical use only on our hardware
and that in order to redistribute, we must ensure that it is only
used on ARM hardware.

This is a common restriction on vendor provided software and I
honestly don't know how to address including anything which
wants an open source project to ensure that anyone downloading
only uses it on the appropriate hardware.

We have seen similar licenses from at least four vendors.

If someone is able to crack this nut and find a way to not incur
liability for the RTEMS Project, I am open to ideas. But skeptical.

--joel

========================================================

END USER LICENCE AGREEMENT FOR THE CORTEX MICROCONTROLLER SOFTWARE
INTERFACE STANDARD (CMSIS) SPECIFICATION AND SOFTWARE

THIS END USER LICENCE AGREEMENT ("LICENCE") IS A LEGAL AGREEMENT BETWEEN
YOU (EITHER A SINGLE INDIVIDUAL, OR SINGLE LEGAL ENTITY) AND ARM LIMITED
("ARM") FOR THE USE OF THE CMSIS SPECIFICATION, EXAMPLE CODE, DSP
LIBRARY SPECIFICATION AND DSP LIBRARY IMPLEMENTATION AS SUCH TERMS ARE
DEFINED BELOW (COLLECTIVELY, THE "ARM DELIVERABLES"). ARM IS ONLY
WILLING TO LICENSE THE ARM DELIVERABLES TO YOU ON CONDITION THAT YOU
ACCEPT ALL OF THE TERMS IN THIS LICENCE. BY CLICKING "I AGREE", OR BY
INSTALLING OR OTHERWISE USING OR COPYING THE ARM DELIVERABLES YOU
INDICATE THAT YOU AGREE TO BE BOUND BY ALL THE TERMS OF THIS LICENCE. IF
YOU DO NOT AGREE TO THE TERMS OF THIS LICENCE, ARM IS UNWILLING TO
LICENSE YOU TO USE THE ARM DELIVERABLES AND YOU MAY NOT INSTALL, USE OR
COPY THE ARM DELIVERABLES.

"CMSIS Specification" means any documentation and C programming language
files defining the application programming interface, naming and coding
conventions of the Cortex Microcontroller Software Interface Standard
(CMSIS) as well as the System View Description (SVD) documentation and
associated XML schema file. Notwithstanding the foregoing, "CMSIS
Specification" shall not include (i) the implementation of other
published specifications referenced in the CMSIS Specification; (ii) any
enabling technologies that may be necessary to make or use any product
or portion thereof that complies with the CMSIS Specification, but are
not themselves expressly set forth in the CMSIS Specification (e.g.
compiler front ends, code generators, back ends, libraries or other
compiler, assembler or linker technologies; validation or debug software
or hardware; applications, operating system or driver software; RISC
architecture; processor microarchitecture); (iii) maskworks and physical
layouts of integrated circuit designs; or (iv) RTL or other high level
representations of integrated circuit designs.

"DSP Library Implementation" means any C programming language source
code implementing the functionality of the digital signal processor
(DSP) algorithms and the application programming interface as defined in
the DSP Library Specification. The DSP Library Implementation makes use
of CMSIS application programming interface and therefore is targeted at
Cortex-M class processors.

"DSP Library Specification" means the DSP library documentation and C
programming language file defining the application programming interface
of the DSP Library Implementation. Notwithstanding the foregoing, "DSP
Library Specification" shall not include (i) the implementation of other
published specifications referenced in the DSP Library Specification;
(ii) any enabling technologies that may be necessary to make or use any
product or portion thereof that complies with the DSP Library
Specification, but are not themselves expressly set forth in the DSP
Library Specification (e.g. compiler front ends, code generators, back
ends, libraries or other compiler, assembler or linker technologies;
validation or debug software or hardware; applications, operating system
or driver software; RISC architecture; processor microarchitecture);
(iii) maskworks and physical layouts of integrated circuit designs; or
(iv) RTL or other high level representations of integrated circuit designs.

"Example Code" means any files in C, C++ or ARM assembly programming
languages, associated project and configuration files that demonstrate
the usage of the CMSIS Specification, the DSP Library Specification and
the DSP Library Implementation, for microprocessors or device specific
software applications that are for use with microprocessors.

1. LICENCE GRANTS.

1.1 ARM hereby grants to you, subject to the terms and conditions of
this Licence, a non-exclusive, non-transferable licence, to;

(i) use and copy the CMSIS Specification for the purpose of developing,
having developed, manufacturing, having manufactured, offering to sell,
selling, supplying or otherwise distributing products that comply with
the CMSIS Specification, provided that you preserve any copyright
notices which are included with, or in, the CMSIS Specification and
provided that you do not use ARM's name, logo or trademarks to market
such products;

(ii) use, copy, and modify (solely to the extent necessary to
incorporate the whole or any part of the DSP Library Specification into
your documentation), the DSP Library Specification, for the purpose of
developing, having developed, manufacturing, having manufactured,
offering to sell, selling, supplying or otherwise distributing products
that comply with the DSP Library Specification, and distribute and have
distributed any documentation created by or for you that has been
derived from the DSP Library Specification with such products, provided
that you preserve any copyright notices which are included with, or in,
the DSP Library Specification and provided that you do not use ARM's
name, logo or trademarks to market such products;

(iii) use, copy, modify and sublicense the Example Code solely for the
purpose of developing, having developed, manufacturing, having
manufactured, offering to sell, selling, supplying or otherwise
distributing products that comply with either or both the CMSIS
Specification and the DSP Library Specification, provided that you
preserve any copyright notices which are included with, or in, the
Example Code and that you do not use ARM's name, logo or trademarks to
market such products;

(iv) use, copy and modify (provided that the logical functionality and
the application programming interface of the DSP Library Implementation
are maintained) the DSP Library Implementation, solely for the purposes
of developing; (a) software applications for use with microprocessors
manufactured or simulated under licence from ARM ("Software
Applications"); and (b) tools that are designed to develop software
programs for use with microprocessors manufactured or simulated under
licence from ARM ("Tools"); and

(v) subject to clause 1.1(vi) below; (a) distribute and sublicense the
use of the DSP Library Implementation (including any modified forms
thereof created under Clause 1.1(iv) above) in binary or source format,
solely as incorporated into Software Library Applications and Tools to
third parties; and (b) sublicense to such third parties the right to use
and copy the Tools for the purposes of developing and distribute
software programs for use with microprocessors manufactured or simulated
under licence from ARM.

(vi) CONDITIONS ON REDISTRIBUTION: If you choose to redistribute the
whole or any part of the DSP Library Implementation as incorporated into
Software Library Applications or Tools, you agree to; (a) ensure that
the DSP Library Implementation is licensed for use only as part of
Software Library Applications and Tools and only for use with
microprocessors manufactured or simulated under licence from ARM; (b)
not to use ARM's name, logo or trademarks to market Software
Applications and Tools; and (c) include valid copyright notices on
Software Applications and Tools, and preserve any copyright notices
which are included with, or in, the DSP Library Implementation.

2. RESTRICTIONS ON USE OF THE ARM DELIVERABLES.

PERMITTED USERS: The ARM Deliverables shall be used only by you (either
a single individual, or single legal entity) your employees, or by your
on-site bona fide sub-contractors for whose acts and omissions you
hereby agree to be responsible to ARM for to the same extent as you are
for your employees, and provided always that such sub-contractors; (i)
are contractually obligated to use the ARM Deliverables only for your
benefit, and (ii) agree to assign all their work product and any rights
they create therein in the supply of such work to you.

COPYRIGHT AND RESERVATION OF RIGHTS: The ARM Deliverables are owned by
ARM or its licensors and are protected by copyright and other
intellectual property laws and international treaties. The ARM
Deliverables are licensed not sold. Except as expressly licensed herein,
you acquire no right, title or interest in the ARM Deliverables or any
intellectual property therein. In no event shall the licences granted
herein be construed as granting you, expressly or by implication,
estoppels or otherwise, a licence to use any ARM technology except the
ARM Deliverables.

3. SUPPORT.

ARM is not obligated to support the ARM Deliverables but may do so
entirely at ARM's discretion.

4. NO WARRANTY

YOU AGREE THAT THE ARM DELIVERABLES ARE LICENSED "AS IS", AND THAT ARM
EXPRESSLY DISCLAIMS ALL REPRESENTATIONS, WARRANTIES, CONDITIONS OR OTHER
TERMS, EXPRESS, IMPLIED OR STATUTORY, INCLUDING WITHOUT LIMITATION THE
IMPLIED WARRANTIES OF NON-INFRINGEMENT, SATISFACTORY QUALITY, AND
FITNESS FOR A PARTICULAR PURPOSE. THE ARM DELIVERABLES MAY CONTAIN
ERRORS. ARM RESERVES THE RIGHT TO INCORPORATE MODIFICATIONS TO THE ARM
DELIVERABLES IN LATER REVISIONS OF THEM, AND TO MAKE IMPROVEMENTS OR
CHANGES IN THE ARM DELIVERABLES AT ANY TIME.

5. LIMITATION OF LIABILITY.

THE MAXIMUM LIABILITY OF ARM TO YOU IN AGGREGATE FOR ALL CLAIMS MADE
AGAINST ARM IN CONTRACT, TORT OR OTHERWISE UNDER OR IN CONNECTION WITH
THE SUBJECT MATTER OF THIS LICENCE SHALL NOT EXCEED THE GREATER OF (I)
THE TOTAL OF SUMS PAID BY YOU TO ARM (IF ANY) FOR THIS LICENCE AND (II)
US$10.00. THE LIMITATIONS, EXCLUSIONS AND DISCLAIMERS IN THIS LICENCE
SHALL APPLY TO THE MAXIMUM EXTENT ALLOWED BY APPLICABLE LAW.

6. U.S. GOVERNMENT END USERS.

US Government Restrictions: Use, duplication, reproduction, release,
modification, disclosure or transfer of this commercial product and
accompanying documentation is restricted in accordance with the terms of
this Licence.

7. TERM AND TERMINATION.

7.1 This Licence shall remain in force until terminated in accordance
with the terms of Clause 7.2 or Clause 7.3 below.

7.2 Without prejudice to any of its other rights if you are in breach of
any of the terms and conditions of this Licence then ARM may terminate
this Licence immediately upon giving written notice to you. You may
terminate this Licence at any time.

7.3 This Licence shall immediately terminate and shall be unavailable to
you if you or any party affiliated to you asserts any patents against
ARM, ARM affiliates, third parties who have a valid licence from ARM for
the ARM Deliverables, or any customers or distributors of any of them
based upon a claim that your (or your affiliate) patent is Necessary to
implement the CMSIS Specification or DSP Library Specification. In this
Licence; (i) "affiliate" means any entity controlling, controlled by or
under common control with a party (in fact or in law, via voting
securities, management control or otherwise) and "affiliated" shall be
construed accordingly; (ii) "assert" means to allege infringement in
legal or administrative proceedings, or proceedings before any other
competent trade, arbitral or international authority; (iii) "Necessary"
means with respect to any claims of any patent, those claims which,
without the appropriate permission of the patent owner, will be
infringed when implementing the CMSIS Specification or DSP Library
Specification because no alternative, commercially reasonable,
non-infringing way of implementing the CMSIS Specification or DSP
Library Specification is known.

7.4 Upon termination of this Licence, you shall stop using the ARM
Deliverables and destroy all copies of the ARM Deliverables in your
possession. The provisions of clauses 5, 6, 7, and 8 shall survive
termination of this Licence.

8. GENERAL.

This Licence is governed by English Law. Except where ARM agrees
otherwise in a written contract signed by you and ARM, this is the only
agreement between you and ARM relating to the ARM Deliverables and it
may only be modified by written agreement between you and ARM. Except as
expressly agreed in writing, this Licence may not be modified by
purchase orders, advertising or other representation by any person. If
any clause or sentence in this Licence is held by a court of law to be
illegal or unenforceable the remaining provisions of this Licence shall
not be affected thereby. The failure by ARM to enforce any of the
provisions of this Licence, unless waived in writing, shall not
constitute a waiver of ARM's rights to enforce such provision or any
other provision of this Licence in the future. This Licence may not be
assigned without the prior written consent of ARM.

ARM contract reference LEC-PRE-00489



========================================================
On 8/29/2014 11:52 PM, Chris Nott wrote:
> Absent answer means no.
>
> I had the same idea. Actually I have played around with using vendor 
> libraries from TI and ST, and there is no problem compiling them in. I 
> can't see any reason CMSIS wouldn't fit in fine too. Actually from 
> memory the useful parts of CMSIS comprise two parts, ARM specific 
> intrinsic instructions and register locations in a header file, and 
> reasonable math libraries. It shouldn't be a bit deal to use these, I 
> would ignore the CMSIS linker scripts and such though.
>
> I would like to see CMSIS and parts of the vendor libraries integrated 
> with RTEMS if possible, but I am uncertain about licensing 
> compatibility. It seems daft to have to rewrite register locations and 
> platform specific instructions if the vendors provide them..
>
> Regards,
> Chris.
>
>
> On 29/08/2014 10:04 AM, Daniel Gutson wrote:
>> absent answer means NO?
>>
>> Thanks,
>>
>>      Daniel.
>>
>> On Thu, Aug 28, 2014 at 11:31 AM, Daniel Gutson
>> <daniel.gutson at tallertechnologies.com> wrote:
>>> Hi,
>>>
>>>     is there any precedent regarding a CMSIS abstraction layer
>>> implementation on RTEMS?
>>>
>>> Thanks,
>>>
>>>     Daniel.
>>>
>>> --
>>>
>>> Daniel F. Gutson
>>> Chief Engineering Officer, SPD
>>>
>>>
>>> San Lorenzo 47, 3rd Floor, Office 5
>>>
>>> Córdoba, Argentina
>>>
>>>
>>> Phone: +54 351 4217888 / +54 351 4218211
>>>
>>> Skype: dgutson
>>
> _______________________________________________
> devel mailing list
> devel at rtems.org
> http://lists.rtems.org/mailman/listinfo/devel

-- 
Joel Sherrill, Ph.D.             Director of Research & Development
joel.sherrill at OARcorp.com        On-Line Applications Research
Ask me about RTEMS: a free RTOS  Huntsville AL 35805
Support Available                (256) 722-9985




More information about the devel mailing list