From f3d6dd290dfd68a04a0a26b48e34bca096b73f96 Mon Sep 17 00:00:00 2001 From: jhChun Date: Tue, 24 Mar 2026 18:25:50 +0900 Subject: [PATCH] =?UTF-8?q?FDS=20write=20=EC=BD=9C=EB=B0=B1=20=EB=AC=B4?= =?UTF-8?q?=ED=95=9C=20=EB=8C=80=EA=B8=B0=20=EC=A1=B0=EA=B1=B4=20=EB=B3=80?= =?UTF-8?q?=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - fstorage.c: FDS write 콜백 무한 대기 -> 3초 타임아웃 --- .../ble_peripheral/ble_app_bladder_patch/fstorage.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/project/ble_peripheral/ble_app_bladder_patch/fstorage.c b/project/ble_peripheral/ble_app_bladder_patch/fstorage.c index 322d0a6..258e08f 100644 --- a/project/ble_peripheral/ble_app_bladder_patch/fstorage.c +++ b/project/ble_peripheral/ble_app_bladder_patch/fstorage.c @@ -244,6 +244,7 @@ void config_load( void ) fds_record_desc_t desc = { 0 }; fds_find_token_t tok = { 0 }; uint8_t cfg_retry = 0; + uint32_t fds_wait_cnt = 0; // FDS write 대기 카운터 cfg_load_start: memset((char *)&desc, 0, sizeof(desc)); @@ -330,11 +331,21 @@ void config_load( void ) fds_flag_write = false; } - while( fds_flag_write ) + fds_wait_cnt = 0; // + + while(fds_flag_write && fds_wait_cnt < 3000) // FDS write 최대 3초 타임아웃 { nrf_pwr_mgmt_run(); + nrf_delay_ms(1); + fds_wait_cnt++; } + if(fds_flag_write) // FDS write 타임아웃 시 플래그 강제 해제 + { + DBG_PRINTF("[FDS] write TIMEOUT! forcing flag clear\r\n"); + fds_flag_write = false; + } + if( (rc != NRF_SUCCESS) && (rc == FDS_ERR_NO_SPACE_IN_FLASH) ) { rc = fds_gc();