WCH沁恒单片机
直播中

刘高

10年用户 931经验值
擅长:嵌入式技术
私信 关注
[问答]

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,我分析了下程序
  • 分配给动态内存的堆占用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};  )
  • 以上两项占用比较大的占用了6324B,零碎的变量先忽略,那工作怎么占用了14452 B这么多内存?
  • 碰到的问题是留给自己用的内存太少不够用,除了减少BLE_MEMHEAP_SIZE的分配外,还有没有什么方法可以优化???
  

回帖(1)

徐非姗

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

更多回帖

发帖
×
20
完善资料,
赚取积分