This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] CCS/IWR1642BOOST:错误#10099-D:程序将无法放入可用存储器中。 段".fastCode&quot 的运行定位失败;

Guru**** 2558250 points
Other Parts Discussed in Thread: MATHLIB, SYSBIOS

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/sensors-group/sensors/f/sensors-forum/635927/ccs-iwr1642boost-error-10099-d-program-will-not-fit-into-available-memory-run-placement-with-alignment-fails-for-section-fastcode

器件型号:IWR1642BOOST
主题中讨论的其他器件:MATHLIBSYSBIOS

工具/软件:Code Composer Studio

您好!

我正在尝试编译演示代码、对 dss_data_path.c 进行了一些修改 主要是、我添加了一个新结构、该结构在传感器前面的特定区域内存储物体的 x 和 y 位置。 当我尝试编译 MMW_DSS 工程时、它首先生成了此错误:  

'构建目标:xwr16xx_mmw_dss.xe674'
'调用:C6000链接器'
"c:/ti/ccsv7/tools/compiler/ti-cgt-c6000_8.1.3/bin/cl6x /ti/mmwave_sdk_01_00_00_05/packages/ti/control/mmwave/lib /ti/mmwave_sdk_01_00_00_05/packages/ti/drivers/crc/lib /ti/mmwave_sdk_01_00_00_05/packages/ti/drivers/mailbox/lib /ti/mmwave_sdk_01_00_00_05/packages/ti/drivers/soc/lib /ti/mmwave_sdk_01_00_00_05/packages/ti/drivers/uart/lib /ti/mmwave_sdk_01_00_00_05/packages/ti/drivers/adcbuf/lib /ti/mmwave_sdk_01_00_00_05/packages/ti/alg/mmwavelib/lib /ti/mathlib_c674x_3_1_2_1/packages/ti/mathlib/lib -mv6740 --abi=eabi -O3 -opt_for_speed=4 -g -gcc -define=SOC_XWR16XX -define=Subsys_dss -define=download_from_ccs -define=Debug_assert--mw_wrap=off -mw_exc"-cn"-cn"-cn"-cn"-ines"-/ti/mmwave_sdk_01_00_00_05/packages/ti/control/mmwavelink/lib -cn"-cn"i-dss"-exc"-cn"-cn"i-dss-cn"-cn"-cn"-cn"-cn"-cn"0x800_intrab-cn"-cn"-cn"-cn"-cn"-cn"-cn"-cn"-cn"-cn-cn"i-texc"i-dss-cn"-cn"-/ti/mmwave_sdk_01_00_00_05/packages/ti/drivers/osal/lib /ti/mmwave_sdk_01_00_00_05/packages/ti/drivers/edma/lib /ti/dsplib_c64Px_3_4_0_0/packages/ti/dsplib/lib /ti/ccsv7/tools/compiler/ti-cgt-c6000_8.1.3/lib /ti/ccsv7/tools/compiler/ti-cgt-c6000_8.1.3/include -cn"-cn"-cn"-cn"-cn"-cn-cn-cn-cn-cn-cn-cn-cn-cn-cn-cn-cn-cn-cn-cn-cn-cn"-cn-cn"i-t reread_libs --disable_auto_rts --diag_warning=225 --diag_wrap=off --warn_sections --display_error_number --xml_link_info="xwr16xx_mmw_674 _linker.xml"--unused_section_elimination=on -o "xwr16xx_mw_674_linker "_libwr16xx/lat_ex_example.xml"-ex_example.xml_644_en_ex_ex_ex_example.xml_example_linker.config_en_en_dlet_en_dlet_dlet_file.xml_644_ex_ex_dlet_dlet_dlet_ex_ex_dlet_ex_dlet_ex_dlet_ex_dlintrad.trad.trad.trad.dlet_647.647.htm644_ex_ex_dlet_ex_dlet_ex_dlet_ex_dlet_dlet_ex_dlintrad.trad.trad.dl

"./dss_mmw_linker.cmd"、第44行:警告#10068-D:无匹配段
"./dss_mmw_linker.cmd"、第36行:错误#10099-D:程序将无法放入可用内存中。 “.fastCode”大小为0x3f20的运行定位失败。 可用存储器范围:

L1PSRAM 大小:0x4000未使用:0x4000最大孔:0x4000
>>编译失败
Makefile:164:目标'xwr16xx_MMW_DS.xe674'的配方失败
错误#10010:链接期间遇到错误;未生成"xwr16xx_MMW_DSS.xe674"
gmake[2]:***[xwr16xx_mmw_dss.xe674]错误1.
Makefile:160:目标'main-build'的配方失败
gmaking[1]:***[main-build]错误2.
Makefile:155:目标'all'的配方失败
gmake:***[全部]错误2.

****构建完成****

然后、我使用了编译器优化、先前的错误消失了。 但是、这些警告出现在:  

'构建目标:xwr16xx_mmw_dss.xe674'
'调用:C6000链接器'
"c:/ti/ccsv7/tools/compiler/ti-cgt-c6000_8.1.3/bin/cl6x /ti/mmwave_sdk_01_00_00_05/packages/ti/drivers/crc/lib /ti/mmwave_sdk_01_00_00_05/packages/ti/drivers/soc/lib /ti/mmwave_sdk_01_00_00_05/packages/ti/drivers/adcbuf/lib /ti/mathlib_c674x_3_1_2_1/packages/ti/mathlib/lib -mv6740 --abi=eabi -O3 -MS0 -g -gcc -define=SOC_XWR16XX -define=Subsys_DSS -define=download_from_ccs -define=Debug_assert=off -wrag_warning=subs=subsection-/ti/mmwave_sdk_01_00_00_05/packages/ti/control/mmwave/lib -ram_inese-/ti/mmwave_sdk_01_00_00_05/packages/ti/drivers/mailbox/lib /ti/mmwave_sdk_01_00_00_05/packages/ti/drivers/uart/lib /ti/mmwave_sdk_01_00_00_05/packages/ti/alg/mmwavelib/lib /ti/ccsv7/tools/compiler/ti-cgt-c6000_8.1.3/lib -cn"i-from_exits"-/ti/mmwave_sdk_01_00_00_05/packages/ti/control/mmwavelink/lib -/ti/mmwave_sdk_01_00_00_05/packages/ti/drivers/osal/lib /ti/mmwave_sdk_01_00_00_05/packages/ti/drivers/edma/lib /ti/dsplib_c64Px_3_4_0_0/packages/ti/dsplib/lib /ti/ccsv7/tools/compiler/ti-cgt-c6000_8.1.3/include -intrab-inese-dcs-ex-cn"-cn"-cn-ina-ina-inese-ina.i_ina.i_ina.i=-ina.i_intrab-cn"-cn"-cn"-cn"-cn"-cn"i-from-ina.i_ina.i_ina.i_intrab-cn"-cn"-ina.ti-cn"-cn"-cn"-cn-cn-cn"-cn-cn-cn-cn-cn-cn"-cn-cn-cn-cn-cn-cn-cn-cn-cn-cn-cn-cn-cn-cn- disable_auto_rts --diag_warning=225 --diag_wrap=off --warn_sections --display_error_number --xml_link_info="xwr16xx_mmw_dss_linkInfo.xml"--wrram_model --unused_section_elimination=on -o "xwr16xx_mss_dss.tm_linker -sw_linker 16674"/tex644/lexample.htm_linker "/lexample.htm_linker "/tl.ex644/lexample.texample.htm_en_linker "/tl.dlex644/lex_ex_example.htm_example.htm_linker "/tl.dlex_example.htm_ex_example.htm_ex_ex_exfile.htm_ex_ex_ex_ex647.64

警告#10370-D:可能的代码大小或性能下降。 ".text:MmwDemo_interFrameProcessing:DSS_DATA_path.oe674"部分对 RTS 例程进行了调用、但 RTS 在0xe01900的调用站点或不同的段中超出范围。 要优化代码大小、请1)将 RTS 放置在更靠近调用点的位置、或2)将 RTS 放置在同一段中、或3)使用--disable_push_pop 进行编译。
警告#10370-D:可能的代码大小或性能下降。 ".text:MmwDemo_interFrameProcessing:DSS_DATA_path.oe674"部分对 RTS 例程进行了调用、但 RTS 在0xe024c4调用站点或不同段中超出范围。 要优化代码大小、请1)将 RTS 放置在更靠近调用点的位置、或2)将 RTS 放置在同一段中、或3)使用--disable_push_pop 进行编译。
警告#10370-D:可能的代码大小或性能下降。 ".text:MmwDemo_dsInitTask:dss_main.oe674"部分对 RTS 例程进行了调用、但 RTS 在0x20003f08的调用站点或其他段中超出范围。 要优化代码大小、请1)将 RTS 放置在更靠近调用点的位置、或2)将 RTS 放置在同一段中、或3)使用--disable_push_pop 进行编译。
警告#10370-D:可能的代码大小或性能下降。 ".text:MmwDemo_dsInitTask:dss_main.oe674"部分对 RTS 例程进行了调用、但 RTS 在0x20003b80的调用站点或其他段中超出范围。 要优化代码大小、请1)将 RTS 放置在更靠近调用点的位置、或2)将 RTS 放置在同一段中、或3)使用--disable_push_pop 进行编译。
'已完成的构建目标:xwr16xx_mmw_dss.xe674'
'
C:/ti/mmwave_sdk_01_00_00_05/packages/scripts/ImageCreator/xwr16xx/out2rprc/out2rprc.exe xwr16xx_mmw_dss.xe674 xwr16xx_mmw_dss.bin
解析输入目标文件 xwr16xx_mmw_dss.xe674。
添加零8461856
添加零8469520
添加零8478616
添加零8479240
文件转换完成!
'

****构建完成****

MMW_MSS 构建完成时没有错误、但建议优化编译器。 我没有这么做。  

当我进入调试模式时、我可以将.xe674文件加载到 C674x 调试探针上、但是当我将.xer4f 文件加载到 Cortex_R4探针时、会出现以下错误:  

 

[Cortex_R4_0]在 ThreadType_Main 中发生异常。
主句柄:0x0。
主堆栈基地址:0x8009e80。
主堆栈大小:0x1000。
R0 = 0x00000000 R8 = 0x000116b4
R1 = 0x0001618b R9 = 0x00012ef4
R2 = 0x08000009 R10 = 0x000000D1
R3 = 0x08008e94 R11 = 0xffffffff
R4 = 0x0000865c R12 = 0x000142c9
R5 = 0x0800bd5a SP (R13)= 0x00000000
R6 = 0x00000001 LR (R14)= 0x000116b4
R7 = 0x08008ecc PC (R15)= 0x00012ef4
PSR = 0x400c019f
DFSR = 0x00000808 IFSR = 0x00000000
DFAR = 0xfffffff8 IFAR = 0x00000000
TI.SYSBIOS.family.ARM.exc.exception:第209行:E_undefineedInstruction:PC = 0x00012ef4、LR = 0x000116b4。
xdc.runtime.Error.raise:终止执行

我觉得所有这些仍然与无法将 dss_data_path.c 文件中添加的代码正确放入内存有关。 通过查看不同的论坛帖子、必须以某种方式修改存储器分区。 但我不确定从哪里开始。 你有什么建议?  

谢谢你。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    注意:我已经能够在调试模式下在电路板上编译和运行演示代码。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我还看到了这篇 文章 e2e.ti.com/.../618244 ,其中的问题通过进入 C674x_linker.cmd 并将 L1P_cache_size 设置为4*1024而不是16*1024得到解决。 复位后、这实际上已经起作用。 现在我有一个新错误。 当我运行两个调试探针(C674x 和 Cortex_R4)时、控制台将会输出:

    [Cortex_R4_0]
    调试:启动毫米波演示
    (小部分
    调试:MMWDemoMSS 启动了初始化任务
    调试:MMWMSS DemommWave Control 初始化成功
    调试:CLI 可用
    [C674x_0]调试:记录 UART 实例@00815540已成功打开
    调试:DSS 邮箱句柄@0080f530
    调试:MMWDemoDSS 创建事件句柄成功
    调试:MMWDSS DemommWave Control 初始化成功
    调试:MMWDemoDSS ADCBUF 实例(0)@00815510已成功打开
    调试:MMWDemoDSS 数据路径初始化成功
    调试:MMWDemoDSS 数据路径初始化成功
    {MODULE#8}:"../DSS_main.c"、第264行:错误{id:0x10000、args:[0x8139b4、0x8139b4]}
    xdc.runtime.Error.raise:终止执行
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我最终重新启动了电路板、重新构建和重新连接、这解决了问题。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    太棒了! 如果您还有任何疑问、请随时打开新主题!


    谢谢、
    Akash