环境:win7-64位、keil5、STM32F103VEC6、RTOS系统、ucGUI-V3.9、屏幕(320x240)
现象描述:
0.原工程内存占用:Program Size: Code=37434 RO-data=127570 RW-data=312 ZI-data=19936
此时程序运行显示正常。
1.先给这个工程添加一张图片P1(320x240),暂时未调用。
此时工程内存占用:Program Size: Code=37434 RO-data=281190 RW-data=312 ZI-data=19936
程序功能运行不正常,硬件上跑的速度变慢,部分动态数据不显示;硬件仿真后可以看到该动态数据所在数组状态错误。
2.再给工程添加一张图片P2(320x240),暂时未调用
此时工程内存占用:Program Size: Code=37434 RO-data=434810 RW-data=312 ZI-data=19936
程序功能运行正常,显示正常,硬件运行速度也比较正常
3.调用图片P2
此时工程内存占用:Program Size: Code=37450 RO-data=434810 RW-data=312 ZI-data=19936
程序功能运行正常,显示P2时,P2图片显示不完全,还有不应该存在的线条固定显示
附keil5配置:
简单分析:
(我这边在IAR上也有个类似的项目,上面运行就很正常)
应该是内存分配存在的问题,由于IAR上运行正常,就仔细查不同,后来果然发现是内存分配不对,我这边实际使用103的芯片,可是我按照105芯片进行内存分配,这两个存在很大的差异。103为增强型,105为互联型。此处改正后就运行正常了。
103对应的闪存分配地址
105对应的闪存分配地址