General.txt

(123 KB) Pobierz
/**
\mainpage Overview

The CMSIS-Driver specification is a software API that describes peripheral driver interfaces for middleware stacks and user
applications. The CMSIS-Driver API is designed to be generic and independent of a specific RTOS making it reusable across a
wide range of supported microcontroller devices. The CMSIS-Driver API covers a wide range of use cases for the supported
peripheral types, but can not take every potential use-case into account. Over time, it is indented to extend the
CMSIS-Driver API with further groups to cover new use-cases.

The CMSIS Software Pack publishes the API Interface under the Component Class \b CMSIS \b Driver with header files and a
documentation. These header files are the reference for the implementation of the standardized peripheral driver interfaces. 
These implementations are published typically in the Device Family Pack of a related microcontroller family under the
Component Class \b CMSIS \b Driver. A Device Family Pack may contain additional interfaces in the Component Class \b Device
to extend the standard Peripheral Drivers covered by this CMSIS-Driver specification with additional device specific
interfaces for example for Memory BUS, GPIO, or DMA.

The standard peripheral driver interfaces connect microcontroller peripherals for example with middleware that implements
communication stacks, file systems, or graphic user interfaces. Each peripheral driver interface may provide multiple
instances reflecting the multiple physical interfaces of the same type in a device. For example the two physical SPI
interfaces are reflected with a separate \ref AccessStruct for SPI1 and SPI2. The \ref AccessStruct is the interface of a
driver to the middleware component or the user application.

\image html driver.png  "Peripheral Driver Interfaces and Middleware"

The following CMSIS-Driver API groups are defined:
  - \ref can_interface_gr "CAN": Interface to CAN bus peripheral.
  - \ref eth_interface_gr "Ethernet": Interface to Ethernet MAC and PHY peripheral.
  - \ref i2c_interface_gr "I2C": Multi-master Serial Single-Ended Bus interface driver.
  - \ref mci_interface_gr "MCI": Memory Card Interface for SD/MMC memory.
  - \ref nand_interface_gr "NAND": NAND Flash Memory interface driver.
  - \ref flash_interface_gr "Flash": Flash Memory interface driver.
  - \ref sai_interface_gr "SAI": Serial audio interface driver (I2s, PCM, AC'97, TDM, MSB/LSB Justified).
  - \ref spi_interface_gr "SPI": Serial Peripheral Interface Bus driver.
  - \ref storage_interface_gr "Storage": Storage device interface driver.
  - \ref usart_interface_gr "USART": Universal Synchronous and Asynchronous Receiver/Transmitter interface driver.
  - \ref usb_interface_gr "USB": Interface driver for USB Host and USB Device communication.
  - \ref vio_interface_gr "VIO": API for virtual I/Os (VIO).
  - \ref wifi_interface_gr "WiFi": Interface driver for wireless communication.

A list of current CMSIS-Driver implementations is available \ref listOfImplementations "here".

\note Usually, WiFi chips and modules have their own networking stack incorporated. This means that payload data is sent via
a serial interface (SPI or USART) to the WiFi chip/module and the Ethernet frames are assembled inside. If you intend to use
a TCP/IP stack from a middleware component with a WiFi chip/module, make sure that the WiFi driver has a \ref wifi_bypass_gr.
This allows to send the Ethernet frames assembled by the TCP/IP component transparently through the WiFi chip/module.

<hr>

CMSIS-Driver in ARM::CMSIS Pack
-------------------------------

The following files relevant to CMSIS-Driver are present in the <b>ARM::CMSIS</b> Pack directories:
| Directory                      | Content                                                                |
|--------------------------------|------------------------------------------------------------------------|
|\b CMSIS/Documentation/Driver   | This documentation                                                     |
|\b CMSIS/Driver/Include         | Driver header files (Driver_<i>interface</i>.h, Driver_Common.h)       |
|\b CMSIS/Driver/DriverTemplates | Driver implementation template files (Driver_<i>interface</i>.c)       |

<hr>
*/

/*=======0=========1=========2=========3=========4=========5=========6=========7=========8=========9=========0=========1====*/
/**
\page driver_revisionHistory Revision History of CMSIS-Driver


<table class="cmtable" summary="Revision History">
    <tr>
      <th>Version</th>
      <th>Description</th>
    </tr>
    <tr>
      <td>2.8.0</td>
      <td>
        - Changed: removed volatile from status related typedefs APIs
        - Enhanced WiFi Interface API with support for polling Socket Receive/Send
        - Added VIO API 0.1.0 (Preview)
      </td>
    </tr>
    <tr>
      <td>2.7.1</td>
      <td>
        - Finalized WiFi Interface API 1.0.0.
      </td>
    </tr>
    <tr>
      <td>2.7.0</td>
      <td>
        - Added WiFi Interface API 1.0.0-beta.
        - Added custom driver selection to simplify implementation of new CMSIS-Driver.
      </td>
    </tr>
    <tr>
      <td>2.6.0</td>
      <td>
        - Enhanced CAN-Driver API with explicit BUSOFF state.
        - Enhanced NAND-Driver API for ECC handling.
      </td>
    </tr>
    <tr>
      <td>2.05</td>
      <td>
        - Changed: All typedefs related to status have been made volatile. 
      </td>
    </tr>
    <tr>
      <td>2.04</td>
      <td>
        - Added: template files for CAN interface driver.
      </td>
    </tr>
    <tr>
      <td>2.03</td>
      <td>
        - Added: CAN API for an interface to CAN peripherals
        - Added: Overview of the \ref driverValidation "CMSIS-Driver Validation" Software Pack.
        - Enhanced: documentation and clarified behavior of the \ref CallSequence.
      </td>
    </tr>
    <tr>
      <td>2.02</td>
      <td>
        - Minor API changes, for exact details refer to the header file of each driver.
        - Added: Flash Interface, NAND interface.
      </td>
    </tr>
    <tr>
      <td>2.00</td>
      <td>API with non-blocking data transfer, independent of CMSIS-RTOS.</td>
    </tr>
    <tr>
      <td>1.10</td>
      <td>Initial release</td>
    </tr>
</table>
*/

/*=======0=========1=========2=========3=========4=========5=========6=========7=========8=========9=========0=========1====*/
/**
\page listOfImplementations CMSIS-Driver Implementation List

The following table shows a list of current CMSIS-Driver implementations. It is regularly updated, so it is subject to change.

[CAN]: \ref can_interface_gr "CAN"
[Ethernet MAC]: \ref eth_mac_interface_gr "Ethernet MAC".
[Ethernet PHY]: \ref eth_phy_interface_gr "Ethernet PHY".
[I2C]: \ref i2c_interface_gr "I2C".
[MCI]: \ref mci_interface_gr "MCI".
[NAND]: \ref nand_interface_gr "NAND".
[Flash]: \ref flash_interface_gr "Flash".
[SAI]: \ref sai_interface_gr "SAI".
[SPI]: \ref spi_interface_gr "SPI".
[Storage]: \ref storage_interface_gr "Storage".
[USART]: \ref usart_interface_gr "USART".
[USB Host]: \ref usbh_interface_gr "USB Host".
[USB Device]: \ref usbd_interface_gr "USB Device".
[VIO]: \ref vio_interface_gr "VIO".
[WiFi]: \ref wifi_interface_gr "WiFi"

<table class="cmtable" summary="CMSIS-Driver Implementation List">
        <tr>
            <th>Vendor</th>
            <th>Device/Family</th>
            <th>[CAN]</th>
            <th>[Ethernet MAC]</th>
            <th>[Ethernet PHY]</th>
            <th>[I2C]</th>
            <th>[MCI]</th>
            <th>[NAND]</th>
            <th>[Flash]</th>
            <th>[SAI]</th>
            <th>[SPI]</th>
            <th>[Storage]</th>
            <th>[USART]</th>
            <th>[USB Host]</th>
            <th>[USB Device]</th>
            <th>[VIO]</th>
            <th>[WiFi]</th>
        </tr>
        <tr>
            <td>Arm</td>
            <td>Musca-A1</td>
            <td></td>
            <td></td>
            <td></td>
            <td></td>
            <td></td>
            <td></td>
            <td><center>&radic;</center></td>
            <td></td>
            <td></td>
            <td></td>
            <td><center>&radic;</center></td>
            <td></td>
            <td></td>
            <td></td>
            <td></td>
        </tr>
        <tr>
            <td></td>
            <td>Musca-B1</td>
            <td></td>
            <td></td>
            <td></td>
            <td></td>
            <td></td>
            <td></td>
            <td><center>&radic;</center></td>
            <td></td>
            <td></td>
            <td></td>
            <td><center>&radic;</center></td>
            <td></td>
            <td></td>
       ...
Zgłoś jeśli naruszono regulamin