你好,CH573 MESH例程留給用戶(hù)使用的內(nèi)存非常小,可以?xún)?yōu)化沒(méi)?
編譯self_provisioner_vendor工程后,編譯結(jié)果如下:
Memory region? ? ? ? ?Used Size? Region Size? %age Used
? ? ? ? ? ?FLASH:? ? ? 138220 B? ? ? ?448 KB? ? ?30.13%
? ? ? ? ? ? ?RAM:? ? ? ?14452 B? ? ? ? 18 KB? ? ?78.41%
? ?text? ?data? ? bss? ? dec? ? hexfilename
?137176? ?1044? ?8524 146744? 23d38self_provisioner_vendor.elf
========================================
RAM內(nèi)存使用了14452 B,我分析了下程序
分配給動(dòng)態(tài)內(nèi)存的堆占用4096B(即: __attribute__((aligned(4))) u32 MEM_BUF[BLE_MEMHEAP_SIZE/4]; ),BLE_MEMHEAP_SIZE值為4096
MESH_MEM占用2228B(即: static u8_t MESH_MEM[1024*2+30*CONFIG_MESH_PROV_NODE_COUNT_DEF]={0};??)
以上兩項(xiàng)占用比較大的占用了6324B,零碎的變量先忽略,那工作怎么占用了14452 B這么多內(nèi)存?
碰到的問(wèn)題是留給自己用的內(nèi)存太少不夠用,除了減少BLE_MEMHEAP_SIZE的分配外,還有沒(méi)有什么方法可以?xún)?yōu)化???