7 Modifying Configuration Parameters

GATT service tables and configuration parameters that can be modified are maintained within a single bank of code space. Using the memory programming protocol over UART, the programmer can read/write/erase the area of memory where the configuration parameters are available. The programmer must have good knowledge about the format of data in the memory bank, and any incorrect updates of the Flash memory (configuration parameters) can lead to undefined device operation.

The BM70/71 module is set up to reserve several pages of memory in the fifth bank of the code space for storing the programmable GATT tables and configuration parameters, which is a total of 1380 bytes and divided into the following:
  • Configuration parameters – 288 bytes of information
  • GATT table – 1092 bytes of information
Note: In general, a page is 2048 bytes in size.
The total amount of memory reserved is approximately 8 Kbytes, which is divided into the following:
  • Configuration parameters – 4 Kbytes
  • GATT tables – 4 Kbytes

This was chosen because it allows room for future growth and due to the fact that the smallest erasable area (page) in the Flash memory is 2 Kbytes. The configuration parameter section of the memory begins at the memory address 0x00034000. The user must specify the starting address in the HCI-ISDAP Flash write command during the update process. For more details, refer to HCI-ISDAP Flash Commands Overview.

If the programmer is planning to update the configuration parameters (sometimes referred to as field updates) with an external host MCU, then the complete memory map with the updated parameter values needs to be written into the configuration memory section of the Flash memory. Even if one configuration parameter is being updated, the entire 8K section of the configuration memory (which includes the updated parameter value) needs to be written.

The programmer must identify the offset address of configuration parameters that need to be changed and the values in the memory map change accordingly. For more details and the memory map corresponding to each firmware version of the BM70/71 module, refer to the BM70 and the BM71 product webpage. If the application requires memory programming via host MCU, then the programmer must consider the memory requirements for programming the configuration parameters into their design.
Note: The user must write the memory map into the configuration parameter area corresponding to the correct firmware version in the BM70/71 module.
The BM70/71 module is only set up to store one set of configuration parameters and GATT tables.
Note: Do not reuse the unused portion of the 8 Kbytes to store multiple versions of configuration parameters or GATT tables.
The following figure illustrates a broad overview of the different command protocols and their use in the configuration parameters write process. For more details on each of the commands mentioned in the process flow for modifying configuration parameters flow chart, refer to HCI Commands Overview for HCI commands and HCI-ISDAP Flash Commands Overview for the HCI-ISDAP commands. For a detailed message sequence for the configuration parameter write process, see Figure 7-2.
Figure 7-1. Process Flow for Modifying Configuration Parameters
Figure 7-2. Message Sequence for Writing Configuration Parameters, GATT Tables or Firmware Update