刚上手雅特力的AT32F403A,里面有一些我在STM32F103上没用到的新功能,比如这个零等待区,非零等待区,一开始也是把我整懵逼了,但是后来搞明白之后,嗯...................香
进入正题之前先解释一下两个名词
ZW——零等待区域(如果程序在里面运行,那么运行速度可达240M,其实这块区域就是RAM,这对运行速度有要求的程序非常有用),
NZW——非零等待区域(在flash运行,因为FLASH不可能跑到240M,所以这里面运行程序相对较慢,STM32F103的程序就是在Flash里运行),
AT32F403A一共有352K RAM,这些RAM是连续的,其中默认有256K划给零等待区(ZW)使用,96K划给用户使用作为RAM使用
256K的非零等待区里可以通过软件配置将其中的128K划出来给用户作为RAM使用,那么此时用户就有96+128K RAM可以使用,这224KB sram 是连续的,并不是像STM32F4那样是分开的
以下图CG型号为例,现在的资源是有总的FLASH 1024K, RAM 256K(零等待区ZW)+96K=352KB
如果按着默认的配置96K RAM ,那么程序一上电,就会将FLASH 前面256K拷贝到256K(零等待区ZW)里面运行,然后剩下1024-256=768K在FLASH里面运行,
如果的配置成96K + 128 k = 224K RAM ,那么零等待区ZW 就只剩128K了,程序一上电,就会将FLASH 前面128K拷贝到128K(零等待区ZW)里面运行,然后剩下1024-128=896K在FLASH里面运行
感觉这个功能非常棒,可以根据实际需求是选择大的RAM还是高的运行速度,非常的灵活
|