查找网上关于keil如何查看编译程序所占用的ROM与RAM。
查找结果
1. code , RO ,RW, ZI 表示内容 Code为程序代码部分
RO-data 表示 程序定义的常量const temp;
RW-data 表示 已初始化的全局变量
ZI-data 表示 未初始化的全局变量
单片机 FLASH 空间被谁占用了?
答案: code+ RO-data+ RW-data 。如果写的代码比较庞大超出了单片机的 FLASH
大小,此时就要考虑更换更大 FLASH 的单片机。
单片机 RAM 空间被谁占用了?
答案: RW-data + ZI-data 。 如果 RAM 超出了单片机的大小。就要考虑更换大 RAM
的型号。 //============================================== 分割线:以上为网上搜寻结果 //==============================================
对于stm32F103ZET6它有512Kbyte的FLASH,以及64Kbytes的RAM。 以下是我一个工程编译后,map映射的数据。
Code (inc. data) RO Data RW Data ZI Data Debug
104932 18260 181012 1872 280544 1805723 Grand Totals 104932 18260 181012 436 280544 1805723 ELF Image Totals (compressed) 104932 18260 181012 436 0 0 ROM Totals
==============================================================================
Total RO Size (Code + RO Data) 285944 ( 279.24kB) Total RW Size (RW Data + ZI Data) 282416 ( 275.80kB) Total ROM Size (Code + RO Data + RW Data) 286380 ( 279.67kB)
============================================================================== 既然RW Data + ZI Data表示单片机RAM的占用。此时的RAM为275.8KB,而使用的stm32F103ZET6只有64KB的RM。 为啥可以正常运行程序?编译之后的程序RAM已经远超过单片机自身的RAM.
|