开了几个比较大的数组内存(20K,10K,10K,10K还有几个小的,总计估计有130K左右)。
然后我后面检测内存,发现只要占用小于80KB左右的时候就重启了,不是WDT重启就是直接报内存问题重启。
我自己猜测是因为内存碎片太多,在申请内存发现申请不到符合要求的连续内存,所以重启了。但是也不会在剩余80K就重启吧?为什么会这样啊??
另,有没有什么API可以自己把申请的内存放在指定的位置,这样我直接初始化的时候把内存排好直接申请,这样可以把连续的内存都留出来。
离线
代码太长了不方便复制,内存必须保留系统才能正常吗?
离线
定义全局数组不就是把连续内存保留出来吗,这时留给动态管理的内存就相应减少了。
是的,但是后面我有一些其他的服务,比如webserver,在内存剩余70k的时候webserver就不正常了,更准确的说就是会导致系统重启
离线