工具/软件: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 }/* //=================================================== //文件结束。 //=========================================================================================================================================== */