Skip to content

Example of a Reference Example Framework for matching Sensor Shields and Boards using CMSIS-Pack

License

Notifications You must be signed in to change notification settings

Open-CMSIS-Pack/Sensor-SDK-Example

Repository files navigation

License Build Test

Sensor-SDK-Example

This software pack demonstrates the usage of CMSIS-Toolbox » Reference Applications for the distribution of Sensor interfaces along with example projects. It contains sensor interface middleware that utilizes I2C or SPI CMSIS-Driver for usage in production code.

The pack is based on the NXP IoT Sensing Software Development Kit (ISSDK) and demonstrates how the CMSIS-Toolbox simplifies the distribution of software frameworks. The example projects that are part of the SDK use interfaces of a board layer that is distributed as part of a Board Support Pack (BSP). Many board layers are already provided in the BSP packs available on github.com/Open-CMSIS-Pack making it easy to evaluate the NXP sensor Arduino shields with range of different microcontroller boards.

Select Context Set

The relevant content of this software pack is in the following directories:

Directory Description
sensors Interface middleware that connects a sensor to I2C or SPI driver.
shields Contains the mapping of the interface middleware to physical I/O (of an Arduino shield).
examples Demonstrate the usage of the middleware.
drivers Contains helper functions for the examples.

The Pack Description file NXP.ISSDK.pdsc defines the software components for sensor interface middleware and the driver utilities. These software components are used by the examples but can be also used in the production software.

Usage

This pack has not public release yet. Download or fork this repository and install it as a private pack with:

cpackget add <path>/NXP.ISSDK.pdsc

Select a board that provides a board layer in the BSP with ARDUINO connections. Currently several ST board BSP provide such layers, for example the STM32F469I-DISCO. Add this BSP pack using cpackget.

You may now use the Keil Studio for VS Code or the VS Code CMSIS Solution extension and open the Create New Solution dialog to select this board and a sensor example.

CreateNewSolution

The IDE will evaluate the compatible software layers and shows the Configure Solution view. Depending on the sensor example several options may be available. Click OK to choose a selection.

Add Software Layer

This completes the setup of the example that now contains the settings for the layers. As the solution contains a collection of similar examples, you may now choose one using the Manage Solution.

Select Context Set

Project Structure

This AWS MQTT Mutual Authentication example uses the CMSIS-Toolbox csolution project format with CMSIS software packs and software layers. The default configuration uses a AVH-FVP simulation model. No physical hardware is required to explore this example. By using different layers it can run on physical evaluation boards, use different communication stacks, or WiFi modules.

Project File Description
*.csolution.yml Specifies the target hardware, build types, and defines the actual software layers used.
*.cproject.yml Contains the source files and components that belong to one example. Note that the solution may contain multiple similar examples.
Board/.../Board.clayer.yml Contains the hardware interfaces to the device and board peripherals.
Shield/.../Shield.clayer.yml Contains the pin mapping to the Arduino Shield.

Configure AWS IoT Thing

Use Build solution to translate the application.

Manual Configuration

Refer to CMSIS-Toolbox - Reference Applications - Usage for use command line tools to obtain above information. However you may also use the CMSIS-Toolbox command csolution list layers to obtain information about the layers that are available in the installed packs. These layers may be copied to your project directory and defined as shown above.

csolution list layers
.../Sensor-SDK-Example/shields/a8974/Shield.clayer.yml (layer type: Shield)
.../Sensor-SDK-Example/shields/agm01/Shield.clayer.yml (layer type: Shield)
.../Sensor-SDK-Example/shields/agmp03/Shield.clayer.yml (layer type: Shield)
.../Sensor-SDK-Example/shields/p3115/Shield.clayer.yml (layer type: Shield)
.../Arm/Packs/Keil/STM32F469I-DISCO_BSP/1.0.0/Layers/Default/Board.clayer.yml (layer type: Board)

Use cbuild to translate the application.

cbuild xxx.csolution.yml --context .Debug+MyBoard --packs

Build and Run

Once the application is translated use:

  • A programmer or debugger to download the application.
  • Run the application and view messages in a debug printf or terminal window.

Potential Improvements

This example pack may be improved by adding links to documentation for each of the software components. Specifically information about the configuration settings of the sensor interface is missing and needs to be derived from the Shield definitions.

Issues

Please feel free to raise an issue on GitHub to report problems.

About

Example of a Reference Example Framework for matching Sensor Shields and Boards using CMSIS-Pack

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 3

  •  
  •  
  •