The non-volatile memory for the Bluetooth device (on-chip flash or external serial flash) is divided into five logical sections as shown in Figure 1. Table 1 gives details about each section of the memory layout.
Figure 1. Memory Organization of Non-Volatile Memory
Table 1. Non-Volatile Memory Organization, Off-chip Flash
Static Section (SS)
Static section used internally by chip firmware. This typically contains configuration records that don’t change after factory programming.
Volatile Section (VS1)
First volatile section used by the application and the stack to store data in the external or on-chip flash memory
Data Section (DS1)
First partition. Used to store application code
Data Section (DS2)
Second partition. Used to store application code
These values are indicative, and the actual values can be found in BTP file.
The logical sections mentioned in Table 1 are aligned with the erase sector boundaries of the memory. These details can be found in *.btp files located at \ModusToolbox_1.1\libraries\bt_sdk-1.1\components[RK1] \BT-SDK\<device>_Bluetooth\platforms\<device>_OCF.btp. More details on the memory layout can be found in the \ModusToolbox_1.1\libraries\bt_sdk-1.1\docs\BT-SDK\WICED-Firmware-Upgrade-Library.pdf file.
Significance of *.btp File
The *.btp file contains information used by the download tools such as the minidriver location, baud rate, memory section addresses and other details. It also contains information such as the BD ADDRESS which can be changed while programming the device. Some of the parameters are:
- DLConfigCrystalFreqMHz X 10000 – Frequency of the crystal connected to the device
- DLConfigSerialControlBaudRate – UART baud rate used for programming
- ConfigDSLocation – DS1 location offset
- ConfigDS2Location – DS2 location offset
- DLConfigSSLocation – SS location offset
- DLConfigBD_ADDRBase – BD address