# Introduction

The Arm Cortex-M33 processor is supported by a standards-compliant CMSIS library and extensions to the CMSIS requirements. The CMSIS library performs the following functions:

- Provides access to the generic functions provided by the standard Arm CMSIS implementation
  - The functions are included in the CMSIS header files, and reference documentation is provided by the standard Arm CMSIS documentation (http://arm-software.github.io/CMSIS_5/Core/html/modules.html).
- Implements the CMSIS-required device-specific functions with an appropriate implementation for RSL15
- Adds extensions to the generic and required CMSIS functions to provide additional common support functions, including:
  - Weak definitions for all interrupt handlers for the Arm Cortex-M33 processor and associated NVIC
  - A C start-up routine for ensuring that applications reach main in a safe state
  - Dynamic memory allocation (through an implementation of sbrk)
  - Hardware-safe functions for updating the system clock source and operating frequency

The weakly defined interrupt handlers included in the CMSIS library provide empty implementation for the interrupt vectors, each of which simply returns from the interrupt. These interrupt handlers have the form <interrupt_name>_IRQHandler(). If a user application defines a function with this same name, the user application’s definition of the interrupt handler replaces the default (empty) handlers.

The CMSIS library is supported by the top-level include file for RSL15, rsl15.h, which includes all CMSIS, Hardware Definitions, and Hardware Abstraction Layer elements. To use the CMSIS library, include rsl15.h and link against the libcmsis.a library archive.

For the complete API, refer to CMSIS Reference.