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

Memory_Layout.JPG

 

Table 1. Non-Volatile Memory Organization, Off-chip Flash

 

Section Name

Offset

Length

Description

Static Section (SS)

0x500000

0x2000

Static section used internally by chip firmware. This typically contains configuration records that don’t change after factory programming.

Volatile Section (VS1)

0x500400

0x1000

First volatile section used by the application and the stack to store data in the external or on-chip flash memory

Data Section (DS1)

0x501400

0x3E000

First partition. Used to store application code

Data Section (DS2)

0x520A00

0x3E000

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