Memory issues resolved

This commit is contained in:
Brent Perteet
2025-08-20 15:46:17 +00:00
parent c4ca91bf84
commit 25f875b3b2
9 changed files with 736 additions and 35 deletions

View File

@@ -13,6 +13,7 @@
#include "esp_system.h"
#include "esp_log.h"
#include "esp_heap_caps.h"
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "freertos/timers.h"
@@ -30,10 +31,20 @@
static const char *TAG = "main";
/*********************************
* STATIC FUNCTION DECLARATIONS
********************************/
static void print_heap_info(const char* tag) {
size_t free_heap = esp_get_free_heap_size();
size_t min_free_heap = esp_get_minimum_free_heap_size();
size_t largest_block = heap_caps_get_largest_free_block(MALLOC_CAP_DEFAULT);
ESP_LOGI(TAG, "[%s] Free heap: %zu bytes, Min free: %zu bytes, Largest block: %zu bytes",
tag, free_heap, min_free_heap, largest_block);
}
typedef struct {
float alpha; // smoothing factor, 0<alpha<1
float prev_output; // y[n-1]
@@ -88,7 +99,6 @@ static inline float LPF_Update(LowPassFilter *f, float input) {
/*********************************
* STATIC VARIABLE DEFINITIONS
********************************/
static const char *TAG = "main";
/*********************************
* STATIC FUNCTION DEFINITIONS
@@ -247,6 +257,7 @@ static void imu_task(void *pvParameters) {
void app_main(void)
{
print_heap_info("STARTUP");
/* initialize NVS — it is used to store PHY calibration data */
esp_err_t ret = nvs_flash_init();
@@ -255,27 +266,27 @@ void app_main(void)
ret = nvs_flash_init();
}
ESP_ERROR_CHECK(ret);
print_heap_info("POST_NVS");
init_gpio();
print_heap_info("POST_GPIO");
system_init();
print_heap_info("POST_SYSTEM");
// Initialize IMU
ESP_ERROR_CHECK(lsm6dsv_init(22, 21)); // SCL = IO14, SDA = IO15
print_heap_info("POST_IMU");
// Create IMU task
TaskHandle_t h = xTaskCreate(imu_task, "imu_task", 4096, NULL, 5, NULL);
TaskHandle_t h = xTaskCreate(imu_task, "imu_task", 2048, NULL, 5, NULL);
print_heap_info("POST_IMU_TASK");
bt_app_init();
print_heap_info("POST_BLUETOOTH");
gui_start();
print_heap_info("POST_GUI");
gpio_set_level(PIN_NUM_LED_2, 1);