Загрузка данных
#relocate for SDRAM
# 1. Извлекаем список только тех файлов, которые участвуют в сборке таргета pjsip
get_target_property(PJSIP_CONFIGURED_SOURCES pjsip SOURCES)
# ----------------- ДОБАВЬТЕ ЭТОТ БЛОК ДЛЯ ТЕСТА -----------------
# Выводим заголовок в консоль для заметности
message(STATUS "=======================================================")
message(STATUS "СПИСОК ИСХОДНИКОВ PJSIP ДЛЯ ПЕРЕНОСА В RAM:")
# Печатаем каждый файл с новой строки
foreach(src_file ${PJSIP_CONFIGURED_SOURCES})
message(STATUS " -> ${src_file}")
endforeach()
message(STATUS "=======================================================")
# -----------------------------------------------------------------
# 2. Массово отправляем во внешнюю RAM только этот отфильтрованный список
if(PJSIP_CONFIGURED_SOURCES)
zephyr_code_relocate(FILES ${PJSIP_CONFIGURED_SOURCES} LOCATION RAM_TEXT)
endif()
# 2. Насильно переносим весь скомпилированный архив приложения (libapp.a) целиком
zephyr_code_relocate(LIBRARY app LOCATION RAM_TEXT)
# ------------------------------------------------------------------------------
# ПРИОРИТЕТ 4: Перенос ядра Zephyr, МЕНЕДЖЕРА КУЧИ и сетевого стека в RAM
# ------------------------------------------------------------------------------
# 1. Системная математика компилятора GCC и функции деления/float
#zephyr_code_relocate(LIBRARY gcc LOCATION RAM_TEXT)
# 2. Вся тригонометрия и логарифмы (включая sin, scalbn, cos, log, pow)
#zephyr_code_relocate(LIBRARY m LOCATION RAM_TEXT)
# 3. Полный перенос стандартной Си-библиотеки для подстраховки picolibc/newlib
zephyr_code_relocate(LIBRARY lib__libc__common LOCATION RAM_TEXT)
zephyr_code_relocate(LIBRARY lib__libc__picolibc LOCATION RAM_TEXT)
#zephyr_code_relocate(LIBRARY c LOCATION RAM_TEXT)
# 4. Сетевой стек Zephyr (Sockets, IPv4, IPv6, TCP/UDP, ARP, Буферы)
zephyr_code_relocate(LIBRARY subsys__net LOCATION RAM_TEXT)
zephyr_code_relocate(LIBRARY subsys__net__ip LOCATION RAM_TEXT)
zephyr_code_relocate(LIBRARY subsys__net__l2__ethernet LOCATION RAM_TEXT)
zephyr_code_relocate(LIBRARY lib__net_buf LOCATION RAM_TEXT)
zephyr_code_relocate(LIBRARY lib__os__zvfs LOCATION RAM_TEXT)
zephyr_code_relocate(LIBRARY subsys__fs LOCATION RAM_TEXT)
zephyr_code_relocate(LIBRARY subsys__random LOCATION RAM_TEXT)
zephyr_code_relocate(LIBRARY subsys__usb__device_next LOCATION RAM_TEXT)
zephyr_code_relocate(LIBRARY subsys__input LOCATION RAM_TEXT)
zephyr_code_relocate(LIBRARY subsys__net__lib__config LOCATION RAM_TEXT)
zephyr_code_relocate(LIBRARY drivers__disk LOCATION RAM_TEXT)
zephyr_code_relocate(LIBRARY drivers__usb__udc LOCATION RAM_TEXT)
zephyr_code_relocate(LIBRARY drivers__audio LOCATION RAM_TEXT)
zephyr_code_relocate(LIBRARY drivers__clock_control LOCATION RAM_TEXT)
zephyr_code_relocate(LIBRARY drivers__console LOCATION RAM_TEXT)
zephyr_code_relocate(LIBRARY drivers__entropy LOCATION RAM_TEXT)
zephyr_code_relocate(LIBRARY drivers__ethernet LOCATION RAM_TEXT)
zephyr_code_relocate(LIBRARY drivers__gpio LOCATION RAM_TEXT)
zephyr_code_relocate(LIBRARY drivers__i2s LOCATION RAM_TEXT)
zephyr_code_relocate(LIBRARY drivers__input LOCATION RAM_TEXT)
zephyr_code_relocate(LIBRARY drivers__mdio LOCATION RAM_TEXT)
zephyr_code_relocate(LIBRARY drivers__pinctrl LOCATION RAM_TEXT)
zephyr_code_relocate(LIBRARY drivers__serial LOCATION RAM_TEXT)
zephyr_code_relocate(LIBRARY modules__littlefs LOCATION RAM_TEXT)
zephyr_code_relocate(LIBRARY mbedTLSBase LOCATION RAM_TEXT)
zephyr_code_relocate(LIBRARY pjproject LOCATION RAM_TEXT)
# 5. Слой совместимости POSIX (потоки pthread, опрос сокетов select)
zephyr_code_relocate(LIBRARY lib__posix__options LOCATION RAM_TEXT)
# 6. Планировщик ОС, а также КРИТИЧЕСКИ ВАЖНЫЙ менеджер кучи (heap.c) со скриншота
zephyr_code_relocate(LIBRARY kernel LOCATION RAM_TEXT)
zephyr_code_relocate(LIBRARY zephyr LOCATION RAM_TEXT)
# Принудительно забираем саму общую системную библиотеку Zephyr, куда линкуется heap.c.obj:
#zephyr_code_relocate(LIBRARY libzephyr LOCATION RAM_TEXT)
# 7. Аппаратные драйверы NXP HAL (I2C, Ethernet, fsl_ocotp)
zephyr_code_relocate(LIBRARY modules__hal_nxp LOCATION RAM_TEXT)
zephyr_code_relocate(LIBRARY drivers__i2c LOCATION RAM_TEXT)
######################
endif()