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


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