搜索

[AT32F403/403A] AT32F403A 224K RAM 和非零等待区关系

[复制链接]
72|5
 楼主 | 2020-11-20 21:19 | 显示全部楼层 |阅读模式
刚上手雅特力的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那样是分开的

1.png

以下图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还是高的运行速度,非常的灵活
11.png

使用特权

评论回复
| 2020-11-20 23:34 | 显示全部楼层
那GD的芯片介绍是flash零等待,这个又该如何解释呢?不应该是单纯的ram和的区别吧。

使用特权

评论回复

评论

desertsailor 2020-11-21 08:03 回复TA
GD32内部有两个DIE,一个是内核,一个是SPI接口的FLASH,上电后通过加载FLASH内容到RAM中运行。 
| 2020-11-20 23:41 | 显示全部楼层
原理类似

使用特权

评论回复
| 2020-11-23 13:46 | 显示全部楼层
嗯,程序在RAM中运行,那按这个运行逻辑。
我们在FLASH 读写数据时,CPU应该不会停止运行对吧?
所以,这个很方便的使用IAP功能对吧?

使用特权

评论回复
| 2020-11-23 14:46 | 显示全部楼层
Lindson 发表于 2020-11-23 13:46
嗯,程序在RAM中运行,那按这个运行逻辑。
我们在FLASH 读写数据时,CPU应该不会停止运行对吧?
所以,这个 ...

是的,也许这个文档是您需要的。http://atkap.arterytek.com/downl ... 2_MCU_ZH_V1.0.0.pdf

使用特权

评论回复
扫描二维码,随时随地手机跟帖
您需要登录后才可以回帖 登录 | 注册

本版积分规则

我要发帖 我要提问 投诉建议 申请版主

快速回复

您需要登录后才可以回帖
登录 | 注册
高级模式

论坛热帖

在线客服 快速回复 返回顶部 返回列表