|
|
@@ -58,7 +58,7 @@ In detail the benefits of the CMSIS are:
|
|
|
- Overall CMSIS reduces the learning curve, development costs, and time-to-market. Developers can write software quicker through a variety of easy-to-use, standardized software interfaces.
|
|
|
- Consistent software interfaces improve the software portability and re-usability. Generic software libraries and interfaces provide consistent software framework.
|
|
|
- Provides interfaces for debug connectivity, debug peripheral views, software delivery, and device support to reduce time-to-market for new microcontroller deployment.
|
|
|
- - Provides a compiler independent layer that allows using different compilers. CMSIS is supported by all mainstream compilers (ARMCC, IAR, and GNU).
|
|
|
+ - Provides a compiler independent layer that allows using different compilers. CMSIS is supported by mainstream compilers.
|
|
|
- Enhances program debugging with peripheral information for debuggers and ITM channels for printf-style output and RTOS kernel awareness.
|
|
|
- CMSIS is delivered in CMSIS-Pack format which enables fast software delivery, simplifies updates, and enables consistent integration into development tools.
|
|
|
|
|
|
@@ -70,7 +70,7 @@ The CMSIS uses the following essential coding rules and conventions:
|
|
|
- Uses ANSI C standard data types defined in \b <stdint.h>.
|
|
|
- Variables and parameters have a complete data type.
|
|
|
- Expressions for \em \#define constants are enclosed in parenthesis.
|
|
|
- - Conforms to MISRA 2004. MISRA rule violations are documented.
|
|
|
+ - Conforms to MISRA 2012 (but does not claim MISRA compliance). MISRA rule violations are documented.
|
|
|
|
|
|
In addition, the CMSIS recommends the following conventions for identifiers:
|
|
|
- \b CAPITAL names to identify Core Registers, Peripheral Registers, and CPU Instructions.
|
|
|
@@ -97,6 +97,27 @@ Doxygen comment example:
|
|
|
\endverbatim
|
|
|
|
|
|
|
|
|
+\section Validation Validation
|
|
|
+
|
|
|
+The various components of CMSIS Version 5 are validated using mainstream compilers. To get a diverse coverage,
|
|
|
+ARM uses the ARM Compiler v5 (based on EDG front-end), the ARM Compiler v6 (based on LLVM front-end), and the
|
|
|
+GCC Compiler) in the various tests. For each component the section \b "Validation" describes the scope of the
|
|
|
+various verifications.
|
|
|
+
|
|
|
+CMSIS components are compatible with a range of C and C++ language standards. The CMSIS components comply with
|
|
|
+the <a href="http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ihi0036b/index.html">Application Binary
|
|
|
+Interface (ABI) for the ARM Architecture</a> (exception CMSIS-RTOS v1). This ensures C API interfaces that support
|
|
|
+inter-operation between various toolchains.
|
|
|
+
|
|
|
+As CMSIS defines API interfaces and functions that scale to a wide range of processors and devices, the scope of
|
|
|
+the run-time test coverage is limited. However, several components are validated using dedicated test suites.
|
|
|
+
|
|
|
+The CMSIS source code is checked for MISRA C:2012 conformance using PC-Lint. MISRA deviations are documented with
|
|
|
+reasonable effort, however ARM does not claim MISRA compliance as there is today for example no guideline enforcement
|
|
|
+plan. The CMSIS source code is not checked for MISRA C++:2008 conformance as there is a risk that it is incompatible
|
|
|
+with C language standards, specifically warnings that may be generated by the various C compilers.
|
|
|
+
|
|
|
+
|
|
|
\section License Licence
|
|
|
|
|
|
The CMSIS is provided free of charge by ARM under Apache 2.0 license.
|
|
|
@@ -127,8 +148,8 @@ index.html file for this documentation, and the following sub-directories:
|
|
|
|\b Include |Include files for <a href="../../Core/html/index.html"><b>CMSIS-CORE</b></a> and <a href="../../DSP/html/index.html"><b>CMSIS-DSP</b></a>|
|
|
|
|\b Lib |<a href="../../DSP/html/index.html"><b>CMSIS-DSP</b></a> generated libraries for ARMCC and GCC |
|
|
|
|\b Pack |<a href="../../Pack/html/_pack__example.html"><b>CMSIS-Pack</b></a> example |
|
|
|
-|\b RTOS |<a href="../../RTOS/html/index.html"><b>CMSIS-RTOS API Version 1</b></a> along with RTX reference implementation |
|
|
|
-|\b RTOSv2 |<a href="../../RTOSv1/html/index.html"><b>CMSIS-RTOS Version 2</b></a> along with RTX reference implementation |
|
|
|
+|\b RTOS |<a href="../../RTOS/html/index.html"><b>CMSIS-RTOS Version 1</b></a> along with RTX reference implementation |
|
|
|
+|\b RTOS2 |<a href="../../RTOS2/html/index.html"><b>CMSIS-RTOS Version 2</b></a> along with RTX reference implementation |
|
|
|
|\b SVD |<a href="../../SVD/html/index.html"><b>CMSIS-SVD</b></a> example |
|
|
|
|\b UserCodeTemplates\\ARM |ITM_Retarget.c, CMSIS <a href="../../Core/html/group___i_t_m___debug__gr.html"><b>retarget output</b></a> to ITM Channel 0 template file |
|
|
|
|\b Utilities |PACK.xsd (<a href="../../Pack/html/_pack__example.html"><b>CMSIS-Pack</b></a> schema file), PackChk.exe (checking tool for software packs), \n CMSIS-SVD.xsd (<a href="../../SVD/html/index.html"><b>CMSIS-SVD</b></a> schema file), SVDConv.exe (conversion tool for SVD files)|
|
|
|
@@ -166,7 +187,7 @@ In addition, each CMSIS component has its own release history:
|
|
|
<td>
|
|
|
Added <a href="http://www.arm.com/products/processors/instruction-set-architectures/armv8-m-architecture.php" target="_blank"><b>ARMv8-M architecture</b></a> support.
|
|
|
- CMSIS-CORE 5.0.0
|
|
|
- - CMSIS-RTOS 2.0.0
|
|
|
+ - CMSIS-RTOS 2.0.0
|
|
|
- CMSIS-PACK 1.4.4 introducing CPDSC project description
|
|
|
</td>
|
|
|
</tr>
|