#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);