您的Keil是哪一种?我只有Keil5和4,谢谢。
前言:评估工程的ROM和RAM占用是选型MCU的重要因素。本文将介绍在选型MCU时如何评估最终的项目工程大致占用的ROM和RAM大小。
正文:
1、在Keil编译时,工程编译完成会有如下的提示。
计算公式:
Flash 区域大小 = Code 大小 + RO-data 大小
RAM 区域大小 = RW-data 大小 + ZI-data 大小
可得:
Flash 区域大小 = 9096 + 572 = 9668 字节(9.47 KB)
RAM 区域大小 = 64 + 2184 = 2248 字节(2.2 KB)
但这个数据只是整个工程文件的Flash和RAM占用,我们希望具体到各个库编译的资源占用情况,.map文件就可以告诉我们这些信息。
2、打开任意一个Keil工程的 工程名称.map 文件,包含如下的内容。
所需的各个库的ROM和RAM占用情况在Image component sizes这部分
具体的含义问了下GPT
3、总体来说,可以通过查看 .map 文件中各 .o 文件对应的 ROM 和 RAM 资源占用,来估算应当选用多大容量的 ROM 和 RAM。例如,在使用 MPU6050 芯片的官方库进行开发时,由于不清楚该库对 ROM 和 RAM 的占用情况,难以选择恰到好处(指尽可能压缩芯片的容量以节省成本)的芯片型号。估算 MPU6050 库的资源占用只需编译官方例程或移植好的工程,并查看生成的 .map 文件,即可了解所需的 ROM 和 RAM 资源,具体操作步骤此处不再赘述。
注意,如果使用RTOS还应考虑堆栈大小(如果资源受限不建议使用RTOS)。另外HAL库(资源受限考虑标准库或是LL库)编译也需要ROM和RAM,这部分的资源占用也应一并考虑。
结束语:喵