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.

[参考译文] 编译器/TMS320C28346:CCS8.3/TMS320C28346

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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/919138/compiler-tms320c28346-ccs8-3-tms320c28346

器件型号:TMS320C28346

工具/软件:TI C/C++编译器

您好!

我使用 TI Delfino C28346。 我将 CCSv3.3与 MATLAB r2015b 结合使用、编译我的 Simulink 模型时没有问题。 现在、我想使用 CCSv8.3使用 Matlab r2018b 编译我的同一个模型。 遗憾的是、当我想要构建模型时、我始终会遇到错误。 您可以在下面找到 诊断查看器错误、 .map 文件.cmd 文件

我使用的链接器命令文件如下:

C:\Users\ecetinyol\Desktop\ecetinyol_7579_OSMBM_Copy

诊断查看器错误为:

"C:/Users/ecetinyol/Desktop/ecetinyol_7579_OSMBM_Copy/v0.1.4_R2018b/YZ_7573_0KKB.cmd "、第28行:错误:

  程序将不能放入可用的内存中。 放置方式

  ".text"大小0x4053b 第0页的对齐/分块失败。 可用

  存储器范围:

  RAMH0H5    大小:0x2d800    未使用:0x2d800    最大孔:0x2d800

"C:/Users/ecetinyol/Desktop/ecetinyol_7579_OSMBM_Copy/v0.1.4_R2018b/YZ_7573_0KKB.cmd "、第33行:错误:

  程序将不能放入可用的内存中。 放置方式

  ".cinit"大小0x8196页0的对齐/分块失败。 可用

  存储器范围:

  RAMH3H5    大小:0x2800      未使用:0x2800      最大孔:0x2800

"C:/Users/ecetinyol/Desktop/ecetinyol_7579_OSMBM_Copy/v0.1.4_R2018b/YZ_7573_0KKB.cmd "、第29行:错误:

  程序将不能放入可用的内存中。 放置方式

  ".switch"大小为0x13dc 页0的对齐/分块失败。

  可用存储器范围:

  RAML2L7    大小:0xcc00      未使用:0x375      最大孔:0x374

错误:链接期间遇到错误;"../YZ_7573_0KKB.out"未生成

>>编译失败

Gmake:***[./YZ_7573_0KKB.OUT]错误1

C:\Users\ecetinyol\Desktop\ecetinyol_7579_OSMBM_Copy\v0.1.4_R2018b\YZ_7573_0KKB_ERT_RTW>回显 make 命令返回错误2

make 命令返回错误2

C:\Users\ecetinyol\Desktop\ecetinyol_7579_OSMBM_Copy\v0.1.4_R2018b\YZ_7573_0KKB_ERT_RTW>AN_ERROR_occurred during _the_call_to-make

"AN_ERROR_occurred_During_the_call_TO_make"不会被识别为内部或外部命令、

可操作的程序或批处理文件。

###模型的构建过程:"YZ_7573_0KKB"由于一个错误而中止。

构建"YZ_7573_0KKB"时遇到错误:

###无法生成所有二进制输出。

.cmd 文件如下所示:

存储器

第0页:

  BEGINRAM:  origin=0x0、length=0x2

  RAMM0M1:    origin=0x52、length=0x3ae

  ZONE7A:origin=0x200000、length=0xfc00

  RAMH0H5:    origin=0x300000、length=0x2d800

  csm_RSVD:  origin=0x33ff80、length=0x76

  csm_PWL_PROG:  origin=0x33fff8、length=0x8

  IQTABLES:  origin=0x3fe000、length=bb50

  IQTABLES2:  origin=0x3feb50、length=0x8c

  FPUTABLES:  origin=0x3febdc、length=0x6a0

  BOOTRAM:    origin=0x3ff27c、length=0xd44

  复位:  origin=0x3fffc0、length=0x2

  RAML2L7:    origin=0x9400、length=0xcc00

  RAMH3H5:    origin=0x32d800、length=0x2800

第1页:

  RAML0L7:    origin=0x8000、length=0x1000

  BOOTRSVD:  origin=0x2、length=0x50

  ZONE7B:origin=0x20fc00、length=0x400

  DEFRAMLOP2:origin=0x9000、length=0x400

  DEFRAML7P1:origin=0x16000、length=0x400

  DEFRAML7P2:origin=0x16400、length=0x1c00

部分

  向量:  load = 0x000000000

  .text:  > RAMH0H5、PAGE = 0

  .switch:    > RAML2L7、PAGE = 0

  .bss:  > DEFRAMLOP2、PAGE = 1

  .ebss:  > RAML2L7、PAGE = 0

  .far:  > RAML2L7、PAGE = 0

  .cinit:> RAMH3H5、PAGE = 0

  .pinit:> RAML2L7、PAGE = 0

  .const:> DEFRAMLOP2、PAGE = 1

  .econst:    > RAML2L7、PAGE = 0

  .reset:> RESET、PAGE = 0、TYPE = DSECT

  .data:  > RAML2L7、PAGE = 0

  .cio:  > RAML2L7、PAGE = 0

  .sysmem:    > DEFRAMLOP2、PAGE = 1

  .esysmem:  > RAML2L7、PAGE = 0

  .stack:> RAML0L7、PAGE = 1

  .RTDX_TEXT:> RAML2L7、PAGE = 0

  .RTDX_DATA:> RAML2L7、PAGE = 0

  IQMath:> IQTABLES、PAGE = 0

  codestart:  > BEGINRAM、PAGE = 0

  csmpasswds:>csm_PWL_PROG、page = 0

  csm_rsvd:  >csm_RSVD、page = 0

  ramfuncs:  >RAML2L7、page = 0

  external_ram:  > ZONE7B、page = 1

  IQmathTables:  > IQTABLES,PAGE = 0,TYPE = NOLOAD

  IQmathTables2  :> IQTABLES2、PAGE = 0、TYPE = NOLOAD

  FPUmathTables:  > FPUTABLES,PAGE = 0,TYPE = NOLOAD

当我打开扩展名为.map 的文件时、我还看到了一些未使用的字段。  

秘书长的报告

            TMS320C2000链接器 PC v5.2.1                     

秘书长的报告

>> 2020年2月10日15:28:12日链接星期一

输出文件名:   

入口点符号:"_c_int00"地址:003238e6

存储器配置

        名称          源  长度    使用    未使用  的属性  填充

------------ ---- ------ ---- ---- --------

第0页:

BEGINRAM            00000000  00000002 00000002 00000000 RWIX

RAMM0M1              00000052  000003ae 00000000 000003ae RWIX

RAML2L7              00009400  0000cc00 000060c6 00006b3a RWIX

ZONE7A               00200000  0000fc00 00000000 0000fc00 RWIX

RAMH0H5              00300000  0002d800 00023b68 00009c98 RWIX

RAMH3H5              0032d800  00002800 00000040 000027c0 RWIX

csm_RSVD            0033ff80  00000076 00000000 00000076 RWIX

CSM_PWL_PROG        0033fff8  00000008 00000000 00000008 RWIX

IQTABLES            003fe000  00000b50 00000000 00000b50 RWIX

IQTABLES2            003feb50  0000008c 00000000 0000008c RWIX

FPUTABLES            003febdc  000006a0 00000000 000006a0 RWIX

BOOTRAM              003ff27c  00000d44 00000000 00000d44 RWIX

重置                003fffc0  00000002 00000000 00000002 RWIX

第1页:

BOOTRSVD            00000002  00000050 00000000 00000050 RWIX

DEV_EMU              00000880  00000180 000000d0 000000b0 RWIX

CSM                  00000ae0  00000010 00000010 00000000 RWIX

XINTF                00000b20  00000020 0000001e 00000002 RWIX

CPU_TIMER0          00000c00  00000008 00000008 00000000 RWIX

CPU_Timer1          00000c08  00000008 00000008 00000000 RWIX

CPU_TIMER2          00000c10  00000008 00000008 00000000 RWIX

PIE_CTRL            00000ce0  00000020 0000001a 00000006 RWIX

PI_VECT           00000d00  00000100 00000100 00000000 RWIX

DMA                  00001000  00000200 000000e0 00000120 RWIX

MCBSPA              00005000  00000040 00000025 0000001b RWIX

MCBSPB              00005040  00000040 00000025 0000001b RWIX

ECANA                00006000  00000040 00000034 0000000c RWIX

ECANA_LAM            00006040  00000040 00000040 00000000 RWIX

ECANA_MOTS          00006080  00000040 00000040 00000000 RWIX

ECANA_MOTO          000060c0  00000040 00000040 00000000 RWIX

ECANA_MBOX          00006100  00000100 00000100 00000000 RWIX

ECANB                00006200  00000040 00000034 0000000c RWIX

ECANB_LAM            00006240  00000040 00000040 00000000 RWIX

ECANB_MOTS         00006280  00000040 00000040 00000000 RWIX

ECANB_MOTO          000062c0  00000040 00000040 00000000 RWIX

ECANB_MBOX          00006300  00000100 00000100 00000000 RWIX

EPWM9                00006600  00000022 00000022 00000000 RWIX

EPWM1                00006800  00000022 00000022 00000000 RWIX

EPWM2                00006840  00000022 00000022 00000000 RWIX

EPWM3                00006880  00000022 00000022 00000000 RWIX

EPWM4                000068c0  00000022 00000022 00000000 RWIX

EPWM5                00006900  00000022 00000022 00000000 RWIX

EPWM6                00006940  00000022 00000022 00000000 RWIX

EPWM7                00006980  00000022 00000022 00000000 RWIX

EPWM8                000069c0  00000022 00000022 00000000 RWIX

eCAP1                00006a00  00000020 00000020 00000000 RWIX

ECAP2                00006a20  00000020 00000020 00000000 RWIX

ECAP3                00006a40  00000020 00000020 00000000 RWIX

ECAP4                00006a60  00000020 00000020 00000000 RWIX

ECAP5                00006a80  00000020 00000020 00000000 RWIX

ECAP6                00006aa0  00000020 00000020 00000000 RWIX

EQEP1               00006b00  00000040 00000040 00000000 RWIX

EQEP2                00006b40  00000040 00000040 00000000 RWIX

EQEP3                00006b80  00000040 00000040 00000000 RWIX

GPIOCTRL            00006f80  00000040 0000002e 00000012 RWIX

GPIODAT              00006fc0  00000020 00000020 00000000 RWIX

GPIOINT              00006fe0  00000020 0000000a 00000016 RWIX

系统              00007010  00000021 00000020 00000001 RWIX

SPIA                00007040  00000010 00000010 00000000 RWIX

SCIA                00007050  00000010 00000010 00000000 RWIX

XINTRUPT            00007070  00000010 00000010 00000000 RWIX

SCIB                00007750  00000010 00000010 00000000 RWIX

SCIC               00007770  00000010 00000010 00000000 RWIX

SPID                00007780  00000010 00000010 00000000 RWIX

I2CA                00007900  00000040 00000022 0000001e RWIX

RAML0L7              00008000  00001000 00000200 00000e00 RWIX

DEFRAMLOP2          00009000  00000400 00000000 00000400 RWIX

DEFRAML7P1          00016000  00000400 00000000 00000400 RWIX

DEFRAML7P2          00016400  00001c00 00000000 00001c00 RWIX

ZONE7B              0020fc00  00000400 00000000 00000400 RWIX

CSM_PWL              0033fff8  00000008 00000008 00000000 RWIX

如何解决此问题? 我认为我需要在内存区域进行一些更改。 可以帮帮我吗?

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

    内存不足。  这是令人惊讶的。  我不确定原因。  但我可以指导您前进的一部分。

    阅读文章 链接器命令文件入门的第一部分、了解链接器命令文件将是一个不错的做法。   

    让我们仅关注这一个诊断...

    [引用 user6378352"]

    "C:/Users/ecetinyol/Desktop/ecetinyol_7579_OSMBM_Copy/v0.1.4_R2018b/YZ_7573_0KKB.cmd "、第28行:错误:

      程序将不能放入可用的内存中。 放置方式

      ".text"大小0x4053b 第0页的对齐/分块失败。 可用

      存储器范围:

      RAMH0H5    大小:0x2d800    未使用:0x2d800    最大孔:0x2d800

    [/报价]

    它与链接器命令文件中的此行相关...

    [引用 user6378352"]  .text:  >RAMH0H5,page = 0[/quot]

    该行指示创建一个名为.text 的输出段。  它由所有名为.text 的输入段组成。  它被分配给内存范围 RAMH0H5。  text 输出段的大小为0x4053b 字、RAMH0H5存储器范围的大小为0x2d800字。   

    因为你说...

    [报价用户="user6378352"]我使用的是带 MATLAB r2015b 的 CCSv3.3、编译我的 Simulink 模型时没有问题。

    (笑声) 这以前必须有效。  不知怎么说、.text 段的大小从大约0x2d800字增加到0x4053b 字。  这是一个很大的差异。  按照通用惯例、.text 段包含程序指令、也称为代码。  因此、您的代码大小大幅增加。   

    为了帮助了解发生了什么、请考虑执行该实验。  链接器命令文件进行临时更改。  使.text 的存储器范围大得多。  对具有类似问题的其他存储器范围执行相同的操作。  继续操作、直到获得成功的链接。  生成的可执行文件将不起作用、但没关系、因为您不打算运行它。  现在、您有了新构建中的链接器映射文件、将所有内容分配到存储器中的某个位置。  将此新映射文件与旧映射文件进行比较。  这样您就可以更好地了解在哪里集中调查代码大小为何如此大。   

    请告诉我们您发现了什么以及您是如何解决的。

    谢谢、此致、

    乔治