工具/软件:Code Composer Studio
我遇到了无法将堆大小扩展到0x800之后的问题。 它的默认值为0x400,我可以使用“属性”->“链接器”->“常规”设置将其设置为0x600。 有可用的164 KB RAM,我不确定需要在.lnk文件中更改什么才能访问更多RAM。
这是我在尝试使用堆大小0x800和堆栈大小0x200时收到的错误
****生成配置调试项目Example_2.8377万SLaunchPad **** “D:\ti\\ccsv7\\utils\\bin\\gmake”-k -j 16 all -O 'Building target:example_2.8377万SLaunchPad.out ' 正在调用:C2000 Linker'...... >>编译失败 makefile:180:目标'Example_2.8377万SLaunchPad.out的配方失败 :“D:/ti/device_support/F2837xS/v180/F2837xS_common/Cmd/2837xS_Generic_flash_lnk.cmd”2837”第2837第80行:错误: 程序将不适合可用内存。对 齐CIO.0x120/1部分无法进行定位。 可用 内存范围: RAMLS5 大小:0x800 未使用:0x0 最大孔数:0x0 CIO :> RAMLS5 Page =1 错误:链接时出错;"Example_2.8377万SLaunchPad.ut"未 构建 gmake[1]:***[example_2.8377万SLaunchPad.ut]错误1 gmake:***[All]错误2 makefile:176:目标'All'的配方失败 ****构建完成****
这是链接文件,但我不太熟悉,也不确定需要更改的内容。
内存
{
第0页:/*程序内存*/
/*内存(RAM/flash)块可移动到Page1以进行数据分配*/
/* begin用于“引导至闪存”引导加载程序模式*/
begin :原点= 0x8万,长度= 0x0.0002万
RAMM0 :原点= 0x0.0122万,长度= 0x0002DE
RAMD0 :Origin = 0x00B000,length = 0x0.08万
RAMLS0 :原点= 0x0.8万,长度= 0x0.08万
RAMLS1 :原点= 0x0.88万,长度= 0x0.08万
RAMLS2 :原点= 0x0.9万,长度= 0x0.08万
RAMLS3 :原点= 0x0.98万,长度= 0x0.08万
RAMLS4 :原点= 0x00A000,长度= 0x0.08万
重置 :原点= 0x3FFFC0,长度= 0x0.0002万
/*闪存扇区*/
FLASHA :原点= 0x8.0002万,长度= 0x001FFE /*片上闪存*/
FLASHB :原始= 0x8.2万,长度= 0x0.2万 /*片上闪存*/
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万 /*片上闪存*/
第1页:/*数据存储器*/
/*内存(RAM/flash)块可以移动到PAGE0以进行程序分配*/
BOOT_RSVD :原点= 0x0.0002万,长度= 0x0.012万 /* M0的一部分,引导ROM将使用此堆栈*/
RAMM1 :原点= 0x0.04万,长度= 0x0.04万 /*片上RAM块M1 */
RAMD1 :原点= 0x00B800,长度= 0x0.08万
RAMLS5 :原点= 0x00A800,长度= 0x0.08万
RAMGS0 :原点= 0x00C000,长度= 0x0.1万
RAMGS1 :原点= 0x00D000,长度= 0x0.1万
RAMGS2 :原点= 0x00E000,长度= 0x0.1万
RAMGS3 :原点= 0x00F000,长度= 0x0.1万
RAMGS4 :原点= 0x1万,长度= 0x0.1万
RAMGS5 :原点= 0x1.1万,长度= 0x0.1万
RAMGS6 :原点= 0x1.2万,长度= 0x0.1万
RAMGS7 :原点= 0x1.3万,长度= 0x0.1万
RAMGS8 :原点= 0x1.4万,长度= 0x0.1万
RAMGS9 :原点= 0x1.5万,长度= 0x0.1万
RAMGS10 :原点= 0x1.6万,长度= 0x0.1万
RAMGS11 : Origin = 0x1.7万,length = 0x0.1万
}
节
{/*
分配程序区域:*/
.cinit :> FLASHB 页面= 0,对齐(4)
。\n定位 :> FLASHB, 页面= 0,对齐(4)
.text :>> FLASHB | FLASHC | FLASHD | FLASHE 页面= 0,对齐(4)
代码开始 :>开始 页面= 0,对齐(4)
ramfuncts :负载= FLASHD,
RUN = RAMLS0 | RAMLS1 | RAMLS2 |RAMLS3,
load_start(_RamfuncsLoadStart),
load_size (_RamfuncsLoadSize),
load_end (_RamfuncsLoadEnd),
run_start(_RamfuncsRunStart),
Run_Size (_RamfuncsRunSize),
Run_End(_RamfuncsRunEnd),
页面= 0,对齐(4)
/*分配未初始化的数据段:*/
.stack :> RAMM1. 页面= 1
.ebss :>> RAMLS5 | RAMGS0 | RAMGS1 页面= 1
个.esysmem :> RAMLS5 页面= 1
。CIO :> RAMLS5 页面= 1
/*初始化部分进入Flash */
.econst :>> FLASHF | FLASHG | FLASHH 页面= 0,对齐(4)
.switch :> FLASHB 页面= 0,对齐(4)
重置 :>重置, Page =0,type = DSECT /*未使用,*/
#ifdef __TI_Compiler_version
#if __TI_Compiler_version >= 1500.9万
.TI.ramfunc:{} load = FLASHD,
RUN = RAMLS0 | RAMLS1 | RAMLS2 |RAMLS3,
load_start(_RamfuncsLoadStart),
load_size (_RamfuncsLoadSize),
load_end (_RamfuncsLoadEnd),
run_start(_RamfuncsRunStart),
Run_Size (_RamfuncsRunSize),
Run_End(_RamfuncsRunEnd),
Page =0,align(4)
#endif
#endif
ramgs0 :> RAMGS0,页面= 1
ramgs1. :> RAMGS1,第= 1页
/*以下部分定义适用于SDFM示例*/
Filter1_RegsFile :> RAMGS1, page =1, Fill=0x1111
Filter2_RegsFile :> RAMGS2, page =1,Fill=0x2222
Filter3_RegsFile :> RAMGS3, page =1,Fill=0x3333
Filter4_RegsFile :> RAMGS4, RegsFile =0x44:
>RAMGS5, 页面=1,填充=0x3333
}/*
//===================================================
//文件结束。
//===========================================================================================================================================
*/