我需要一个160kb的空间来储存变量,当我把数组定义这么大时,编译出错
"../cc3200v1p32.cmd", line 78: error #10099-D: program will not fit into available memory. run placement with alignment fails for section ".bss" size 0x19514 . Available memory ranges:
SRAM_DATA size: 0x19000 unused: 0x186ac max hole: 0x186ac
我点击这个提示,找到了SRAM_DATA的地址,储存数据总共只有100KB
MEMORY
{
/* Application uses internal RAM for program and data */
SRAM_CODE (RWX) : origin = 0x20004000, length = 0x13000
SRAM_DATA (RWX) : origin = 0x20017000, length = 0x19000
}
http://www.deyisupport.com/question_answer/wireless_connectivity/wifi/f/105/t/69319.aspx
这个帖子里面吧SRAM_CODE的地址变大了,我想应该也可以把DATA的地址变大吧,我直接把length变大,编译什么提示都没有,不提示错误,什么也不提示,应该怎么修改呢
da qin zheng sheng:
代码和数组变量不能超过240K字节的!
Terry Han:
Production version of CC3200 will have 256Kbyte of RAM.16KB is shared with bootloader.
CC3200 does not have the user application flash memory so that we need to use internal RAM for code memory and share the 256KB RAM
SRAM size of 240KB for CC3200 ES 1.33 device
On CC3200 the code is always loaded from the serial flash into SRAM by bootloader and then executed in SRAM
Your program ( code + stack size + dynamic memory needed ) should be within 240 KB (lower 16 KB is used by CC3200 boot-loader)
If you want to use the the lower 16 KB also, please refer to section "6.1.2 Boot Loader / User Application – Sharing MCU RAM " in CC3200-Programmers_Guide.pdf and 'camera_application' from the SDK
The code can't be run from sFlash directly, CC3200 boot-loader loads the application in full from sFlash to SRAM before executing.