如何查看Silicon labs芯片(Z-Wave/Zigbee/Bluetooth)RAM和Flash的使用情况?
物联网产品开发评估工作,一个重要的任务就是选择合适的芯片,在满足产品要求的前提下,Falsh和RAM空间较少的芯片价格也更便宜。但是芯片程序在链接的时候有一些特别的处理(有些全局变量会放到Flash),所以导致编译器的统计数据不准确。
Silicon labs的芯片有三种方法可以查看Flash和RAM的使用情况。
- 使用gun_arm tool:
cd C:\SiliconLabs\SimplicityStudio\v5\developer\toolchains\gnu_arm\7.2_2017q4\bin
arm-none-eabi-readelf.exe -s Z3LightSoc.axf
地址位于0x20000000以上的存放在RAM中,其它的位于Flash中
- Z-Wave编译时运行了arm-none-eabi-size -A <project.axf>
FLASH = .text + .data
RAM = .bss + .data+.heap+.stack - Simplicity commander提供的图形化界面Device Info->Flash Map,查看Flash使用情况,Silicon labs的芯片Flash分三部分,Application Flash空间是我们的应用软件,NVM3是数据存储区,OTA Flash空间是存放OTA程序的地方(如果你使用的是外部Serial flash则不需要OTA flash区)。