주석 및 로그 정리

This commit is contained in:
2026-06-19 14:21:59 +09:00
parent b64b4d08a2
commit 08b8d3001e
4 changed files with 31 additions and 44 deletions
+2 -11
View File
@@ -8,18 +8,9 @@
#include <zephyr/logging/log.h> #include <zephyr/logging/log.h>
/* /*
* 로그를 3단계로 나눠 쓴다. * - DBG_PRINTF: 상세 흐름 및 디버그용 로그
* * - DBG_CORE: 부팅/상태 전환 등 핵심 로그
* - DBG_PRINTF: 상세 흐름용
* 평소에는 가장 많이 쏟아지는 로그라서, RTT가 잘리거나 너무 시끄러울 때
* 이 매크로만 잠깐 꺼두면 된다.
*
* - DBG_CORE: 부팅/상태 전환처럼 "항상 보고 싶은 핵심 로그"
*
* - DBG_ERR: 실패/이상 상황 로그 * - DBG_ERR: 실패/이상 상황 로그
*
* 지금은 RTT 로그가 중간에 끊기는 문제를 줄이기 위해
* DBG_PRINTF만 잠깐 비활성화한 상태다.
*/ */
#include <zephyr/sys/printk.h> #include <zephyr/sys/printk.h>
+10 -15
View File
@@ -396,13 +396,11 @@ int imu_init(void)
} }
if (who_am_i != ICM_WHOAMI) { if (who_am_i != ICM_WHOAMI) {
DBG_PRINTF("[IMU] FAIL — WHOAMI mismatch (got=0x%02X, expected=0x%02X)\r\n", DBG_PRINTF("[IMU] FAIL — WHOAMI mismatch (got=0x%02X, expected=0x%02X)\r\n", who_am_i, ICM_WHOAMI);
who_am_i, ICM_WHOAMI);
return -3; return -3;
} }
DBG_PRINTF("[IMU] OK — ICM42670P detected (WHOAMI=0x%02X, addr=0x%02X)\r\n", //DBG_PRINTF("[IMU] OK — ICM42670P detected (WHOAMI=0x%02X, addr=0x%02X)\r\n", who_am_i, IMU_I2C_ADDR);
who_am_i, IMU_I2C_ADDR);
return 0; return 0;
} }
@@ -443,9 +441,7 @@ int imu_read(int16_t accel[3], int16_t gyro[3])
gyro[1] = (int16_t)((raw[8] << 8) | raw[9]); gyro[1] = (int16_t)((raw[8] << 8) | raw[9]);
gyro[2] = (int16_t)((raw[10] << 8) | raw[11]); gyro[2] = (int16_t)((raw[10] << 8) | raw[11]);
DBG_PRINTF("[IMU] msp: A=(%6d,%6d,%6d) G=(%6d,%6d,%6d)\r\n", //DBG_PRINTF("[IMU] msp: A=(%6d,%6d,%6d) G=(%6d,%6d,%6d)\r\n", accel[0], accel[1], accel[2], gyro[0], gyro[1], gyro[2]);
accel[0], accel[1], accel[2],
gyro[0], gyro[1], gyro[2]);
/* 슬립 모드: 전력 절감 */ /* 슬립 모드: 전력 절감 */
imu_write_reg(REG_PWR_MGMT0, 0x00); imu_write_reg(REG_PWR_MGMT0, 0x00);
@@ -509,6 +505,7 @@ int imu_read_with_temperature(int16_t accel[3], int16_t gyro[3], int16_t *temp_c
gyro[1] = (int16_t)((raw[10] << 8) | raw[11]); gyro[1] = (int16_t)((raw[10] << 8) | raw[11]);
gyro[2] = (int16_t)((raw[12] << 8) | raw[13]); gyro[2] = (int16_t)((raw[12] << 8) | raw[13]);
/*
DBG_PRINTF("[IMU] mbb: A=(%6d,%6d,%6d) G=(%6d,%6d,%6d) T=%d.%02d C temp_raw=%d/%d/%d/%d avg=%d first=0x%02X%02X\r\n", DBG_PRINTF("[IMU] mbb: A=(%6d,%6d,%6d) G=(%6d,%6d,%6d) T=%d.%02d C temp_raw=%d/%d/%d/%d avg=%d first=0x%02X%02X\r\n",
accel[0], accel[1], accel[2], accel[0], accel[1], accel[2],
gyro[0], gyro[1], gyro[2], gyro[0], gyro[1], gyro[2],
@@ -520,7 +517,7 @@ int imu_read_with_temperature(int16_t accel[3], int16_t gyro[3], int16_t *temp_c
temp_samples[3], temp_samples[3],
temp_raw, temp_raw,
raw[0], raw[1]); raw[0], raw[1]);
*/
imu_write_reg(REG_PWR_MGMT0, 0x00); imu_write_reg(REG_PWR_MGMT0, 0x00);
return 0; return 0;
} }
@@ -574,11 +571,12 @@ int imu_read_temperature_cdeg(int16_t *temp_cdeg)
temp_raw = (int16_t)(temp_sum / (int32_t)IMU_TEMP_AVG_SAMPLES); temp_raw = (int16_t)(temp_sum / (int32_t)IMU_TEMP_AVG_SAMPLES);
cdeg = imu_temp_raw_to_cdeg(temp_raw); cdeg = imu_temp_raw_to_cdeg(temp_raw);
*temp_cdeg = (int16_t)cdeg; *temp_cdeg = (int16_t)cdeg;
/*
DBG_PRINTF("[IMU] temp=%d.%02d C raw=%d\r\n", DBG_PRINTF("[IMU] temp=%d.%02d C raw=%d\r\n",
*temp_cdeg / 100, *temp_cdeg / 100,
(*temp_cdeg < 0 ? -*temp_cdeg : *temp_cdeg) % 100, (*temp_cdeg < 0 ? -*temp_cdeg : *temp_cdeg) % 100,
temp_raw); temp_raw);
*/
if (!was_fifo_active) if (!was_fifo_active)
{ {
(void)imu_write_reg(REG_PWR_MGMT0, 0x00); (void)imu_write_reg(REG_PWR_MGMT0, 0x00);
@@ -653,14 +651,11 @@ int imu_fifo_read_latest(uint8_t *sample_bytes,
} }
ret = imu_fifo_read_count(&record_count); ret = imu_fifo_read_count(&record_count);
DBG_PRINTF("[IMU FIFO] raw count=%u ret=%d target=%u\r\n", //DBG_PRINTF("[IMU FIFO] raw count=%u ret=%d target=%u\r\n", record_count, ret, max_samples);
record_count,
ret,
max_samples);
if ((ret == 0) && (record_count > 0U)) if ((ret == 0) && (record_count > 0U))
{ {
ret = imu_fifo_read_records(record_count); ret = imu_fifo_read_records(record_count);
DBG_PRINTF("[IMU FIFO] read records ret=%d\r\n", ret); //DBG_PRINTF("[IMU FIFO] read records ret=%d\r\n", ret);
} }
if (ret) if (ret)
@@ -690,7 +685,7 @@ int imu_fifo_read_latest(uint8_t *sample_bytes,
} }
*out_count = record_count; *out_count = record_count;
DBG_PRINTF("[IMU FIFO] drained samples=%u\r\n", record_count); //DBG_PRINTF("[IMU FIFO] drained samples=%u\r\n", record_count);
return 0; return 0;
} }
+18 -17
View File
@@ -365,7 +365,7 @@ static void load_default_config(void)
memset(SERIAL_NO, 0, sizeof(SERIAL_NO)); memset(SERIAL_NO, 0, sizeof(SERIAL_NO));
memcpy(SERIAL_NO, SERIAL_NUMBER, serial_len); memcpy(SERIAL_NO, SERIAL_NUMBER, serial_len);
/* 기본 HW 버전 복사 */ /* 기본 HW Version 복사 */
memset(HW_NO, 0, sizeof(HW_NO)); memset(HW_NO, 0, sizeof(HW_NO));
memcpy(HW_NO, HARDWARE_VERSION, hw_len); memcpy(HW_NO, HARDWARE_VERSION, hw_len);
@@ -441,7 +441,7 @@ void device_power_keep_on(void)
void power_button_suspend(bool suspend) void power_button_suspend(bool suspend)
{ {
/* /*
* maa?/mbb?처럼 측정 시간이 길 때 전원 버튼 상태머신이 끼어들지 않게 잠깐 멈춘다. * mbb?처럼 측정 시간이 길 때 전원 버튼 상태머신이 끼어들지 않게 잠깐 멈춘다.
* *
* 이 함수는 "부팅을 막는 함수"가 아니다. * 이 함수는 "부팅을 막는 함수"가 아니다.
* 이미 켜진 뒤, 특정 커맨드 처리 중에만 버튼 폴링 판단을 잠깐 쉬게 하는 역할이다. * 이미 켜진 뒤, 특정 커맨드 처리 중에만 버튼 폴링 판단을 잠깐 쉬게 하는 역할이다.
@@ -506,7 +506,8 @@ static void main_s(struct k_timer *timer)
} }
} }
} }
else /* ── 전원 OFF 시퀀스 (ON → OFF) ── */ /* 전원 OFF 시퀀스 (ON → OFF) */
else
{ {
if (!boot_btn_released) /* 부팅 시 눌렀던 버튼을 아직 안 놓음 → 대기 */ if (!boot_btn_released) /* 부팅 시 눌렀던 버튼을 아직 안 놓음 → 대기 */
{ {
@@ -679,7 +680,7 @@ static void resume_device_after_soft_reset(void)
return; return;
} }
/* 전원 래치 상태 복구 */ /* 리셋 복귀나 DFU test 부팅은 버튼 없이도 ON 상태 복구 */
device_on = true; device_on = true;
cnt_s = 0; cnt_s = 0;
boot_btn_released = (gpio_pin_get_dt(&power_btn) != 1); boot_btn_released = (gpio_pin_get_dt(&power_btn) != 1);
@@ -697,7 +698,7 @@ static void resume_device_after_soft_reset(void)
static void confirm_running_image(void) static void confirm_running_image(void)
{ {
#if defined(CONFIG_BOOTLOADER_MCUBOOT) #if defined(CONFIG_BOOTLOADER_MCUBOOT)
/* MCUboot revert 방지 */ /* 기본 초기화와 BLE 준비가 끝난 뒤 MCUboot revert 방지 */
if (!boot_is_img_confirmed()) if (!boot_is_img_confirmed())
{ {
int err = boot_write_img_confirmed(); int err = boot_write_img_confirmed();
@@ -722,18 +723,18 @@ static const char *swap_type_to_str(int swap_type)
/* MCUboot swap 상태 문자열 */ /* MCUboot swap 상태 문자열 */
switch (swap_type) switch (swap_type)
{ {
case BOOT_SWAP_TYPE_NONE: case BOOT_SWAP_TYPE_NONE:
return "none"; return "none";
case BOOT_SWAP_TYPE_TEST: case BOOT_SWAP_TYPE_TEST:
return "test"; return "test";
case BOOT_SWAP_TYPE_PERM: case BOOT_SWAP_TYPE_PERM:
return "perm"; return "perm";
case BOOT_SWAP_TYPE_REVERT: case BOOT_SWAP_TYPE_REVERT:
return "revert"; return "revert";
case BOOT_SWAP_TYPE_FAIL: case BOOT_SWAP_TYPE_FAIL:
return "fail"; return "fail";
default: default:
return "unknown"; return "unknown";
} }
} }
+1 -1
View File
@@ -17,7 +17,7 @@
*============================================================================*/ *============================================================================*/
#define FIRMWARE_VERSION "TSTFW042" #define FIRMWARE_VERSION "TSTFW042"
#define HARDWARE_VERSION "VB0HW0000" #define HARDWARE_VERSION "VB0HW0000"
#define SERIAL_NUMBER "VB0260300ZZ" // 앱이 실제로 쓰는 시리얼/광고 이름 #define SERIAL_NUMBER "VB0260300ZZ"
#define DEFAULT_PASSKEY "123456" #define DEFAULT_PASSKEY "123456"
/*============================================================================== /*==============================================================================