工具/软件:TI C/C++编译器
您好,
我正在处理一个基于SimpleBLEPeripheral的项目,当增加我的一个任务的堆栈大小时,我遇到了这个错误。
cc26xx_ble_app_oad.cmd",第119行:错误#1.0099万-D:程序将不适合可用内存。 对".stack"区域大小0x258执行定位失败。 可用内存范围:
SRAM 大小:0x44bf 未使用:0x553 最大孔:0x23b
我发现这个错误的奇怪之处是,0x258 (600)字节的分配失败,有1363 (0x553)字节可用,最大的孔只有0x23b (571)字节长。 为什么会发生这种情况? 是否有任何方法可以使链接程序重新排列RAM,以便创建更大的孔,并且我可以使用剩余的RAM?
这是我的链接程序脚本:
#ifndef app_base
#define app_base 0x0万
#endif //app_base
#define flash_size 0x2万
#define page_size 0x1000
#define RAM_BASE 0x2000万
#define RAM_SIZE 0x5000
/*系统内存映射*/
内存
{
/*存储在中的应用程序,从0x0 */开始的内部闪存执行
/*闪存大小128 KB */
#ifdef ICALL_STACK0_ADDR
Flash (RX):Origin = app_base,length = ICALL_STACK0_ADDR - app_base -1
#else //默认
Flash (RX):origin = app_base,length = 0x0000CFFF
#endif
/*应用程序使用内部RAM存储数据*/
/* RAM大小16 KB */
#ifdef ICALL_ram0_ADDR
SRAM (rwx):origin = RAM_BASE,length = ICALL_RAM0_ADDR - RAM_BASE -1
#else //默认
SRAM (rwx):origin = RAM_BASE,length = 0x0.0002万CFF
#endif
}/*
内存中的节分配*/
节
{
intvecs :> app_base
文本 :>闪烁
。const :>闪烁
.constdata :>闪烁
.rodata :>闪烁
cinit :>闪烁
。销钉 :>闪烁
init_array :>闪烁
.EMB文本 :>闪烁
.vtable :> SRAM
.vtable_ram :> SRAM
vtable_ram :> SRAM
数据 :> SRAM
BSS :> SRAM
sysmem :> SRAM
堆栈 :> SRAM (高)
nonretenvar :> SRAM
}/*
创建指向堆栈顶部的全局常量*/*
CCS:在项目属性*/
__stack_top =__stack +__stack_size下更改堆栈大小;
谢谢!