本帖最后由 xyzjacky 于 2017-12-25 17:44 编辑
当前我有一个工程,用的是STM32F103RC的单片机。程序最近做了一点点改动,发现老是跑飞,当前分析后,可能是内存的使用出错(debug发现,程序并非停在某一句,而是完全不运行,反复点击RUN也没有用),朋友提醒说ZI-DATA过大,如下:
Program Size: Code=47984 RO-data=15872 RW-data=228 ZI-data=1049236
在.map文件中看到的信息如下
Total RO Size (Code + RO Data) 63856 ( 62.36kB)
Total RW Size (RW Data + ZI Data) 1050488 (1025.87kB)
Total ROM Size (Code + RO Data + RW Data) 64084 ( 62.58kB)
然后我的启动文件信息如下:
Stack_Size EQU 0x00000400
Heap_Size EQU 0x00000200
现在求教的是:
1. 有哪些原因会导致ZI-DATA过大?怎么优化才能使其不那么大?
2. 我程序跑飞是不是与Stack_Size小了,而ZI Data过大有关?
望各位大哥大姐,师兄师姐,以及各位新老朋友不吝赐教,拜谢,拜谢!
|