TI中文支持网
TI专业的中文技术问题搜集分享网站

CC3235的内存分配问题

您好!

最近在使用CC3235芯片,基于OOB工程开发,需要在OOB里面新建两个线程,分配的空间大小分别为4096字节和2048字节。可是运行线程后,provisioningTask线程会卡死在sl_start(),请问这是怎么回事呢?是由于动态分配的内存超量了嘛?

Kevin Qiu1:

你在map文件中看下flash等使用情况,看下有没有超出

Kevin Qiu1:

回复 Kevin Qiu1:

应该没有超出,超出一般会报错

user4696099:

回复 Kevin Qiu1:

刚刚看了map文件,有段说明是这样的MEMORY CONFIGURATIONnameoriginlengthusedunusedattrfill
-------------------------------------------------------------------SRAM2200000000000400000003f0c000000f4RW XSRAM200040000003c0000002fd550000c2abRW X

Kevin Qiu1:

回复 user4696099:

这部分是SRAM的,都有剩余,你分配的空间是分配到哪里了?
另外flash的使用情况呢

user4696099:

回复 Kevin Qiu1:

空间分配给了线程堆栈

另外,flash的分配是看这个嘛?

SEGMENT ALLOCATION MAPrun originload originlengthinit length attrs members
--------------------- ---------- ----------- ----- -------
200004002000040000003c0000000000rw-200004002000040000003c0000000000rw- .stack
20004000200040000001f20a0001f20ar-x20004000200040000000004000000040r-- .resetVecs20004040200040400001f1ca0001f1car-x .text
20023400200234000000f3e000000000rw-20023400200234000000db3d00000000rw- .bss20030f4020030f40000018a000000000rw- .data
200327e0200327e00000168800001688r--200327e0200327e00000136600001366r-- .const20033b4820033b480000032000000320r-- .cinit

user4696099:

回复 Kevin Qiu1:

OOB工程里面原本有的provisioningTask分配了2048;linklocalTask3072;controlTask2048;otaTask2048;然后我在这个工程里面加了两个线程,分配的空间分别是20484096

Kevin Qiu1:

回复 user4696099:

不是这个,OBB例程中原始的map文件应该是这样的:

应该是你程序的问题

user4696099:

回复 Kevin Qiu1:

刚刚打开了一个例程,编译过后生成的.map文件是这样的

user4696099:

回复 Kevin Qiu1:

没有flash_hdr和flash的说明

user4696099:

回复 Kevin Qiu1:

我们用的是CC3235S不是CC3235SF

赞(0)
未经允许不得转载:TI中文支持网 » CC3235的内存分配问题
分享到: 更多 (0)