주석 및 로그 정리
This commit is contained in:
+2
-11
@@ -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
@@ -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
@@ -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
@@ -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"
|
||||||
|
|
||||||
/*==============================================================================
|
/*==============================================================================
|
||||||
|
|||||||
Reference in New Issue
Block a user