|
本帖最后由 sinceac 于 2017-5-13 15:37 编辑 最近在F427ZG上开发一个比较多功能的程序,现在发现当我加入一些变量或代码后,会导致程序运行出错。下面是map文件里的统计信息 Total RO Size (Code + RO Data) 75496 ( 73.73kB) Total RW Size (RW Data + ZI Data) 89960 ( 87.85kB) Total ROM Size (Code + RO Data + RW Data) 76496 ( 74.70kB) |
微信公众号
手机版
RO-data是 Read Only 只读常量的大小,如const型;
RW-data是(Read Write) 初始化了的可读写变量的大小;
ZI-data是(Zero Initialize) 没有初始化的可读写变量的大小。ZI-data不会被算做代码里因为不会被初始化;
简单的说就是在烧写的时候是FLASH中的被占用的空间为:Code + RO Data + RW Data
程序运行的时候,芯片内部RAM使用的空间为: RW Data + ZI Data
从提供的map文件看,程序占用Flash不大,对于1M的Flash来说很小了,但是 ZI Data为什么这么大?难道是在函数内部使用的大量内存?只从map文件很难判断问题所在。
评分
查看全部评分
F427ZG空间很大,放你这点程序根本不在话下。
加入的变量或代码,只要与原有程序不冲就没问题。比如变量是不是与其它地方有冲突,主程序中定义了一个全局变量,而在其它函数内或文件内又定义了一个同名的局部变量,此时全局变量在这些函数或文件中不起作用;控制的外设,是不是几个函数都控制了同一个外设。
评分
查看全部评分