为什么GD32F303代码运行在flash比sram更快?

发布者:WanderlustSoul最新更新时间:2024-03-19 来源: elecfans关键字:GD32F303  代码运行  flash  sram 手机看文章 扫描二维码
随时随地手机看文章

我们知道一般MCU的flash有等待周期,随主频提升需要插入flash读取的等待周期,以stm32f103为例,主频在72M时需要插入2个等待周期,故而代码效率无法达到最大时钟频率。

wKgaomW5pX-AMhUCAADICRgsvw0219.png

所以STM32F103将代码加载到sram运行速度更快。

但使用GD32F303时将代码加载到SRAM后速度反而下降了一些,这是为什么呢?

我们前面了解过GD32F303 flash的code area区是零等待的,GD32F系列MCU片上Flash中Code区和Data区使用解密

零等待访问理论上就应该和在sram运行速度一样,那么为何会比sram更快一些呢?

通过查阅GD32F303用户手册系统架构章节我们可以知道,访问flash时可以直接通过ibus和sbus专用总线进行访问,而访问sram时通过AHB主机接口通过System BUS进行访问,AHB主机接口下更还有挂载有其他主机和外设总线,共享总线带宽

wKgaomW5pYWAFa3-AAGr5mGtFBY373.png


所以GD32F303的代码运行在code area零等待区时,效率会比常规加载sram的方式更高。


关键字:GD32F303  代码运行  flash  sram 引用地址:为什么GD32F303代码运行在flash比sram更快?

上一篇:基于F0单片机的无线心率心电监测系统
下一篇:介绍一种使用MDK解除读保护的方法

推荐阅读最新更新时间:2024-11-02 12:21

OK6410块设备驱动内存模拟nor_flash
ram_nor.c源码: //参考: drivers\mtd\chips\map_ram.c #include linux/module.h #include linux/types.h #include linux/kernel.h #include linux/sched.h #include linux/init.h #include asm/io.h #include asm/byteorder.h #include linux/errno.h #include linux/slab.h #include linux/delay.h #include linux/interrupt.h #inclu
[单片机]
TMS320C5410烧写Flash实现并行自举引导
摘要:介绍在TMS320C5410环境下对Am29LV200B Flash存储器进行程序烧写,并且实现了TMS320C5410上电后用户程序并行自举引导。 关键词:Am29LV200B Flash DSP 并行自举引导 自举表   Flash是一种可在线进行电擦写,掉电后信息不丢失的存储器。它具有低功耗、大容量、擦写速度快等特点,并且内部嵌入算法完成对芯片的操作,因而在数字信号处理系统中得到了广泛的应用。本文通过一个完整的实例,介绍Am29LV200B Flash存储器的烧写方法,实现TMS320C5410(以下简称C5410)上电后用户程序的并行自举引导。 1 Am29LV200B Flash存储器 1.1 Flash存
[应用]
基于C语言和GEL语言的Flash编程新方法
  在DSP应用系统开发的后期,一般需要将用户程序写进Flash等非易失性存储器,以便采用并行引导的方法实现用户程序的自举加载。这一步骤称 为“烧写”;针对Flash的烧写又称为Flash编程。以往的编程方法大多采用汇编语言编写程序,可读性较差,并将引导表的制作也放在程序中实现;用户 程序一变,烧写程序就得重新编写,不具有通用性。参考文献 采用C语言完成Flash读写,较清晰地体现了Flash编程的思想,但是它采用指针访问 Flash空间,不能对高端Flash(64 K字存储空间以外)进行访问,且将引导表作成数组的方法仍显机械。   这里提出的Flash编程方法完全采用C语言编写烧写程序,运用函数地址访问高端Flash,借助数据
[单片机]
STM32 "flash download failed - Target dll has been cancelled"错误解决办法
在用mdk通过stlink烧写官方例程到stm32f429I discovery时,烧写了十来个程序都没问题,突然在烧写一个程序时,弹出了“flash download failed - Target dll has been cancelled”,然后后续的烧写都失败了。 原因可能是其中一个程序将stm32开发板设置成了休眠模式,导致后续的烧写都失败了。 从keil论坛帖子中 看到可以通过st-link utility来将flash全部擦除就能烧写了。 从http://www.st.com/web/en/catalog/tools/PF258168下载st-link utility并安装,选择Target- Conn
[单片机]
STM32 flash download failed - Target dll has been cancelled"错误解决办法" />
淡季影响销售,NAND Flash 供应商 Q1 将供过于求
    根据 TrendForce 旗下记忆体储存事业处 DRAMeXchange 最新报告显示,第四季 NAND Flash 市况虽依旧维持健康水准,但在三星电子、东芝与晟碟各自面临价格与产销端的压力影响营收、及第三季呈现微幅衰退的情况下,品牌供应商营收仅较第三季成长 2% 至 87.5 亿美元。DRAMeXchange 研究协理杨文得表示,因需求端面临淡季效应,2015 年第一季整体市况将转为供过于求,在价格滑落幅度转趋明显的情况下,业者将藉由加速先进制程的转进,改善成本架构,以减低价格跌幅的冲击。   NAND Flash 三星电子 三星电子第四季 NAND Flash 位元出货量较上季
[手机便携]
利用 Platform Flash PROM 实现多重启动功能
提要 一些应用利用 Xilinx FPGA 在每次启动时可改变配置的能力,根据所需来改变 FPGA 的功能。Xilinx Platform Flash XCFxxP PROM 的设计修订 (Design Revisioning) 功能,允许用户在单个PROM 中将多种配置存储为不同的修订版本,从而简化了 FPGA 配置更改。在 FPGA 内部加入少量的逻辑,用户就能在 PROM 中存储的多达四个不同的修订版本之间进行动态切换。多重启动或从多个设计修订进行动态重新配置的能力,与 Spartan-3E FPGA 和第三方并行 flash PROM 一起使用时所提供的 MultiBoot 选项相似。 本应用指南将进一步说明 Platf
[嵌入式]
英特尔:不屑NAND竞争,力夺SSD龙头
  芯片龙头英特尔(Intel)的NAND闪存事业群新主管透露,该公司立志成为固态储存(SSD)领域的一哥,但令人惊讶的是,他们没兴趣在NAND市场称王。      英特尔并不想步上三星(Samsung)、海力士(Hynix)与东芝(Toshiba)等NAND供货商彼此争夺市占率的后尘,不过却透露了想抢夺三星SSD市场龙头宝座的意愿。但令人惊讶的,总是第一名的英特尔无意成为NAND市场的老大。      目前英特尔在处理器与芯片组市场都是龙头,如果该公司在某个市场名次落后,也意味着该公司将退出那个领域。举例来说,这几年来英特尔已经因为某些理由,放弃ASIC、通讯IC、NOR闪存,品牌PC以及超级计算机等业务。       对闪存:不
[半导体设计/制造]
STM32的SRAM调试
据说Flash的擦写次数是有限的,所以在调试的时候擦来擦去不好,看到boot0、boot1可以配置从SRam启动,就查了相关资料,试了一下,ok了。记录一下,免得以后又忘了。跟flash调试部分相同的就不再描述了,重点在于SRam调试的设置部分,大部分以图片形式。 Dbg_RAM.ini(D:KeilARMBoardsKeilMCBSTM32Blinky下面有一个,其实MCBSTM32目录下的都一样的,只要有)的内容: /*---------------------------------------------------------------------------- * Name: Dbg_RAM.ini *
[单片机]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved