CMSIS?
Joel Sherrill
joel.sherrill at oarcorp.com
Tue Sep 2 15:15:55 UTC 2014
On 9/2/2014 9:52 AM, Daniel Gutson wrote:
> 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?
Unfortunately, that's the solution we have always arrived at. If the
specification
itself doesn't have restrictions on implementations.
With that said, if there is an independent open source implementation
which is
portable, we have sometimes had luck in going that route. Even when it
required
asking for a license change.
DISCLAIMER: I have no idea what the specification says technically. I
looked at the
figure and the license. Seems useful enough for cross-platform ARM code.
And
if some of those features are appropriate, this would allow
cross-platform to
non-ARM targets. But that is clearly not in ARM's best interests for
their own
implementation.
--joel
>
>> --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
--
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