Firmware Resource Usage
The firmware uses the Arm Cortex-M33 processor system stack. It expects that the Arm Cortex-M33 processor's stack pointer points to a valid stack that grows downward (i.e., decreasing memory addresses).
Other system memory used by the system are listed in the "Reserved Resources" table.
Other system components (DMA channels, LSAD inputs, etc.) that are used by the firmware are noted in the documentation for the specific component.
Some RSL15 product variants might have additional custom trim values stored in the NVR6 region. Sample codes in the SDK include the SYS_TRIM_LOAD_CUSTOM() macro function, which reads and applies those values.
In detail, the SYS_TRIM_LOAD_CUSTOM() function reads the custom value of the DC-DC inductor charge current trim and the custom value of the XTAL 48 MHz oscillator trim, and loads them into corresponding registers (the ICH_TRIM field of the ACS_VCC_CTRL register, the RF_REG2E_XTAL_TRIM_XTAL_TRIM_INIT field of the RF_REG2E register, and the RF_REG2E_XTAL_TRIM_XTAL_TRIM field of the same register) if all of the following conditions are met:
- A custom flash value identifier, CUST or SIP1, is found.
- CRC value is verified correctly.
- Valid trim values are found.
When the custom flash value identifier is not found, no custom flash value has been programmed. As a result, the SYS_TRIM_LOAD_CUSTOM() function returns without reading or loading any trim values as mentioned above. In other words, in this case, default trim values will be used.
NOTE: Only call the SYS_TRIM_LOAD_CUSTOM() function after the RF block is powered. If it is called before the RF block is powered, and the device has been programmed with valid contents in its NVR6, a hardfault results, and the device gets reset.