查看RAM和Flash

2025-10-10 07:25:12

0 Preface/Foreword

1 查看方法

1.1 map文件中查看

1.1.1 RAM可用情况

在map文件中,搜索字符串:free_ramcp

该字段表示剩余可用的RAM大小,前面对应的是hexadecimal的数值(单位Byte),就是剩余可用的RAM。

注意:

这里是静态的RAM可用,因为编译完成的,计算的都是静态数据。系统运行后,比如音乐播放/通话过程中,会动态分配大块的内存,比如BES2600IUC系列,会有90K的开销。所以在评估添加第三方算法时候,比如降噪算法,RAM是否足够,那么需要在map文件中的可用的RAM减去90K,最后得出的数据就是真实的可以被第三方使用的RAM。 1.1.2 Flash可用情况

在map文件中,搜索字符串:free_flash

该字段表示剩余可用的flash大小,前面对应的是hexadecimal的数值(单位Byte),就是剩余可用的flash。

NOTE:

该数值就是真实的还可以用的flash;如果要评估flash的使用,要注意是否支持OTA(Over The Air),支持的话,那么可用flash大小就不是该数值,因为OTA的话,需要留空总flash的一半的空间用于OTA时候备份。比如4M的flash,如果当前bin大小为1.5M,那么剩余的flash为4-1.5 = 2.5M(不适用OTA功能),但是,如果要使用OTA功能,那么可用的实际flash = 4/2 - 1.5 = 0.5M。

1.2 编译结束后日志中查看

该方法估计需要在BES2600之后的SDK中,编译成功后才会显示该信息。不过没有也没关系,可以通过修改脚本把改信息打印出来。

1.3 nominal RAM与可用的RAM存在差异

以BES2600IUC为例,标称的RAM大小为512K,但是用户可用的RAM大小为384K。

原因是:512K和384K,之间的差异,在于系统跑Bluetooth协议需要使用的RAM。

当然,正常的SDK编译完成之后,因为还附带了其他的功能,比如加了嵌入式RTOS等,编译之后,实际可用的RAM比384KB还要少很多,以BES2600IUC为例,SDK编译之后,剩余的可用RAM为200KB RAM。当然,这个200KB RAM,是静态可以的RAM,考虑到运行过程中,音乐播放/通话的动态消耗(90KB),实际可供用户使用的只有120K Byte左右。

[家电]美的早期与蝙蝠晚期两款风扇拆解对比
音乐播放软件哪个好 十款常用音乐播放软件精选