Wirepas SDK
|
As a prerequisite for this guide, you must be able to successfully build one of the provided application example from the SDK.
This page contains following sections:
To ease the management of SDK environement, Wirepas maintains a docker image with all the required dependencies installed.
For more information to use it, please read guidance from Wirepas Helpdesk.
It is also possible to install requirement in your native environement but it is not described here. Requirement are listed in Github SDK main page under Requirement section.
Checkout flashing guidance from Wirepas Helpdesk.
The nRF52 chip version supported by Wirepas Mesh has minimum 512kB of flash and 64kB of RAM.
This page contains following sections:
As stated in description of memory partitioning, the available flash memory for application is limited by size of the memory area that is used commonly for application and also scratchpad image. If application size is too large, there is possibility that large scratchpad image will override application image. The default maximum size of the application has been set so that it is always safe to use scratchpad image that will contain both firmware and application.
The recommended maximum size of flash memory for an application, according to processor type is following:
Processor | Flash memory |
---|---|
nRF52832 | 50kB |
nRF52833 | 50kB |
nRF52840 | 256kB |
Allocated RAM memory for application by the processor is following:
Processor | RAM memory |
---|---|
nRF52832 | Up to 16 kB (8 kB by default) |
nRF52833 | 72 kB |
nRF52840 | 188 kB |
Some peripherals are used by the Wirepas Mesh stack and cannot be used by the application.
Peripheral | Associated interrupt (from file mcu/nrf52/vendor/nrf52.h) |
---|---|
Power | POWER_CLOCK_IRQn |
Radio | RADIO_IRQn |
Timer0 | TIMER0_IRQn |
WDT | WDT_IRQn |
Rtc1 | RTC1_IRQn |
ECB (AES) | ECB_IRQn |
PPI (Channels 0, 1 and 2) | None |
All the internal interrupt of cortex M are handled by the stack directly (NMI, HardFault,...)
Some peripherals are used by the stack but can also be accessed by the application.
Random Number Generator RNG is available for application to use within App_init function. After App_init returns, this peripheral is reserved for Wirepas Mesh stack and all initializations done in App_init may be overwritten. Application may also take the control of RNG/TRNG by initializing the peripheral in scheduled task after App_init has returned and after Wirepas Mesh stack has started. Do note that initialization must not take place within interrupt context as interrupt could be served before these peripherals are released from Wirepas Mesh stack usage.
All the other peripherals not listed above are free to be used by the application.
Following chip variants (at 2.4 GHz only) are supported:
This page contains following sections:
As stated in description of memory partitioning, the available flash memory for application is limited by size of the memory area that is used commonly for application and also scratchpad image. If application size is too large, there is possibility that large scratchpad image will override application image. The default maximum size of the application has been set so that it is always safe to use scratchpad image that will contain both firmware and application.
The recommended maximum size of flash memory for an application, according to processor type is following:
Processor | Flash memory |
---|---|
efr32xg12pxxxf1024 | 256kB |
efr32xg12pxxxf512 | 50kB |
efr32xg13pxxxf512 | 40kB |
efr32xg21xxxxf512 | 50kB |
efr32xg21xxxxf768 | 50kB |
efr32xg21xxxxf1024 | 256kB |
efr32xg22xxxxf512 | 50kB |
efr32xg23xxxxf512 | 40kB |
efr32xg24xxxxf1024 | 256kB |
efr32xg24xxxxf1536_196 | 256kB |
efr32xg24xxxxf1536_256 | 256kB |
Allocated RAM memory for application, by the processor is following:
Processor | RAM memory |
---|---|
efr32xg12pxxxf1024 | 72kB |
efr32xg12pxxxf512 | 8kB |
efr32xg13pxxxf512 | 16kB |
efr32xg21xxxxf512 | 12kB |
efr32xg21xxxxf768 | 12kB |
efr32xg21xxxxf1024 | 44kB |
efr32xg22xxxxf512 | 4.5kB |
efr32xg23xxxxf512 | 12kB |
efr32xg24xxxxf1024 | 72kB |
efr32xg22xxxxf1536_196 | 140kB |
efr32xg22xxxxf1536_256 | 155kB |
Some peripherals are used by the Wirepas Mesh stack and cannot be used by the application.
Peripheral | Associated interrupt (from chip vendor files) |
---|---|
TIMER0 | TIMER0_IRQn |
RTCC | RTCC_IRQn |
WDOG0 | WDOG0_IRQn |
CMU | CMU_IRQn |
CRYPTO0 | CRYPTO0_IRQn |
All the internal interrupt of cortex M are handled by the stack directly (NMI, HardFault,...)
True Random Number Generator TRNG is available for application to use within App_init function. After App_init returns, this peripheral is reserved for Wirepas Mesh stack and all initializations done in App_init may be overwritten. Application may also take the control of RNG/TRNG by initializing the peripheral in scheduled task after App_init has returned and after Wirepas Mesh stack has started. Do note that initialization must not take place within interrupt context as interrupt could be served before this peripheral is released from Wirepas Mesh stack usage.
All the other peripherals not listed above are free to be used by the application.
[3] WP-RM-108 - OTAP Reference Manual
[4] https://github.com/wirepas/wm-sdk/blob/master/source/reference_apps/dualmcu_app/api/DualMcuAPI.md