RAM 不够用

1649160226583037.png

1649160226744936.png

编译完成的程序ram 比设置的大,这样会不会出问题? 0x2000=8192

ram实际使用超出了设置的空间是不行的,579都是有16k睡眠保持的,像你使用多大的空间就分配大一点啊。


这个是只能到0x2000吧?16k睡眠保持是什么意思?


使用睡眠的话就使用后面的睡眠保持的16k,当你用的比较少的时候才只用最后2k,像你这种情况,直接用16k,

emobile_2022-04-06_19-16-26.png

如果不做睡眠,那么就32k都可以使用


但是我要做OTA 升级,这种情况不是只能从0x20006000开始分配吗?


将OTA的开始地址往前分配一点,不从0x20006000开始分配,具体可以参考我们OTA升级的手册。



我参考onlyupdateApp_Peripheral 把蓝牙使用的空间分配到0x20003800的8k空间,ram设置还是从0x20006000开始的8k,应该也是可以的吧


1649338650169492.png

1649338651992103.png



编译完成的程序大于8K也是可以继续用的,因为这个编译时将协议栈也算上去了,所以实际上使用可以远远小于你现在编译出现的大小。你可以将BLE_MEMHEAP_SIZE      (1024*8) 改为BLE_MEMHEAP_SIZE      (1024*4) ,然后查看编译的大小,这样应该更容易理解。如果你的用户程序过大,那你可以尝试从0x20004800开始。

针对你上图贴出的需求,你是可以直接使用的。


只有登录才能回复,可以选择微信账号登录