Загрузка данных


#include <zephyr/init.h> // <--- Добавляем этот заголовок для SYS_INIT

// ... (весь предыдущий код функций ocram2_malloc_fallback и т.д. остается без изменений) ...

void ocram2_heap_init(void)
{
    sys_heap_init(&ocram2_heap, ocram2_heap_mem, OCRAM2_POOL_SIZE);
    ocram2_ready = true;
    
    LOG_INF("OCRAM2 heap initialized at %p. Size: %d KB", 
            (void*)ocram2_heap_mem, OCRAM2_POOL_SIZE / 1024);
}

/* 
 * Создаем обертку для SYS_INIT, так как она должна возвращать статус (0 в случае успеха)
 */
static int ocram2_sys_init(void)
{
    ocram2_heap_init();
    return 0;
}

/*
 * Регистрируем автоматический вызов функции на этапе APPLICATION.
 * ПРИМЕЧАНИЕ: На этапе APPLICATION ядро уже инициализировало логирование, 
 * поэтому ваши LOG_INF отработают штатно и выведутся в консоль при старте.
 */
SYS_INIT(ocram2_sys_init, APPLICATION, CONFIG_APPLICATION_INIT_PRIORITY);