Compare commits

...

4 Commits

Author SHA1 Message Date
jh.chun ca9d3e1a03 DFU watchdog 수정
- MGMT_EVT_OP_IMG_MGMT_DFU_CHUNK_WRITE_COMPLETE 이벤트를 callback에 추가하고, flash write 완료 시마다 watchdog timer reset
2026-07-21 11:35:50 +09:00
jh.chun 8ae8f3fdb7 Piezo ADC delay 범위 수정(0 허용) 2026-07-21 11:34:44 +09:00
jh.chun 0a88cfb01c 빌드 warning 관련 수정 2026-07-21 11:34:23 +09:00
jh.chun 3c528b4c35 Kconfig 설정 변경(로그 출력, DFU/mcumgr BLE 권한) 2026-07-21 11:33:26 +09:00
6 changed files with 19 additions and 14 deletions
+3 -1
View File
@@ -5,6 +5,8 @@
CONFIG_GPIO=y
# Debug Message (RTT)
# Build-time switch for project DBG_PRINTF/DBG_CORE/DBG_ERR macros.
CONFIG_VESIS_DEBUG_PRINT=n
# Zephyr logging subsystem enable.
CONFIG_LOG=y
# Print logs immediately when log API is called.
@@ -151,7 +153,7 @@ CONFIG_MCUMGR=y
# Enable mcumgr/SMP messages over BLE SMP service.
CONFIG_MCUMGR_TRANSPORT_BT=y
# Require authenticated BLE connection for mcumgr read/write operations.
CONFIG_MCUMGR_TRANSPORT_BT_PERM_RW_AUTHEN=n
CONFIG_MCUMGR_TRANSPORT_BT_PERM_RW_AUTHEN=y
# Reassemble SMP packets fragmented over BLE.
CONFIG_MCUMGR_TRANSPORT_BT_REASSEMBLY=y
# mcumgr transport receive buffer size for DFU image chunks.
+1 -1
View File
@@ -348,7 +348,7 @@ static int ble_request_preferred_conn_params(bool count_attempt)
err = bt_conn_get_info(current_conn, &info);
if ((err == 0) && (info.type == BT_CONN_TYPE_LE))
{
uint16_t cur_interval = info.le.interval;
uint16_t cur_interval = (uint16_t)(info.le.interval_us / 1250U);
uint16_t cur_latency = info.le.latency;
uint16_t cur_timeout = info.le.timeout;
-1
View File
@@ -687,7 +687,6 @@ int imu_fifo_read_latest(uint8_t *sample_bytes,
}
{
uint16_t raw_count = record_count;
record_count = imu_fifo_compact_records(record_count);
DBG_PRINTF("[IMU FIFO] compact %u -> %u\r\n", raw_count, record_count);
}
+4 -2
View File
@@ -113,6 +113,7 @@ static struct mgmt_callback dfu_status_callback = {
.callback = dfu_status_cb,
.event_id = MGMT_EVT_OP_IMG_MGMT_DFU_STARTED |
MGMT_EVT_OP_IMG_MGMT_DFU_CHUNK |
MGMT_EVT_OP_IMG_MGMT_DFU_CHUNK_WRITE_COMPLETE |
MGMT_EVT_OP_IMG_MGMT_DFU_PENDING |
MGMT_EVT_OP_IMG_MGMT_DFU_STOPPED,
};
@@ -553,7 +554,7 @@ static void dfu_watchdog_handler(struct k_work *work)
if (ble_is_connected())
{
DBG_PRINTF("[DFU] upload stalled (%ds), forcing disconnect\r\n", DFU_STALL_TIMEOUT_SEC);
DBG_CORE("[DFU] upload stalled (%ds), forcing disconnect\r\n", DFU_STALL_TIMEOUT_SEC);
(void)ble_disconnect_active();
}
}
@@ -571,9 +572,10 @@ static enum mgmt_cb_return dfu_status_cb(uint32_t event, enum mgmt_cb_return pre
{
case MGMT_EVT_OP_IMG_MGMT_DFU_STARTED:
case MGMT_EVT_OP_IMG_MGMT_DFU_CHUNK:
case MGMT_EVT_OP_IMG_MGMT_DFU_CHUNK_WRITE_COMPLETE:
dfu_led_active = true;
led_ble_solid(); // DFU 업로드 중에는 초록 LED ON
// 청크가 올 때마다 무진행 감시 타이머 리셋
// 청크 수신/flash write 완료 때마다 무진행 감시 타이머 리셋
k_work_reschedule(&dfu_watchdog_work, K_SECONDS(DFU_STALL_TIMEOUT_SEC));
break;
+2 -3
View File
@@ -199,10 +199,9 @@ int piezo_measure_sweep(void)
uint16_t samples = cfg->samples;
uint8_t avg = cfg->avg;
// 너무 짧은 delay가 들어오면 burst 직후 ADC capture가 겹치므로 최소 delay 보장
if (capture_delay_us < PIEZO_BURST_TO_ADC_DELAY_US)
if (capture_delay_us < 0)
{
capture_delay_us = PIEZO_BURST_TO_ADC_DELAY_US;
capture_delay_us = 0;
}
DBG_PRINTF("[SWEEP] freq=0x%04X cycles=%u avg=%u delay_us=%u samples=%u\r\n", cfg->freq, cfg->cycles, cfg->avg, cfg->delay_us, cfg->samples);
+9 -6
View File
@@ -1,12 +1,11 @@
CONFIG_GPIO_HOGS=y
# MCUboot RTT logging(test)
CONFIG_LOG=n
CONFIG_LOG_MODE_IMMEDIATE=y
CONFIG_LOG_DEFAULT_LEVEL=3
CONFIG_MCUBOOT_LOG_LEVEL_DBG=y
# Keep MCUboot LOG enabled to satisfy MCUboot default Kconfig choices,
# but disable console/log output backends.
CONFIG_LOG=y
CONFIG_LOG_DEFAULT_LEVEL=0
CONFIG_MCUBOOT_LOG_LEVEL_OFF=y
CONFIG_PRINTK=n
CONFIG_USE_SEGGER_RTT=y
CONFIG_CONSOLE=n
CONFIG_RTT_CONSOLE=n
@@ -15,3 +14,7 @@ CONFIG_LOG_BACKEND_SHOW_COLOR=n
CONFIG_LOG_BACKEND_UART=n
CONFIG_UART_CONSOLE=n
# security boot
CONFIG_REBOOT=y
CONFIG_DISABLE_FLASH_PATCH=y