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/LUNCHXL-F2.8379万D:错误:程序无法插入可用内存。

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

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/630078/ccs-launchxl-f28379d-error-program-will-not-fit-into-available-memory

部件号:LAUNCHXL-F2.8379万D
主题中讨论的其他部件:C2000WARE

工具/软件:Code Composer Studio

您好,

我打算在“2837x_rfft_ADC_RT”示例中将“freq”变量传输到SCI端口,但编译时出现错误:

****为项目2837x_RFFT_ADC_RT构建配置RAM ****

"C:\\ti\\ccsv6\\utils\\bin\\gme"-k all
'building target:2837x_RFFT_ADC_RT.out'
调用:c2000_Linker'
"C:/ti/Ccsv6/tools/bin/ctrad_I 6.4 :6.4 6.4 fg/trad_crf_f_-00/cv00_fu_rk_crf_lip_f-f_ck/f_-rk_ck/f-f_-rk_ck/cr-f_-f-f_-fx_ck/fx_fx_-rk/cr-fx_-fx_-fx_-fx-f_-fx_-fx_-fccfx_-fx_-fx_-fccfx_-fx_-fccf_-fx_-fccf_-fx_-fx_-fdcp_-fx_-fcc_-fx_-d ROM_MODEL -o "2837x_RFFT_ADC_RT.out""./F2837xD_ADC.OBJ""./F2837xD_CodeStartBranch.DSP"./F2837xD_DefaultISX.""./F2837xD_DEF_EX.00"./FP_DEF2837_OBJ_OBJ_FM_EC_EX.00".F2837_POM_"/FC"./"2837/FC"./"./337"./FC"./337"./337_OBJ_OBJ_ST_DE_"."./337_OBJ_"./FC"./337"./337"./"2837./337"./FC"./337"./337_OBJ_OBJ_ST_DE_"."./337_OBJ_"./FC"./337"./337"./"./337_OBJ_"./337_OBJ_"."."."./"./337_OBJEC_"."."./337_"."."./337_"._OBJEC_"."./OBJEC_"."."./337_OBJEC_".




程序将不适合可用内存。
对".text"区域大小0x25de页面0进行对齐/阻止的放置失败。 可用
内存范围:
RAMM1 大小:0x400 未使用:0x1 最大孔:0x1
RAMD0 大小:0x800 未使用:0x0 最大孔:0x0
RAMD1 大小:0x800 未使用:0x3 最大孔:0x3

>>编译失败
RAMLS0 大小:0x800 未使用:0x21e 最大孔:0x21e
"C:/ti/C2000Ware_1_00_00/libraries/DSP/FPU/c28/cmd/F2837xD_FPU_RFFT_ADC_RT_Lnk.cmd",2837,第170行:错误:
程序将不适合可用内存。对
".stack"尺寸0x300部分执行校准/阻止操作失败,第1页。 可用
内存范围:
RAMLS4_5 大小:0x1000 未使用:0x290 最大孔数:0x290
警告:指定的入口点符号不是“_c_int00”:“code_start”
错误:链接时遇到错误;“2837x_RFFT_ADC_RT.OUT”未构建
gmake:***[2837x_RFFT_ADC_RT.OUT错误1
gmake:目标`ALL’由于错误而未重制。

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

main.c代码:

... 
Freq = RFFTmagBuff[1]; 用于(i=2;i<RFFT_size=2+1;i++){ //查找频谱的最大分量 IF (RFFTmagBuff[i]> freq){ J = I; Freq = RFFTmagBuff[i]; } } //将标准化数字频率转换为实际模拟频率 //f = m * FS/N //其中m是具有最大值的容器,FS是采样 // frequency和N FFT中的点数 Freq = F_Per_sample *(FLOW)j; sprintf (msg,"%f\n",freq);//<----------- scia_msg(msg);//<!-----------------

cmd文件:

--define RFFT_alignment=1024
#if !defined(RFFT_alignment)
#error define RFFT_alignment under C2000 Linker -> Advanced Options -> Command File Preprocessing ->--define
#endif

memory
{
page 0:/*
begin用于"boot to SARAM" bootloader mode */
#if defined(RAM)
begin :Origin = 0x0万,length = 0x0.0002万
#Elif defined (flash)
begin :原点= 0x8万,长度= 0x0.0002万
#endif
RAMM0 :原点= 0x0.0122万,长度= 0x0002DE
RAMM1 :原点= 0x0.04万,长度= 0x0.04万

RAMD0		:原点= 0x00B000,长度= 0x0.08万
RAMD1		:原点= 0x00B800,长度= 0x0.08万

RAMLS0 :原点= 0x0.8万,长度= 0x0.08万
RAMLS1 :原点= 0x0.88万,长度= 0x0.08万
RAMLS2 :原点= 0x0.9万,长度= 0x0.08万

RAMGS0		:原点= 0x00C000,长度= 0x0.1万
RAMGS1		:原点= 0x00D000,长度= 0x0.1万
RAMGS2		:原点= 0x00E000,长度= 0x0.1万
RAMGS3		:原点= 0x00F000,长度= 0x0.1万

重置 :原点= 0x3FFFC0,长度= 0x0.0002万

FLASHA :原点= 0x8.0002万,长度= 0x001FFE	/*片上闪存*/
FLASHC :原点= 0x8.4万,长度= 0x0.2万	/*片上闪存*/
FLASHD :原点= 0x8.6万,长度= 0x0.2万	/*片上闪存*/
FLASHE :原点= 0x8.8万,长度= 0x0.8万	/*片上闪存*/
FLASHF :原始= 0x9万,长度= 0x0.8万	/*片上闪存*/
FLASHG :原始= 0x9.8万,长度= 0x0.8万	/*片上闪存*/
FLASHH :原始= 0x0A0000,长度= 0x0.8万	/*片上闪存*/
FLASHI :原点= 0x0A8000,长度= 0x0.8万	/*片上闪存*/
FLASHJ :原始= 0x0B0000,长度= 0x0.8万	/*片上闪存*/
FLASHK :原点= 0x0B8000,长度= 0x0.2万	/*片上闪存*/
FLASHL :原点= 0x0BA000,长度= 0x0.2万	/*片上闪存*/
FLASHM :原点= 0x0BC000,长度= 0x0.2万	/*片上闪存*/
FLASHN :Origin = 0x0BE000,length = 0x0.2万	/*片上闪存*/


page 1:
boot_rsvd :原点= 0x0.0002万,长度= 0x0.012万 /* M0的一部分,引导ROM将使用此堆栈*/

RAMLS3 :原点= 0x0.98万,长度= 0x0.08万
//RAMLS4 :原点= 0x00A000,长度= 0x0.08万
//RAMLS5 :原点= 0x00A800,长度= 0x0.08万
RAMLS4_5 :原点= 0x00A000,长度= 0x0.1万//<------------------ 新


RAMGS45		:原点= 0x1万,长度= 0x0.2万
RAMGS67		:原点= 0x1.2万,长度= 0x0.2万
RAMGS89		:原点= 0x1.4万,长度= 0x0.2万
RAMGS1011	:原点= 0x1.6万,长度= 0x002000

RAMGS12		:原点= 0x018000,长度= 0x00GS1000 RAMGS1000
		:长度:0x0.1万
		:0 原点= 0x01A000,长度= 0x0.1万
RAMGS15		:原点= 0x01B000,长度= 0x0.1万

FLASHB :Origin = 0x8.2万,length = 0x0.2万	/*片上闪存*/

}

节
{
codegot :>开始, 页= 0
#if defined (RAM)
ramfuncs. :> RAMM0, 页面= 0
.text :>> RAMM1 | RAMD0 | RAMD1 | RAMLS0,页面= 0
.cit :> RAMLS1,第= 0页

。销钉 :> RAMLS1,页= 0
.switch :> RAMLS1,页面= 0
//.econst :> RAMLS4,页面= 1
。econst :> RAMLS4_5,页=1//<------------------ 新

的#Elif定义(flash)
ramfuncs. :负载= FLASHC,
RUN = RAMLS1,
run_start(_RamfuncsRunStart),
load_start(_RamfuncsLoadStart),
load_size (_RamfuncsLoadSize),
页面= 0

.text :> FLASHN,page = 0
.cinit :> FLASHM,页面= 0

。Pinit :> FLASHM,PAGE = 0
.SWITCH :> FLASHM,页面= 0
。econst :> FLASHB,第=1页
#其它
#错误将"RAM"或"FLASH"添加到C2000连接器->高级选项->命令文件预处理->-定义
#endif //RAM/*

测试特定部分*/
RFFTdata1 :> RAMGS45,页面=1,对齐= RFFT_alignment
RFFTdata2 :> RAMGS67,第= 1页
RFFTdata3. :> RAMGS89,第= 1页
RFFTdata4. :> RAMGS1011,第= 1页

FPUmathTables:> RAMGS12,page = 1

重置 :>重置, Page =0,type = DSECT /* not used,*/

.cio :> RAMLS3,页面= 1
.sysmem :> RAMLS3,页面= 1



//.stack :> RAMLS4,页面= 1
//.ebss :> RAMLS5,页面= 1
//.esysmem :> RAMLS4,page = 1

.stack :> RAMLS4_5,页=1//<------------------ 新
.ebss :> RAMLS4_5,页=1//<------------------ 新
的.esysmem :> RAMLS4_5,页=1//<------------------ 新

} 

感谢你的帮助。

此致,

Amin

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

    当我从C2000Ware导入这个“2837x_rfft_ADC_RT”项目并在没有任何更改的情况下生成该项目时,我没有收到任何生成错误。

    一旦开始添加代码,可能需要通过在链接程序命令文件中分配更多内存区域来使.text部分变大。

    以下是一个很好的链接资源: processors.wiki.ti.com/.../C28x_Compiler_-_Understanding_Linking

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

    感谢你的帮助。 的确,该计划最初没有问题。
    我扩展了这个项目并编辑了.cmd文件,问题得到了解决。
    但我无法使用此新编辑来修复此错误。 根据第一篇文章中发布的代码,我应该编辑哪个部分?

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

    文本和.stack部分似乎需要从错误中进行修改。 因此,请确保分配的内存区域足够大,并且不会用于其他部分。

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

    基于最新版本的CCS,我的问题得到了解决!
    感谢你的帮助。

    此致,
    Amin