AT32F403A 224K RAM 和非零等待区关系
刚上手雅特力的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还是高的运行速度,非常的灵活
那GD的芯片介绍是flash零等待,这个又该如何解释呢?不应该是单纯的ram和的区别吧。 原理类似 嗯,程序在RAM中运行,那按这个运行逻辑。
我们在FLASH 读写数据时,CPU应该不会停止运行对吧?
所以,这个很方便的使用IAP功能对吧? Lindson 发表于 2020-11-23 13:46
嗯,程序在RAM中运行,那按这个运行逻辑。
我们在FLASH 读写数据时,CPU应该不会停止运行对吧?
所以,这个 ...
是的,也许这个文档是您需要的。http://atkap.arterytek.com/download/AN0029_Memory_read_and_write_while_CPU_executing_On_AT32_MCU_ZH_V1.0.0.pdf
muyichuan2012 发表于 2020-11-23 14:46
是的,也许这个文档是您需要的。http://atkap.arterytek.com/download/AN0029_Memory_read_and_write_whi ...
非常感谢您回复!
谢谢! 这个 具体配置在哪个区域 是不是通过设置 keil的 rom其实地址 来配置 就可以配置程序再 zw nzw区 如果把FALSH中几页当成EEROM,读写时不知怎么处理的?读时是从RAM中读呢还是从FLASH中读? 为什么NZW区域大小也会变化 这个零等待和非零等待,在使用IAP程序升级到后续程序时,如果后续程序超过128k,会导致好多外设工作不起来,程序直接进入硬件错误,是个坑, 独孤求隐 发表于 2021-9-29 16:04
这个零等待和非零等待,在使用IAP程序升级到后续程序时,如果后续程序超过128k,会导致好多外设工作不起来, ...
不可能触显这种情况,非0等待也能到96M呢。 解释的清楚,一直疑惑这个东西到底怎么用,现在明白啦。 原来如此,学习了~
页:
[1]