SDK: 14.1.0
CHIP: nRF52840
CONFIG: ZIGBEE&BLE MULTI PROTOCOL
I wants to keep store zigbee pairing data after reset.
I setups like this.
Fullscreen
1
2
3
4
5
6
7
8
9
10
11
12
zigbee_erase_persistent_storage(ERASE_PERSISTENT_CONFIG); // ZB_FALSE
zb_ret_t zigbee_default_signal_handler(zb_bufid_t bufid)
{
...
case ZB_ZDO_SIGNAL_SKIP_STARTUP:
NRF_LOG_INFO("Zigbee stack initialized");
comm_status = bdb_start_top_level_commissioning(ZB_BDB_INITIALIZATION);
NRF_LOG_INFO("initialized zb_bdb_is_factory_new(): %d\r\n", zb_bdb_is_factory_new());
...
}
After joining procedure, I reset my device with nrfjprog -r.
until zb_bdb_is_factory_new set 1, zb_bdb_is_factory_new return 0.
When I repeated 2~3 times, zb_bdb_is_factory_new is 1.
Zed fails to rejoin the network after that.
How can I fix it?
and Where I can check data structure used by zigbee stack?
attaching flash config in sdk_config.h
Fullscreen
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
// <e> FDS_ENABLED - fds - Flash data storage module
//==========================================================
#ifndef FDS_ENABLED
#define FDS_ENABLED 1
#endif
// <h> Pages - Virtual page settings
// <i> Configure the number of virtual pages to use and their size.
//==========================================================
// <o> FDS_VIRTUAL_PAGES - Number of virtual flash pages to use.
// <i> One of the virtual pages is reserved by the system for garbage collection.
// <i> Therefore, the minimum is two virtual pages: one page to store data and one page to be used by the system for garbage collection.
// <i> The total amount of flash memory that is used by FDS amounts to @ref FDS_VIRTUAL_PAGES * @ref FDS_VIRTUAL_PAGE_SIZE * 4 bytes.
#ifndef FDS_VIRTUAL_PAGES
#define FDS_VIRTUAL_PAGES 3
#endif
// <o> FDS_VIRTUAL_PAGE_SIZE - The size of a virtual flash page.
And I check After the steering is successful, the zb_bdb_is_factory_new() interface returns true
but I can't find "bdb_load_factory_new" function.