KB: Setting Up the RSL10 CMSIS Drivers via the CMSIS Configuration Wizard


[RSL10 - Knowledge Base]


Question

To increase modularity, to allow for rapid configuration, and to provide support for various RSL family Arm-based devices, we have added certain Drivers in the RSL10 Software Package that are compliant with the CMSIS (Cortex Microcontroller Software and Interface Standard) guidelines. The CMSIS Drivers currently available support the configuration and use of DMA, GPIO, I2C, SAI, SPI and USART interfaces. To compliment the inclusion of these CMSIS Drivers, we have also bundled a ‘CMSIS Configuration Wizard’ tool into our RSL10 IDE that allows for the rapid configuration of the driver functionalities.

Where are these CMSIS Driver configurations located within the RSL10 IDE Sample Projects, and how can the ‘CMSIS Configuration Wizard’ tool be used to set up these interface behaviors?


Recommendation

All of the RSL10 sample projects available within the Software Package (version 3.0 and greater) come with ‘RTE_Device.h’ files within the ‘RTE/Device/RSL0’ directory that can be used to quickly configure the CMSIS Driver settings. The image below shows where this file can be found in the ‘spi_cmsis_driver’ sample project:

To make use of the ‘CMSIS Configuration Wizard’ for rapid configuration, right click on the ‘RTE_Device.h’ file, hover over the ‘Open With’ option and select ‘CMSIS Configuration Wizard’, as shown below:

Once you have this window open within the RSL10 IDE, ensure you are in the ‘CMSIS Configuration Wizard’ mode (not the ‘Source Editor’ mode) using the view options on the bottom of the window. You can now begin expanding the Driver CMSIS Driver drop-down menus and exploring the configuration options. In the example below, you can see the configurations for the SPI0 Interface, such as: Master/Slave mode, Clock Speeds, Clock Polarity, Word Sizing, and DIO Pin Selection for the Various digital SPI singal routing.

Once you have configured the CMSIS Driver that you intend to use, you must add the appropriate ‘#include’ calls to the project header, define the Global variables for your Drivers within your project source code, and ensure that you initialize the Structures with the settings you just configured in the ‘RTE_Device.h’ file. An example of how these are defined and initialized for the GPIO and SPI Drivers is provided below:

image

image

CMSIS_5

image

To learn about how these Drivers are implemented and how they can be used on the RSL10, the source files outlined below are available within the ‘RTE/CMSIS_Driver/’ and ‘RTE/Device/RSL10/’ directories of your project. These source code files, and their respective header definitions, will provide valuable insight into how this Driver can be used to its full potential, and also allow for further investigation into how the driver is behaving at a Hardware level.