From 0bab1469a345b86c9ba2ea009f34ffacce168d65 Mon Sep 17 00:00:00 2001 From: Nils Schulte Date: Fri, 22 Aug 2025 08:07:21 +0200 Subject: [PATCH] ch32v003 changes - memset crashes (why?) - FIFO buffer to big for RAM --- examples/system_interface.h | 8 +------- icm42670p/imu/inv_imu_driver.c | 2 -- icm42670p/imu/inv_imu_driver.h | 3 ++- 3 files changed, 3 insertions(+), 10 deletions(-) diff --git a/examples/system_interface.h b/examples/system_interface.h index a881d3a..a853a86 100644 --- a/examples/system_interface.h +++ b/examples/system_interface.h @@ -176,13 +176,7 @@ void si_enable_irq(); */ #define SI_CHECK_RC(rc) \ do { \ - if (si_print_error_if_any(rc)) { \ - INV_MSG(INV_MSG_LEVEL_ERROR, "At %s (line %d)", __FILE__, __LINE__); \ - si_sleep_us(100000); \ - while (1) \ - ; \ - } \ - } while (0) + } while (0); /** @brief Check return code from driver and print message if it is an error. * @param[in] rc Return code from the driver. diff --git a/icm42670p/imu/inv_imu_driver.c b/icm42670p/imu/inv_imu_driver.c index 1bfe9fe..cd43e49 100644 --- a/icm42670p/imu/inv_imu_driver.c +++ b/icm42670p/imu/inv_imu_driver.c @@ -44,8 +44,6 @@ int inv_imu_init(inv_imu_device_t *s, const struct inv_imu_serif *serif, { int status = 0; - memset(s, 0, sizeof(*s)); - /* Verify validity of `serif` variable */ if (serif == NULL || serif->read_reg == NULL || serif->write_reg == NULL) return INV_ERROR; diff --git a/icm42670p/imu/inv_imu_driver.h b/icm42670p/imu/inv_imu_driver.h index cefd627..038cb17 100644 --- a/icm42670p/imu/inv_imu_driver.h +++ b/icm42670p/imu/inv_imu_driver.h @@ -57,7 +57,8 @@ extern "C" { #endif /** Max buffer size mirrored from FIFO at polling time */ -#define FIFO_MIRRORING_SIZE 16 * 258 // packet size * max_count = 4kB +// #define FIFO_MIRRORING_SIZE 16 * 258 // packet size * max_count = 4kB +#define FIFO_MIRRORING_SIZE 258 /** Sensor identifier for UI control function */ enum inv_imu_sensor {