# ==============================================================================
# Перенос критического кода WebRTC в ITCM для максимального ускорения на i.MX RT
# ==============================================================================
# 1. Переносим ядро fixed-point эхоподавителя (AECM)
zephyr_code_relocate(FILES ${WEBRTC_BASE}/modules/audio_processing/aecm/aecm_core.c LOCATION ITCM_TEXT)
zephyr_code_relocate(FILES ${WEBRTC_BASE}/modules/audio_processing/aecm/aecm_core_c.c LOCATION ITCM_TEXT)
# 2. Переносим ядро fixed-point шумоподавителя (NSX)
zephyr_code_relocate(FILES ${WEBRTC_BASE}/modules/audio_processing/ns/nsx_core.c LOCATION ITCM_TEXT)
zephyr_code_relocate(FILES ${WEBRTC_BASE}/modules/audio_processing/ns/nsx_core_c.c LOCATION ITCM_TEXT)
# 3. Переносим блок БПФ (FFT), который используется в WebRTC для анализа спектра
zephyr_code_relocate(FILES ${WEBRTC_BASE}/common_audio/fft4g.c LOCATION ITCM_TEXT)
# 4. Переносим базовую математику сигнальной обработки (векторные операции, корреляция, деление)
# Эти функции вызываются тысячи раз за один аудио-фрейм.
zephyr_code_relocate(FILES ${WEBRTC_BASE}/common_audio/signal_processing/complex_fft.c LOCATION ITCM_TEXT)
zephyr_code_relocate(FILES ${WEBRTC_BASE}/common_audio/signal_processing/cross_correlation.c LOCATION ITCM_TEXT)
zephyr_code_relocate(FILES ${WEBRTC_BASE}/common_audio/signal_processing/division_operations.c LOCATION ITCM_TEXT)
zephyr_code_relocate(FILES ${WEBRTC_BASE}/common_audio/signal_processing/vector_scaling_operations.c LOCATION ITCM_TEXT)