CMSIS?

Daniel Gutson daniel.gutson at tallertechnologies.com
Tue Sep 2 14:52:44 UTC 2014


On Tue, Sep 2, 2014 at 11:51 AM, Joel Sherrill
<joel.sherrill at oarcorp.com> wrote:
> 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.

Would this mean that an implementation from scratch would be the best choice?


>
> --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
>
>
> _______________________________________________
> devel mailing list
> devel at rtems.org
> http://lists.rtems.org/mailman/listinfo/devel



-- 

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


More information about the devel mailing list