CH573 MESH例程留给用户使用的内存非常小,可以优化没?

你好,CH573 MESH例程留给用户使用的内存非常小,可以优化没?


编译self_provisioner_vendor工程后,编译结果如下:

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内存使用了14452 B,我分析了下程序

  1. 分配给动态内存的堆占用4096B(即: __attribute__((aligned(4))) u32 MEM_BUF[BLE_MEMHEAP_SIZE/4]; ),BLE_MEMHEAP_SIZE值为4096

  2. MESH_MEM占用2228B(即: static u8_t MESH_MEM[1024*2+30*CONFIG_MESH_PROV_NODE_COUNT_DEF]={0};  )

  3. 以上两项占用比较大的占用了6324B,零碎的变量先忽略,那工作怎么占用了14452 B这么多内存?

  4. 碰到的问题是留给自己用的内存太少不够用,除了减少BLE_MEMHEAP_SIZE的分配外,还有没有什么方法可以优化???

mesh除了ble协议栈,还有mesh的协议栈,都要消耗ram,还有一些中断和快速执行的代码,也占用了ram,如果573目前剩的ram不够你用,可以看看58x系列,有32k的ram,也支持mesh


CH58X系列在某宝上买不到,有什么购买渠道呢?还有价格多少?可以发到我的油箱:个人信息保护,已隐藏,谢谢


image.png
咨询任意一个销售都可以,我们公司可以直接安排,也可以免费送样和测试评估板。


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