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


Section Name




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 in wiced_btsdk project in ModusToolbox workspace. The complete path inside the workspace looks like \wiced_btsdk\dev-kit\baselib<device>\platforms\<device>_OCF.btp. More details on the memory layout can be found in the WICED Firmware Upgrade Library user Guide located under WICED User Guides at Cypress WICED CYW20719 API Documentation .


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