Approach for Porting WiSeConnect™ SDK v3.x for an External Host#
The following figure illustrates the software-layered architecture of an SiWx917™ application in Network Co-processor (NCP) mode. The architecture presents the application flow in terms of software functional layers beginning with host user application, the WiSeConnect™ SDK v3.x (hereafter referred to as SDK v3.x), host platform drivers, an interface between a host MCU and SiWx917 NCP (SPI/UART/SDIO), and ending with the SiWx917 NCP core layers. It also highlights the functional layers of SDK v3.x that are to be ported.
The SDK v3.x provides the SiWx917 Wi-Fi/BLE connectivity, and application protocol API to be used at the host application. It also contains the SiWx917 NCP examples. The functional layers of SDK v3.x include the CMSIS-RTOS2 Abstraction Layer, API implementation libraries, SiWx917 driver, and Hardware Abstraction Layer (HAL). Below are the layers that need to be ported.
CMSIS-RTOS2 Abstraction Layer: The SDK v3.x supports the CMSIS-RTOS2 API. The CMSIS-RTOS2 is a generic Real-Time Operating System (RTOS) interface API that should be ported to the desired RTOS library such as FreeRTOS, ThreadX, etc.
Note: CMSIS-RTOS2 is a vendor-independent RTOS interface layer for ARM Cortex processors. It abstracts out the underlying OS Kernel from the application developer. The CMSIS-based abstraction layer is implemented for the 3.x SDK to standardize the developer’s experience.
HAL: The HAL of SDK v3.x abstracts out the underlying host platform-specific functions/drivers. It contains the host platform-specific abstraction APIs that must be written by the application writer using the host platform drivers to enable the SDK v3.x to interact with their host platform.
The host MCU can communicate to SiWx917 via SPI or UART or SDIO interface. Currently, the SDK v3.x by default comes with the SPI and UART interface support.
The SiWx917 Network Co-Processor (NCP) is a comprehensive framework that runs Network, Bluetooth, Wi-Fi, and wireless radio stacks.
The following figure shows the folders present in the SDK v3.x. It also highlights the SDK v3.x folders that can be added to your application project based on your requirements.