# CMSIS Reference

Hardware register abstraction layer for the SOC.

# Summary

Variables

- RSL15_Sys_Version : RSL15 firmware version (variable)
- __Heap_Begin__ : Start location for the heap.
- __Heap_Limit__ : Top limit for the heap.
- __stack_limit : Bottom limit for the stack.
- __stack : Start location for the stack.
- __data_init__ : Pointer to the data to used to initialize volatile memory.
- __data_start__ : Start address of the initialized data area in volatile memory.
- __data_end__ : End address of the initialized data area in volatile memory.
- __bss_start__ : Start address of the cleared data area in volatile memory.
- __bss_end__ : End address of the cleared data area in volatile memory.
- __preinit_array_start__ : Weakly defined function list pointer for pre-initialization functions.
- __preinit_array_end__ : Weakly defined pointer to the end of the pre-initialization function list.
- __init_array_start__ : Weakly defined function list pointer for initialization functions.
- __init_array_end__ : Weakly defined pointer to the end of the initialization function list.
- flash_layout : Flash layout for the RSL15 device.
- SystemCoreClock : Contains the current SYS_CLK frequency, in Hz.

Data Structures

- flash_region : Structure used to define flash regions.

Macros

- RSL15_SYS_VER_MAJOR : RSL15 header file major version.
- RSL15_SYS_VER_MINOR : RSL15 header file minor version.
- RSL15_SYS_VER_REVISION : RSL15 header file revision version.
- RSL15_SYS_VER : RSL15 firmware version.
- __ARMv8MML_REV : Arm v8 architecture revision.
- __CM33_REV : Core revision r0p4.
- __FPU_PRESENT : FPU present.
- __DSP_PRESENT : DSP extension present.
- __SAUREGION_PRESENT : SAU regions present.
- __MPU_PRESENT : MPU present.
- __VTOR_PRESENT : VTOR present.
- __NVIC_PRIO_BITS : 3 bits used for interrupt priority levels
- __Vendor_SysTickConfig : Standard SysTick configuration is used.
- I2C_REF_VALID : Validation of I2C register block pointer reference for assert statements.
- LIN_REF_VALID : Validation of LIN register block pointer reference for assert statements.
- PCM_REF_VALID : Validation of PCM register block pointer reference for assert statements.
- PWM_REF_VALID : Validation of PWM register block pointer reference for assert statements.
- SPI_REF_VALID : Validation of SPI register block pointer reference for assert statements.
- UART_REF_VALID : Validation of UART register block pointer reference for assert statements.
- TIMER_REF_VALID : Validation of TIMER register block pointer reference for assert statements.
- DMA_REF_VALID : Validation of DMA register block pointer reference for assert statements.
- FLASH_REF_VALID : Validation of FLASH register block pointer reference for assert statements.
- GPIO_PAD_COUNT : GPIO peripheral definitions.
- GPIO_GROUP_LOW_PAD_RANGE : Number of GPIO pads in the lowest group (all)
- GPIO_EVENT_CHANNEL_COUNT : Number of available GPIO interrupts.
- GPIO0 : GPIO pads definitions.
- GPIO1 : GPIO 1.
- GPIO2 : GPIO 2.
- GPIO3 : GPIO 3.
- GPIO4 : GPIO 4.
- GPIO5 : GPIO 5.
- GPIO6 : GPIO 6.
- GPIO7 : GPIO 7.
- GPIO8 : GPIO 8.
- GPIO9 : GPIO 9.
- GPIO10 : GPIO 10.
- GPIO11 : GPIO 11.
- GPIO12 : GPIO 12.
- GPIO13 : GPIO 13.
- GPIO14 : GPIO 14.
- GPIO15 : GPIO 15.
- SYS_DUMMY_READ : Register that always reads back as 0x00000000.
- SYS_DUMMY_WRITE : Register to which writes are ineffective.
- ERRNO_NO_ERROR : No error.
- ERRNO_GENERAL_FAILURE : General error.
- DEFAULT_FREQ : High speed main RC oscillator default frequency set by boot ROM application Default value is 3 MHz uncalibrated.
- STANDBYCLK_DEFAULT_FREQ : Low speed standby RC oscillator default frequency.
- RFCLK_BASE_FREQ : Frequency of the 48 MHz crystal used for the RF front-end.
- EXTCLK_MAX_FREQ : Maximum frequency supported by using an external clock.
- SWCLK_MAX_FREQ : Maximum frequency supported by the SWJ-DP interface.
- RCOSC_MAX_FREQ : Maximum frequency supported by the internal RC oscillator.

Functions

- _start : Initialize the application data and start execution with main.
- _sbrk : Increment (or decrement) the top of the heap.
- SystemInit : Initializes the system by clearing and disabling interrupts, updating the SystemCoreClock variable and updating flash timing registers based on the read SYS_CLK.
- SystemCoreClockUpdate : Reads system registers to determine the current system clock frequency, update the SystemCoreClock variable and update the flash timing registers accordingly.