AT32F437玩一玩(4)---以SPI传输为例探索内部flash性能
[复制链接]
本帖最后由 RCSN 于 2021-12-24 21:06 编辑
在雅特力宣传中,AT32F437最高可达4M flash,512K ram,楼主的型号是AT32F437VMT7,刚好存储情况是最高的。那么我想着就来测试下这么大的flash空间,读取性能到底如何,也是本贴探索的重点。
从图中可看到,内部闪存分了ZW和NZW,也就是所谓的零等待区域和非零等待区域,零等待区域也就是256K,也就是SRAM中有256K是个FLASH闪烁当搬运所用。所以SRAM分配为最高的512K,那么零等待区域就会减少,在这里不进行分配。
那么怎么去测试这个闪存的读取性能呢,楼主进行两个实验,通过SPI DMA传输,分别从SRAM数据搬运到SPI外设,以及闪存FLASH数据搬运到SPI外设这两个实验来进行比较。也就是说,可以把比如320*240图片的数组大小放在SRAM中,以及放在闪存FLASH中。然后通过传输时间来判断两者的读取性能。
SPI我进行了最大分频,也就是二分频,下来有65M左右。
SRAM通过DMA搬运到SPI
由图可以看到, 320*240分辨率一张图传输18ms,按照帧率算的话(1000ms/18ms)=55fps,大概有55fps刷新率,288M主频下,SPI性能还是可以的。
闪存FLASH通过DMA搬运到SPI
这里楼主,放置了26张在闪存FLASH,放置一张在SRAM,由图可以看到, 27张图刷639Ms左右 ,每张24ms左右,算起来有42fps。但是要注意,我在实验的过程中,由于有一张图片刚好在零等待区域内,而且两者刷新相差了7ms。不但从帧率看差了17fps.这个闪存读取性能差距还是特别大的,特别是在所谓的非零等待区域内运行指令,这是非常恐怖的。
|