Hello,
We are developing DSP and MCU SW on MIMXRT685-EVK, but when I include more DSP codes (when DSP bin size is over about 500KB), build result will be failed with below errors: (dangerous relocation: call8: call target out of range: memcpy)
########################################debug log###
STD: cmd.exe /C "cd . && C:/usr/xtensa/XtDevTools/install/tools/RI-2020.5-win32/XtensaTools/bin/xt-xc++.exe --xtensa-core=nxp_rt600_RI2020_5_xclib -std=c++11 -clang -D__hifi4__ -DBUILD_HIFI4 @CMakeFiles\app.rsp -o ..\bin\debug\app.elf -mlsp=C:/NXP_HiFi4/hifi4_platform/build/cmake/../../sdk/SDK_2.9.0_EVK-MIMXRT685/xtensa/gdbio && cmd.exe /C "cd /D C:\NXP_HiFi4\hifi4_platform\code\hifi4\output\bhifi4_debug\hifi4\dapp\src && C:\usr\xtensa\XtDevTools\install\tools\RI-2020.5-win32\XtensaTools\bin\xt-objcopy.exe --xtensa-params= -Obinary C:/NXP_HiFi4/hifi4_platform/build/cmake/../../code/hifi4/output/bin/debug/app.elf C:/NXP_HiFi4/hifi4_platform/build/cmake/../../code/hifi4/output/bin/debug/dsp_text_debug.bin --xtensa-core=nxp_rt600_RI2020_5_xclib --only-section=.dram0.rodata --only-section=.Level2InterruptVector.literal --only-section=.Level3InterruptVector.literal --only-section=.DebugExceptionVector.literal --only-section=.NMIExceptionVector.literal --only-section=.KernelExceptionVector.literal --only-section=.UserExceptionVector.literal --only-section=.DoubleExceptionVector.literal --only-section=.iram0.literal --only-section=.ResetVector.literal --only-section=.dram0.literal --only-section=.dram0.data --only-section=.dram0.bss --only-section=.ResetVector.text --only-section=.ResetHandler.literal --only-section=.ResetHandler.text --only-section=.WindowVectors.text --only-section=.Level2InterruptVector.text --only-section=.Level3InterruptVector.text --only-section=.DebugExceptionVector.text --only-section=.NMIExceptionVector.text --only-section=.KernelExceptionVector.text --only-section=.UserExceptionVector.text --only-section=.DoubleExceptionVector.text --only-section=.iram0.text && cd /D C:\NXP_HiFi4\hifi4_platform\code\hifi4\output\bhifi4_debug\hifi4\dapp\src && C:\usr\xtensa\XtDevTools\install\tools\RI-2020.5-win32\XtensaTools\bin\xt-objcopy.exe --xtensa-params= -Obinary C:/NXP_HiFi4/hifi4_platform/build/cmake/../../code/hifi4/output/bin/debug/app.elf C:/NXP_HiFi4/hifi4_platform/build/cmake/../../code/hifi4/output/bin/debug/dsp_data_debug.bin --xtensa-core=nxp_rt600_RI2020_5_xclib --only-section=.text --only-section=.rodata --only-section=.data --only-section=.bss --only-section=.literal --only-section=.sram.text --only-section=.sram.rodata --only-section=.sram.data --only-section=.sram.bss --only-section=.sram.literal --only-section=.clib.rodata --only-section=.clib.text --only-section=.clib.data --only-section=.clib.percpu.data --only-section=.clib.bss --only-section=.clib.percpu.bss --only-section=.clib.literal --only-section=.rtos.rodata --only-section=.rtos.text --only-section=.rtos.data --only-section=.rtos.percpu.data --only-section=.rtos.bss --only-section=.rtos.percpu.bss --only-section=.rtos.literal && cd /D C:\NXP_HiFi4\hifi4_platform\code\hifi4\output\bhifi4_debug\hifi4\dapp\src && C:\usr\xtensa\XtDevTools\install\tools\RI-2020.5-win32\XtensaTools\bin\xt-objcopy.exe --xtensa-params= -Obinary C:/NXP_HiFi4/hifi4_platform/build/cmake/../../code/hifi4/output/bin/debug/app.elf C:/NXP_HiFi4/hifi4_platform/build/cmake/../../code/hifi4/output/bin/debug/dsp_ncache_debug.bin --xtensa-core=nxp_rt600_RI2020_5_xclib --only-section=NonCacheable""
STD: hifi4\dapp\src\CMakeFiles\app.dir\debug.cpp.obj: In function `output_debug_trace(char const*)':
STD: C:\NXP_HiFi4\hifi4_platform\code\hifi4\dapp\src/debug.cpp:96:(.text+0xa2): dangerous relocation: call8: call target out of range: memcpy
STD: hifi4\dapp\src\CMakeFiles\app.dir\debug.cpp.obj: In function `rpmsg_log(char const*)':
STD: C:\NXP_HiFi4\hifi4_platform\code\hifi4\dapp\src/debug.cpp:61:(.text+0x19a): dangerous relocation: call8: call target out of range: memcpy
STD: ninja: build stopped: subcommand failed.
###############################################
But I have already set the DSP core start address with 0x00200000, and len with 0x280000.
I think the SRAM size is enough, but when I tried to delete some DS code and make the DSP bin size below about 500KB, it will has no build errors.
I have tried to adjust the memory setting, but cannot fix this issue.
Could you help to check it?
Hello,
There is also other code or data need SRAM, for example memcpy, please pay attention the below compile log:
STD: hifi4\dapp\src\CMakeFiles\app.dir\debug.cpp.obj: In function `output_debug_trace(char const*)':
STD: C:\NXP_HiFi4\hifi4_platform\code\hifi4\dapp\src/debug.cpp:96:(.text+0xa2): dangerous relocation: call8: call target out of range: memcpy
STD: hifi4\dapp\src\CMakeFiles\app.dir\debug.cpp.obj: In function `rpmsg_log(char const*)':
STD: C:\NXP_HiFi4\hifi4_platform\code\hifi4\dapp\src/debug.cpp:61:(.text+0x19a): dangerous relocation: call8: call target out of range: memcpy
BR
Alice