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/TMS320F28379D:内存问题:我需要一个大数组

Guru**** 2589265 points
Other Parts Discussed in Thread: C2000WARE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/818806/ccs-tms320f28379d-memory-issue-i-need-a-large-array

器件型号:TMS320F28379D
主题中讨论的其他器件:C2000WARE

工具/软件:Code Composer Studio

我不熟悉 C2000、我需要3个4096 uint 16的数组来执行 FFT。我在"ADC_SoC_Continuous_DMA"示例中将 results_buffer_size 更改为4096

下面是2838x_flash_Ink CPU1.cmd:(顺便说一下、如果我选择通过2837x_RAM_lnk_CPU1.cmd 加载、则发生了另一个错误、开始存储器范围与现有存储器范围开始重叠。)


存储器

  /* begin 用于"引导至闪存"引导加载程序模式  */
  开始           :origin = 0x080000,length = 0x000002
  BOOT_RSVD       :origin = 0x000002,length = 0x0001AE    // M0的部分,引导 ROM 将使用此栈*/
  RAMM0           :origin = 0x0001B0,length = 0x000250
  RAMM1           :origin = 0x000400、length = 0x000400    //片上 RAM 块 M1 *
  RAMD0           :origin = 0x00C000、length = 0x000800
  RAMD1           :origin = 0x00C800,length = 0x000800
  RAMLS0          :origin = 0x008000、length = 0x000800
  RAMLS1          :origin = 0x008800,length = 0x000800
  RAMLS2          :origin = 0x009000,length = 0x000800
  RAMLS3          :origin = 0x009800,length = 0x000800
  RAMLS4          :origin = 0x00A000,length = 0x000800
  RAMLS5          :origin = 0x00A800,length = 0x000800
  RAMLS6          :origin = 0x00B000、length = 0x000800
  RAMLS7          :origin = 0x00B800,length = 0x000800
  RAMGS0          :origin = 0x00D000,length = 0x001000
  RAMGS1          :origin = 0x00E000、length = 0x001000
  RAMGS2          :origin = 0x00F000、length = 0x001000
  RAMGS3          :origin = 0x010000,length = 0x001000
  RAMGS4          :origin = 0x011000,length = 0x001000
  RAMGS5          :origin = 0x012000,length = 0x001000
  RAMGS6          :origin = 0x013000、length = 0x001000
  RAMGS7          :origin = 0x014000,length = 0x001000
  RAMGS8          :origin = 0x015000,length = 0x001000
  RAMGS9          :origin = 0x016000,length = 0x001000
  RAMGS10         :origin = 0x017000,length = 0x001000
  RAMGS11         :origin = 0x018000,length = 0x001000
  RAMGS12         :origin = 0x019000,length = 0x001000
  RAMGS13         :origin = 0x01A000,length = 0x001000
  RAMGS14         :origin = 0x01B000,length = 0x001000
  RAMGS15         :origin = 0x01C000,length = 0x001000
  /*闪存扇区*/
  FLASH0          :origin = 0x080002,length = 0x001FFE /*片上闪存*/
  FLASH1          :origin = 0x082000,length = 0x002000 //片上闪存*/
  FLASH2          :origin = 0x084000、length = 0x002000 //片上闪存*/
  FLASH3          :origin = 0x086000、length = 0x002000 //片上闪存*/
  FLASH4          :origin = 0x088000、length = 0x008000 //片上闪存*/
  FLASH5          :origin = 0x090000,length = 0x008000 //片上闪存*/
  Flash6          :origin = 0x098000、length = 0x008000 //片上闪存*
  FLASH7          :origin = 0x0A0000,length = 0x008000 //片上闪存*/
  FLASH8          :origin = 0x0A8000、length = 0x008000 //片上闪存*/
  FLASH9          :origin = 0x0B0000,length = 0x008000 //片上闪存*/
  FLASH10         :origin = 0x0B8000、length = 0x002000 //片上闪存*/
  FLASH11         :origin = 0x0BA000、length = 0x002000 //片上闪存*/
  FLASH12         :origin = 0x0BC000、length = 0x002000 //片上闪存*/
  FLASH13         :origin = 0x0BE000、length = 0x002000 //片上闪存*/
  CPU1TOCPU2RAM  :origin = 0x03A000,length = 0x000800
  CPU2TOCPU1RAM  :origin = 0x03B000,length = 0x000800
  CPUTOCMRAM     :origin = 0x039000,length = 0x000800
  CMTOCPURAM     :origin = 0x038000,length = 0x000800
  CANA_MSG_RAM    :origin = 0x049000、length = 0x000800
  CANB_MSG_RAM    :origin = 0x04B000、length = 0x000800
  复位           :origin = 0x3FFFC0,length = 0x000002
部分

  codestart          :>开始,align (4)
  .text              :>> FLASH1 | FLASH2 | FLASH3 | FLASH4、ALIGN (4)
  .cinit             :> FLASH4,align (4)
  .switch            :> FLASH1,ALIGN(4)
  .reset             :> reset,type = DSECT /* not used,*/
  .stack             :> RAMM1
#if defined (_TI_EABI)
  init_array     :> FLASH1,align (4)
  .bss            :> RAMLS5
  .bss:输出     :> RAMLS3
  .bss:CIO        :>RAMLS5
  .data           :> RAMLS5
  .sysmem         :> RAMLS5
  /*初始化段进入闪存*/
  .const          :> FLASH5、align (4)
其他
  .pinit          :> FLASH1,align (4)
  .ebss           :> RAMLS5
  .esysmem        :> RAMLS5
  .cio            :> RAMLS5
  /*初始化段进入闪存*/
  .econst         :>> FLASH4 | FLASH5、ALIG(4)
#endif
  ramgs0:>RAMGS0,type=NOINIT
  ramgs1:>RAMGS1,type=NOINIT
  
  MSGRAM_CPU1_TO_CPU2:>CPU1TOCPU2RAM,type=NOINIT
  MSGRAM_CPU2_TO_CPU1:>CPU2TOCPU1RAM,type=NOINIT
  MSGRAM_CPU_TO_CM   :> CPUTOCMRAM,type=NOINIT
  MSGRAM_CM_TO_CPU   :> CMTOCPURAM,type=NOINIT
  /*以下部分定义适用于 SDFM 示例*/
  filter_RegsFile :> RAMGS0
  filter1_RegsFile:> RAMGS1,fill=0x1111
  Filter2_RegsFile:> RAMGS2,fill=0x2222
  Filter3_RegsFile:> RAMGS3,fill=0x3333
  Filter4_RegsFile:> RAMGS4,fill=0x4444
  Differit_RegsFile:>RAMGS5,fill=0x3333
  #if defined (_TI_EABI)
      .TI.ramfunc:{}负载= FLASH3,
                       RUN = RAMLS0 | RAMLS1 | RAMLS2 | RAMLS3、
                       Load_start (RamfuncsLoadStart)、
                       load_size (RamfuncsLoadSize)、
                       Load_End (RamfuncsLoadEnd)、
                       RUN_START (RamfuncsRunStart)、
                       run_size (RamfuncsRunSize)、
                       RUN_END (RamfuncsRunEnd)、
                       对齐(4)
  其他
      .TI.ramfunc:{}负载= FLASH3,
                       RUN = RAMLS0 | RAMLS1 | RAMLS2 | RAMLS3、
                       load_start (_RamfuncsLoadStart)、
                       load_size (_RamfuncsLoadSize)、
                       load_end (_RamfuncsLoadEnd)、
                       run_start (_RamfuncsRunStart)、
                       run_size (_RamfuncsRunSize)、
                       run_end (_RamfuncsRunEnd)、
                       对齐(4)
  #endif
/*
//============================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================
//文件结束。
//============================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================
*
在以下情况下出错:

"C:/ti/c2000/C2000Ware_2_00_00_02/device_support/f2837xd/common/cmd/2837xD_FLASH_lnk_cpu1.cmd "、第97行:错误#10099-D:
  程序将不能放入可用的内存中。  使用运行放置
  "ramgs0"段大小为0x2000页1的对齐/分块失败。  可用
  存储器范围:
  RAMGS0      大小:0x1000      未使用:0x1000      最大孔:0x1000    
错误#10010:链接期间遇到错误;
  未构建"ADC_SoC_Continuous_dma_cpu01.out"
有人可以帮帮我吗?

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

    我想这不是因为缺乏内存。 我发现全局变量位于 .ebss 中

    但在我的例子中、它是关于"ramgs0"部分的。 我不知道什么是"ramgs0"段。

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

    当我选择加载到 RAM 中时、会发生这种情况


    "C:/ti/c2000/C2000Ware_2_00_00_02/device_support/f2837xd/common/cmd/2837xD_RAM_lnk_cpu1.cmd "、第7行:错误#10263:
      已指定起始存储器范围
    "C:/ti/c2000/C2000Ware_2_00_00_02/device_support/f2837xd/common/cmd/2837xD_RAM_lnk_cpu1.cmd "、第7行:错误#10264:
      开始存储器范围与现有存储器范围开始重叠
    "C:/ti/c2000/C2000Ware_2_00_00_02/device_support/f2837xd/common/cmd/2837xD_RAM_lnk_cpu1.cmd "、第8行:错误#10263:
      RAMM0内存范围已指定
    "C:/ti/c2000/C2000Ware_2_00_00_02/device_support/f2837xd/common/cmd/2837xD_RAM_lnk_cpu1.cmd "、第8行:错误#10264:
      RAMM0存储器范围与现有存储器范围 RAMM0重叠
    "C:/ti/c2000/C2000Ware_2_00_00_02/device_support/f2837xd/common/cmd/2837xD_RAM_lnk_cpu1.cmd "、第9行:错误#10263:
      RAMD0内存范围已指定
    "C:/ti/c2000/C2000Ware_2_00_00_02/device_support/f2837xd/common/cmd/2837xD_RAM_lnk_cpu1.cmd "、第9行:错误#10264:
      RAMD0存储器范围与现有存储器范围 RAMD0重叠
    "C:/ti/c2000/C2000Ware_2_00_00_02/device_support/f2837xd/common/cmd/2837xD_RAM_lnk_cpu1.cmd "、第10行:错误#10263:
      已指定 RAMLS0存储器范围
    "C:/ti/c2000/C2000Ware_2_00_00_02/device_support/f2837xd/common/cmd/2837xD_RAM_lnk_cpu1.cmd "、第10行:错误#10264:
      RAMLS0存储器范围与现有存储器范围 RAMLS0重叠
    "C:/ti/c2000/C2000Ware_2_00_00_02/device_support/f2837xd/common/cmd/2837xD_RAM_lnk_cpu1.cmd "、第11行:错误#10263:
      已指定 RAMLS1内存范围
    "C:/ti/c2000/C2000Ware_2_00_00_02/device_support/f2837xd/common/cmd/2837xD_RAM_lnk_cpu1.cmd "、第11行:错误#10264:
      RAMLS1存储器范围与现有存储器范围 RAMLS1重叠
    "C:/ti/c2000/C2000Ware_2_00_00_02/device_support/f2837xd/common/cmd/2837xD_RAM_lnk_cpu1.cmd "、第12行:错误#10263:
      已指定 RAMLS2存储器范围
    "C:/ti/c2000/C2000Ware_2_00_00_02/device_support/f2837xd/common/cmd/2837xD_RAM_lnk_cpu1.cmd "、第12行:错误#10264:
      RAMLS2存储器范围与现有存储器范围 RAMLS2重叠
    "C:/ti/c2000/C2000Ware_2_00_00_02/device_support/f2837xd/common/cmd/2837xD_RAM_lnk_cpu1.cmd "、第13行:错误#10263:
      已指定 RAMLS3内存范围
    "C:/ti/c2000/C2000Ware_2_00_00_02/device_support/f2837xd/common/cmd/2837xD_RAM_lnk_cpu1.cmd "、第13行:错误#10264:
      RAMLS3存储器范围与现有存储器范围 RAMLS3重叠
    "C:/ti/c2000/C2000Ware_2_00_00_02/device_support/f2837xd/common/cmd/2837xD_RAM_lnk_cpu1.cmd "、第14行:错误#10263:
      已指定 RAMLS4存储器范围
    "C:/ti/c2000/C2000Ware_2_00_00_02/device_support/f2837xd/common/cmd/2837xD_RAM_lnk_cpu1.cmd "、第14行:错误#10264:
      RAMLS4存储器范围与现有存储器范围 RAMLS4重叠
    "C:/ti/c2000/C2000Ware_2_00_00_02/device_support/f2837xd/common/cmd/2837xD_RAM_lnk_cpu1.cmd "、第15行:错误#10263:
      已指定复位存储器范围
    "C:/ti/c2000/C2000Ware_2_00_00_02/device_support/f2837xd/common/cmd/2837xD_RAM_lnk_cpu1.cmd "、第15行:错误#10264:
      复位存储器范围与现有存储器范围复位重叠
    "C:/ti/c2000/C2000Ware_2_00_00_02/device_support/f2837xd/common/cmd/2837xD_RAM_lnk_cpu1.cmd "、第19行:错误#10263:
      已指定 BOOT_RSVD 存储器范围
    "C:/ti/c2000/C2000Ware_2_00_00_02/device_support/f2837xd/common/cmd/2837xD_RAM_lnk_cpu1.cmd "、第19行:错误#10264:
      BOOT_RSVD 存储器范围与现有存储器范围 BOOT_RSVD 重叠
    "C:/ti/c2000/C2000Ware_2_00_00_02/device_support/f2837xd/common/cmd/2837xD_RAM_lnk_cpu1.cmd "、第20行:错误#10263:
      已指定 RAMM1存储器范围
    "C:/ti/c2000/C2000Ware_2_00_00_02/device_support/f2837xd/common/cmd/2837xD_RAM_lnk_cpu1.cmd "、第20行:错误#10264:
      RAMM1存储器范围与现有存储器范围 RAMM1重叠
    "C:/ti/c2000/C2000Ware_2_00_00_02/device_support/f2837xd/common/cmd/2837xD_RAM_lnk_cpu1.cmd "、第21行:错误#10263:
      已指定 RAMD1存储器范围
    "C:/ti/c2000/C2000Ware_2_00_00_02/device_support/f2837xd/common/cmd/2837xD_RAM_lnk_cpu1.cmd "、第21行:错误#10264:
      RAMD1存储器范围与现有存储器范围 RAMD1重叠
    "C:/ti/c2000/C2000Ware_2_00_00_02/device_support/f2837xd/common/cmd/2837xD_RAM_lnk_cpu1.cmd "、第23行:错误#10263:
      已指定 RAMLS5内存范围
    "C:/ti/c2000/C2000Ware_2_00_00_02/device_support/f2837xd/common/cmd/2837xD_RAM_lnk_cpu1.cmd "、第23行:错误#10264:
      RAMLS5存储器范围与现有存储器范围 RAMLS5重叠
    "C:/ti/c2000/C2000Ware_2_00_00_02/device_support/f2837xd/common/cmd/2837xD_RAM_lnk_cpu1.cmd "、第25行:错误#10263:
      已指定 RAMGS0存储器范围
    "C:/ti/c2000/C2000Ware_2_00_00_02/device_support/f2837xd/common/cmd/2837xD_RAM_lnk_cpu1.cmd "、第25行:错误#10264:
      RAMGS0存储器范围与现有存储器范围 RAMGS0重叠
    "C:/ti/c2000/C2000Ware_2_00_00_02/device_support/f2837xd/common/cmd/2837xD_RAM_lnk_cpu1.cmd "、第26行:错误#10263:
      已指定 RAMGS1内存范围
    "C:/ti/c2000/C2000Ware_2_00_00_02/device_support/f2837xd/common/cmd/2837xD_RAM_lnk_cpu1.cmd "、第26行:错误#10264:
      RAMGS1存储器范围与现有存储器范围 RAMGS1重叠
    "C:/ti/c2000/C2000Ware_2_00_00_02/device_support/f2837xd/common/cmd/2837xD_RAM_lnk_cpu1.cmd "、第27行:错误#10263:
      已指定 RAMGS2存储器范围
    "C:/ti/c2000/C2000Ware_2_00_00_02/device_support/f2837xd/common/cmd/2837xD_RAM_lnk_cpu1.cmd "、第27行:错误#10264:
      RAMGS2存储器范围与现有存储器范围 RAMGS2重叠
    "C:/ti/c2000/C2000Ware_2_00_00_02/device_support/f2837xd/common/cmd/2837xD_RAM_lnk_cpu1.cmd "、第28行:错误#10263:
      已指定 RAMGS3内存范围
    "C:/ti/c2000/C2000Ware_2_00_00_02/device_support/f2837xd/common/cmd/2837xD_RAM_lnk_cpu1.cmd "、第28行:错误#10264:
      RAMGS3存储器范围与现有存储器范围 RAMGS3重叠
    "C:/ti/c2000/C2000Ware_2_00_00_02/device_support/f2837xd/common/cmd/2837xD_RAM_lnk_cpu1.cmd "、第29行:错误#10263:
      已指定 RAMGS4存储器范围
    "C:/ti/c2000/C2000Ware_2_00_00_02/device_support/f2837xd/common/cmd/2837xD_RAM_lnk_cpu1.cmd "、第29行:错误#10264:
      RAMGS4存储器范围与现有存储器范围 RAMGS4重叠
    "C:/ti/c2000/C2000Ware_2_00_00_02/device_support/f2837xd/common/cmd/2837xD_RAM_lnk_cpu1.cmd "、第30行:错误#10263:
      已指定 RAMGS5存储器范围
    "C:/ti/c2000/C2000Ware_2_00_00_02/device_support/f2837xd/common/cmd/2837xD_RAM_lnk_cpu1.cmd "、第30行:错误#10264:
      RAMGS5存储器范围与现有存储器范围 RAMGS5重叠
    "C:/ti/c2000/C2000Ware_2_00_00_02/device_support/f2837xd/common/cmd/2837xD_RAM_lnk_cpu1.cmd "、第31行:错误#10263:
      已指定 RAMGS6存储器范围
    "C:/ti/c2000/C2000Ware_2_00_00_02/device_support/f2837xd/common/cmd/2837xD_RAM_lnk_cpu1.cmd "、第31行:错误#10264:
      RAMGS6存储器范围与现有存储器范围 RAMGS6重叠
    "C:/ti/c2000/C2000Ware_2_00_00_02/device_support/f2837xd/common/cmd/2837xD_RAM_lnk_cpu1.cmd "、第32行:错误#10263:
      已指定 RAMGS7存储器范围
    "C:/ti/c2000/C2000Ware_2_00_00_02/device_support/f2837xd/common/cmd/2837xD_RAM_lnk_cpu1.cmd "、第32行:错误#10264:
      RAMGS7存储器范围与现有存储器范围 RAMGS7重叠
    "C:/ti/c2000/C2000Ware_2_00_00_02/device_support/f2837xd/common/cmd/2837xD_RAM_lnk_cpu1.cmd "、第33行:错误#10263:
      已指定 RAMGS8存储器范围
    "C:/ti/c2000/C2000Ware_2_00_00_02/device_support/f2837xd/common/cmd/2837xD_RAM_lnk_cpu1.cmd "、第33行:错误#10264:
      RAMGS8存储器范围与现有存储器范围 RAMGS8重叠
    "C:/ti/c2000/C2000Ware_2_00_00_02/device_support/f2837xd/common/cmd/2837xD_RAM_lnk_cpu1.cmd "、第34行:错误#10263:
      已指定 RAMGS9存储器范围
    "C:/ti/c2000/C2000Ware_2_00_00_02/device_support/f2837xd/common/cmd/2837xD_RAM_lnk_cpu1.cmd "、第34行:错误#10264:
      RAMGS9存储器范围与现有存储器范围 RAMGS9重叠
    "C:/ti/c2000/C2000Ware_2_00_00_02/device_support/f2837xd/common/cmd/2837xD_RAM_lnk_cpu1.cmd "、第35行:错误#10263:
      已指定 RAMGS10存储器范围
    "C:/ti/c2000/C2000Ware_2_00_00_02/device_support/f2837xd/common/cmd/2837xD_RAM_lnk_cpu1.cmd "、第35行:错误#10264:
      RAMGS10存储器范围与现有存储器范围 RAMGS10重叠
    "C:/ti/c2000/C2000Ware_2_00_00_02/device_support/f2837xd/common/cmd/2837xD_RAM_lnk_cpu1.cmd "、第36行:错误#10263:
      已指定 RAMGS11存储器范围
    "C:/ti/c2000/C2000Ware_2_00_00_02/device_support/f2837xd/common/cmd/2837xD_RAM_lnk_cpu1.cmd "、第36行:错误#10264:
      RAMGS11存储器范围与现有存储器范围 RAMGS11重叠
    "C:/ti/c2000/C2000Ware_2_00_00_02/device_support/f2837xd/common/cmd/2837xD_RAM_lnk_cpu1.cmd "、第37行:错误#10263:
      已指定 RAMGS12存储器范围
    "C:/ti/c2000/C2000Ware_2_00_00_02/device_support/f2837xd/common/cmd/2837xD_RAM_lnk_cpu1.cmd "、第37行:错误#10264:
      RAMGS12存储器范围与现有存储器范围 RAMGS12重叠
    "C:/ti/c2000/C2000Ware_2_00_00_02/device_support/f2837xd/common/cmd/2837xD_RAM_lnk_cpu1.cmd "、第38行:错误#10263:
      已指定 RAMGS13存储器范围
    "C:/ti/c2000/C2000Ware_2_00_00_02/device_support/f2837xd/common/cmd/2837xD_RAM_lnk_cpu1.cmd "、第38行:错误#10264:
      RAMGS13存储器范围与现有存储器范围 RAMGS13重叠
    "C:/ti/c2000/C2000Ware_2_00_00_02/device_support/f2837xd/common/cmd/2837xD_RAM_lnk_cpu1.cmd "、第39行:错误#10263:
      已指定 RAMGS14存储器范围
    "C:/ti/c2000/C2000Ware_2_00_00_02/device_support/f2837xd/common/cmd/2837xD_RAM_lnk_cpu1.cmd "、第39行:错误#10264:
      RAMGS14存储器范围与现有存储器范围 RAMGS14重叠
    "C:/ti/c2000/C2000Ware_2_00_00_02/device_support/f2837xd/common/cmd/2837xD_RAM_lnk_cpu1.cmd "、第40行:错误#10263:
      已指定 RAMGS15存储器范围
    "C:/ti/c2000/C2000Ware_2_00_00_02/device_support/f2837xd/common/cmd/2837xD_RAM_lnk_cpu1.cmd "、第40行:错误#10264:
      RAMGS15存储器范围与现有存储器范围 RAMGS15重叠
    "C:/ti/c2000/C2000Ware_2_00_00_02/device_support/f2837xd/common/cmd/2837xD_RAM_lnk_cpu1.cmd "、第42行:错误#10263:
      CPU2TOCPU1RAM 存储器范围已指定
    "C:/ti/c2000/C2000Ware_2_00_00_02/device_support/f2837xd/common/cmd/2837xD_RAM_lnk_cpu1.cmd "、第42行:错误#10264:
      CPU2TOCPU1RAM 存储器范围与现有存储器范围 CPU2TOCPU1RAM 重叠
    "C:/ti/c2000/C2000Ware_2_00_00_02/device_support/f2837xd/common/cmd/2837xD_RAM_lnk_cpu1.cmd "、第43行:错误#10263:
      CPU1TOCPU2RAM 存储器范围已指定
    "C:/ti/c2000/C2000Ware_2_00_00_02/device_support/f2837xd/common/cmd/2837xD_RAM_lnk_cpu1.cmd "、第43行:错误#10264:
      CPU1TOCPU2RAM 存储器范围与现有存储器范围 CPU1TOCPU2RAM 重叠
    错误#10010:链接期间遇到错误;
      未构建"ADC_SoC_Continuous_dma_cpu01.out"

    和2837x_RAM_Ink CPU1.cmd:


    存储器

    第0页:
      /* begin 用于"引导至 SARAM"引导加载程序模式  */
      开始           :origin = 0x000000,length = 0x000002
      RAMM0           :origin = 0x000122、length = 0x0002DE
      RAMD0           :origin = 0x00B000、length = 0x000800
      RAMLS0          :origin = 0x008000、length = 0x000800
      RAMLS1          :origin = 0x008800,length = 0x000800
      RAMLS2       :origin = 0x009000,length = 0x000800
      RAMLS3       :origin = 0x009800,length = 0x000800
      RAMLS4       :origin = 0x00A000,length = 0x000800
      复位           :origin = 0x3FFFC0,length = 0x000002
    第1页:
      BOOT_RSVD      :origin = 0x000002,length = 0x000120    // M0的一部分,引导 ROM 将此用于栈*/
      RAMM1          :origin = 0x000400、length = 0x000400    //片上 RAM 块 M1 *
      RAMD1          :origin = 0x00B800,length = 0x000800

      RAMLS5     :origin = 0x00A800,length = 0x000800
      RAMGS0     :origin = 0x00C000、length = 0x001000
      RAMGS1     :origin = 0x00D000、length = 0x001000
      RAMGS2     :origin = 0x00E000、length = 0x001000
      RAMGS3     :origin = 0x00F000、length = 0x001000
      RAMGS4     :origin = 0x010000,length = 0x001000
      RAMGS5     :origin = 0x011000,length = 0x001000
      RAMGS6     :origin = 0x012000,length = 0x001000
      RAMGS7     :origin = 0x013000,length = 0x001000
      RAMGS8     :origin = 0x014000,length = 0x001000
      RAMGS9     :origin = 0x015000,length = 0x001000
      RAMGS10    :origin = 0x016000,length = 0x001000
      RAMGS11    :origin = 0x017000,length = 0x001000
      RAMGS12    :origin = 0x018000,length = 0x001000
      RAMGS13    :origin = 0x019000,length = 0x001000
      RAMGS14    :origin = 0x01A000,length = 0x001000
      RAMGS15    :origin = 0x01B000,length = 0x001000
      
      CPU2TOCPU1RAM  :origin = 0x03F800,length = 0x000400
      CPU1TOCPU2RAM  :origin = 0x03FC00,length = 0x000400

    部分

      codestart       :> begin,    page = 0
      
    #ifdef __TI_Compiler_version__
      #if __TI_Compiler_version__>=15009000
       .TI.ramfunc:{}> RAMM0,     PAGE = 0
      其他
      ramfuncs        :>RAMM0     page = 0   
      #endif
    #endif   
      
      .text           :>>RAMM0 | RAMD0 | RAMLS0 | RAMLS1 | RAMLS2 | RAMLS3 | RAMLS4,  page = 0
      .cinit          :> RAMM0,    page = 0
      .pinit          :> RAMM0,    page = 0
      switch         :>RAMM0,    page = 0
      .reset          :> reset,    page = 0,type = DSECT //未使用,*/
      .stack          :>RAMM1,    PAGE = 1.
      .ebss           :> RAMLS5,   PAGE = 1.
      econst         :> RAMLS5,   page = 1.
      .esysmem        :> RAMLS5,   page = 1.
      filter_RegsFile :> RAMGS0,   PAGE = 1
      RAMS0          :>RAMGS0,   PAGE = 1
      ramgs1          :>RAMGS1,   page = 1.
      
      /*使用 IPC API 驱动程序时需要以下部分定义*/
       组:> CPU1TOCPU2RAM,PAGE = 1
       {
           PUTBUFFER
           PUTWRITEIDX
           GETREADIDX
       }
       
       组:> CPU2TOCPU1RAM,PAGE = 1
       {
           GETBUFFER:   TYPE = DSECT
           GETWRITEIDX: TYPE = DSECT
           PUTREADIDX:  TYPE = DSECT
       }  
     
    /*
    //============================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================
    //文件结束。
    //============================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================
    *
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    在您的项目中、链接了两个链接器命令文件、因此出现了此问题。 请检查工程属性并删除附加链接器 cmd 文件。

    Vivek Singh

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

    感谢您的回复

    我无法通过 ram 上传的问题已经解决、就像您说的那样。

    但是、当我将 results_buffer_size 从1024更改为4096时

    该错误仍然出现:


    "E:/C2000Ware_2_00_00_02/device_support/f2837xd/common/cmd/22837xD_flash_lnk_cpu1.cmd"、第97行:错误#10099-D:
      程序将不能放入可用的内存中。  使用运行放置
      "ramgs0"段大小为0x2000页1的对齐/分块失败。  可用
      存储器范围:
      RAMGS0      大小:0x1000      未使用:0x1000      最大孔:0x1000    
    错误#10010:链接期间遇到错误;
      未构建"ADC_SoC_Continuous_dma_cpu01.out"

    我上传了该示例。

    感谢 again.e2e.ti.com/.../adc_5F00_soc_5F00_continuous_5F00_dma.zip

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

    最后、我解决了这个问题。

    在源代码中、有两条准备好的语句:#pragma DATA_SECTION (adcData0、"ramgs0");
    #pragma DATA_SECTION (adcData1、"ramgs0");

    这意味着段 ramgs0 (长度4096*16位)被两次用来存储一个4096*bit 数组。

    此问题与忽略源代码中准备好的语句有关

    感谢所有提供建议的人!