# =====================================================================
# НАИВЫСШИЙ ПРИОРЕТЕТ: Драйверы звука и прерывания DMA/SAI (Оставляем в ITCM)
# =====================================================================
zephyr_code_relocate(FILES ${CMAKE_CURRENT_SOURCE_DIR}/pjmedia/src/pjmedia-audiodev/zephyr_portaudio/zephyr_i2s_dev.c LOCATION ITCM_TEXT)
zephyr_code_relocate(FILES ${CMAKE_CURRENT_SOURCE_DIR}/pjmedia/src/pjmedia-audiodev/zephyr_portaudio/portaudio_lib.c LOCATION ITCM_TEXT)
zephyr_code_relocate(FILES ${CMAKE_CURRENT_SOURCE_DIR}/pjmedia/src/pjmedia-audiodev/zephyr_portaudio/portaudio_lib.c LOCATION DTCM_DATA)
zephyr_code_relocate(FILES ${CMAKE_CURRENT_SOURCE_DIR}/pjmedia/src/pjmedia-audiodev/zephyr_portaudio/audio_utils.c LOCATION ITCM_TEXT)
zephyr_code_relocate(FILES ${ZEPHYR_BASE}/drivers/i2s/*.c LOCATION ITCM_TEXT)
zephyr_code_relocate(FILES ${ZEPHYR_BASE}/drivers/dma/*.c LOCATION ITCM_TEXT)
# Мьютексы ОС оставляем в быстрой памяти для защиты планировщика звукового потока
zephyr_code_relocate(FILES ${ZEPHYR_BASE}/lib/posix/options/mutex.c LOCATION DTCM_DATA)
zephyr_code_relocate(FILES ${ZEPHYR_BASE}/lib/posix/options/cond.c LOCATION DTCM_DATA)
# =====================================================================
# НОВАЯ РЕЛОКАЦИЯ: Полный перенос эхоподавления Speex в ITCM
# =====================================================================
# Переносим ядро эхоподавителя (mdf.c) и обертку БПФ
zephyr_code_relocate(FILES ${CMAKE_CURRENT_SOURCE_DIR}/src/speex/mdf.c LOCATION ITCM_TEXT)
zephyr_code_relocate(FILES ${CMAKE_CURRENT_SOURCE_DIR}/src/speex/fftwrap.c LOCATION ITCM_TEXT)
# Переносим целочисленное БПФ KissFFT (самый тяжелый математический блок)
zephyr_code_relocate(FILES ${CMAKE_CURRENT_SOURCE_DIR}/src/speex/kiss_fft.c LOCATION ITCM_TEXT)
zephyr_code_relocate(FILES ${CMAKE_CURRENT_SOURCE_DIR}/src/speex/kiss_fftr.c LOCATION ITCM_TEXT)
# =====================================================================
# ОПТИМИЗАЦИЯ: Буферы задержки (Код во Flash, данные в DTCM)
# =====================================================================
zephyr_code_relocate(FILES ${CMAKE_CURRENT_SOURCE_DIR}/pjmedia/src/pjmedia/jbuf.c LOCATION DTCM_DATA)
zephyr_code_relocate(FILES ${CMAKE_CURRENT_SOURCE_DIR}/pjmedia/src/pjmedia/delaybuf.c LOCATION DTCM_DATA)
zephyr_code_relocate(FILES ${CMAKE_CURRENT_SOURCE_DIR}/pjmedia/src/pjmedia/clock_thread.c LOCATION DTCM_DATA)
# =====================================================================
# УБРАНО ИЗ ITCM/DTCM (Кодеки iLBC и логика пакетов уходят во Flash + кэш)
# =====================================================================
# Файлы stream.c, rtp.c, endpoint.c, g711.c, ilbc.c, iLBC_decode.c, iLBC_encode.c
# теперь будут автоматически исполняться из Flash через ICACHE, освобождая ~25 КБ памяти.