#include <zephyr/sys/printk.h>
EXPORT SpeexEchoState *speex_echo_state_init_mc(int frame_size, int filter_length, int nb_mic, int nb_speakers)
{
// ... (весь код инициализации буферов) ...
st->play_buf_pos = PLAYBACK_DELAY*st->frame_size;
st->play_buf_started = 0;
// ============================================================================
// ДЕБАГ-ВЫВОД ИСПОЛЬЗОВАНИЯ ПАМЯТИ ПОСЛЕ ХОЛОДНОГО СТАРТА
// ============================================================================
printk("\n================== SPEEX AEC MEMORY REPORT ==================\n");
printk("DTCM Pool allocated: %5d / %5d bytes (%d%% used)\n",
dtcm_ptr, SPEEX_DTCM_POOL_SIZE, (dtcm_ptr * 100) / SPEEX_DTCM_POOL_SIZE);
printk("OCRAM Pool allocated: %5d / %5d bytes (%d%% used)\n",
ocram_ptr, SPEEX_OCRAM_POOL_SIZE, (ocram_ptr * 100) / SPEEX_OCRAM_POOL_SIZE);
if (ocram_ptr == 0) {
printk("STATUS: Perfect! All buffers fit entirely inside ultra-fast DTCM.\n");
} else {
printk("STATUS: Multi-zone layout active. Hot matrixes in DTCM, scratch buffers in OCRAM.\n");
}
printk("=============================================================\n\n");
return st;
}