diff --git a/libraries/CMSIS/Documentation/General/html/index.html b/libraries/CMSIS/Documentation/General/html/index.html deleted file mode 100644 --- a/libraries/CMSIS/Documentation/General/html/index.html +++ /dev/null @@ -1,158 +0,0 @@ - - - - - -CMSIS: Introduction - - - - - - - - - - - -
-
- - - - - - - -
-
CMSIS -  Version 3.20 -
-
Cortex Microcontroller Software Interface Standard
-
-
- -
- -
- - -
-
- -
-
-
- -
-
-
-
Introduction
-
-
-

The Cortex Microcontroller Software Interface Standard (CMSIS) is a vendor-independent hardware abstraction layer for the Cortex-M processor series. The CMSIS enables consistent and simple software interfaces to the processor and the peripherals, simplifying software re-use, reducing the learning curve for microcontroller developers, and reducing the time to market for new devices.

-

The CMSIS is defined in close cooperation with various silicon and software vendors and provides a common approach to interface to peripherals, real-time operating systems, and middleware components. The CMSIS is intended to enable the combination of software components from multiple middleware vendors.

-

The CMSIS components are:

-
    -
  • CMSIS-CORE: API for the Cortex-M processor core and peripherals. It provides at standardized interface for Cortex-M0, Cortex-M3, Cortex-M4, SC000, and SC300. Included are also SIMD intrinsic functions for Cortex-M4 SIMD instructions.
  • -
-
    -
  • CMSIS-DSP: DSP Library Collection with over 60 Functions for various data types: fix-point (fractional q7, q15, q31) and single precision floating-point (32-bit). The library is available for Cortex-M0, Cortex-M3, and Cortex-M4. The Cortex-M4 implementation is optimized for the SIMD instruction set.
  • -
-
    -
  • CMSIS-RTOS API: Common API for Real-Time operating systems. It provides a standardized programming interface that is portable to many RTOS and enables therefore software templates, middleware, libraries, and other components that can work acrosss supported the RTOS systems.
  • -
-
    -
  • CMSIS-SVD: System View Description for Peripherals. Describes the peripherals of a device in an XML file and can be used to create peripheral awareness in debuggers or header files with peripheral register and interrupt definitions.
  • -
-
    -
  • CMSIS-DAP: Debug Access Port. Standardized firmware for a Debug Unit that connects to the CoreSight Debug Access Port. CMSIS-DAP is distributed as separate package and well suited for integration on evaluation boards.
  • -
-
-CMSIS_V3_small.png -
-CMSIS Structure
-

-Motivation

-

CMSIS has been created to help the industry in standardization. It is not a huge software layer that introduces overhead and does not define standard peripherals. The silicon industry can therefore support the wide variations of Cortex-M processor-based devices with this common standard. In detail the benefits of the CMSIS are:

-
    -
  • Consistent software interfaces improve the software portability and re-usability. Generic software libraries can interface with device libraries from various silicon vendors.
  • -
  • Reduces the learning curve, development costs, and time-to-market. Developers can write software quicker through an easy to use and standardized software interface.
  • -
  • Provides a compiler independent layer that allows using different compilers. CMSIS is supported by all mainstream compilers (ARMCC, IAR, and GNU).
  • -
  • Enhances program debugging with peripheral information for debuggers and ITM channels for printf-style output and RTOS kernel awareness.
  • -
-

-Coding Rules

-

The CMSIS uses the following essential coding rules and conventions:

-
    -
  • Compliant with ANSI C and C++.
  • -
  • Uses ANSI C standard data types defined in <stdint.h>.
  • -
  • Variables and parameters have a complete data type.
  • -
  • Expressions for #define constants are enclosed in parenthesis.
  • -
  • Conforms to MISRA 2004. MIRSA rule violations are documented.
  • -
-

In addition, the CMSIS recommends the following conventions for identifiers:

-
    -
  • CAPITAL names to identify Core Registers, Peripheral Registers, and CPU Instructions.
  • -
  • CamelCase names to identify function names and interrupt functions.
  • -
  • Namespace_ prefixes avoid clashes with user identifiers and provide functional groups (i.e. for peripherals, RTOS, or DSP Library).
  • -
-

The CMSIS is documented within the source files with:

-
    -
  • Comments that use the C or C++ style.
  • -
  • Doxygen compliant function comments that provide:
      -
    • brief function overview.
    • -
    • detailed description of the function.
    • -
    • detailed parameter explanation.
    • -
    • detailed information about return values.
    • -
    -
  • -
-

Doxygen comment example:

-
/** 
- * @brief  Enable Interrupt in NVIC Interrupt Controller
- * @param  IRQn  interrupt number that specifies the interrupt
- * @return none.
- * Enable the specified interrupt in the NVIC Interrupt Controller.
- * Other settings of the interrupt such as priority are not affected.
- */
-

-Licence

-

The CMSIS is provided free of charge by ARM and can be used for all Cortex-M based devices.

-

The software portions that are deployed in the application program are under a BSD license which allows usage of CMSIS in any commercial or open source projects.

-

View the LICENCE AGREEMENT for CMSIS in detail.

-
-
- - - -