stm32的FMC数据访问与突发模式

在这里插入图片描述

数据访问

配置外部存储器的宽度为 16 位, FMC 将使用内部的 ADDR[25:1]地址来作为对外部存储器的寻址地址 FMC_A[24:0],这段描述是在解释在STM32的FMC(Flexible Memory Controller)中,如何配置外部存储器的宽度为16位时,FMC使用内部的ADDR[25:1]地址作为对外部存储器的寻址,而FMC_A[24:0]用作外部存储器的地址线。

逐步解释:

  1. 配置外部存储器宽度为16位:
    当我们将外部存储器的宽度配置为16位时,这意味着每次读取或写入操作,FMC会同时读取或写入16位的数据。这是因为外部存储器的数据总线宽度被设置为16位。

  2. 使用内部的ADDR[25:1]地址进行外部存储器寻址:
    FMC使用内部的ADDR[25:1]地址线来对外部存储器进行寻址。这些地址线是由FMC控制器生成的,用于指示外部存储器的访问位置(地址)。ADDR[25:1]表示了FMC控制器内部的地址线。

  3. FMC_A[24:0]作为外部存储器的地址线:
    FMC_A[24:0]是FMC控制器的输出引脚,用于连接到外部存储器的地址输入引脚。这些地址线将FMC控制器生成的内部地址传递给外部存储器,以指示要读取或写入的存储器位置。

当我们将外部存储器的宽度配置为16位时,FMC使用内部的ADDR[25:1]地址线进行外部存储器的寻址,而FMC_A[24:0]用作连接到外部存储器的地址线,将FMC生成的地址传递给外部存储器。这样,FMC控制器就能够正确地对16位宽度的外部存储器进行寻址和数据传输。

突发模式

在STM32的FMC(Flexible Memory Controller)中,突发(Burst)是指在一次存储器访问中,通过连续传输多个数据字(burst data)的操作模式。使用突发模式可以提高存储器访问效率,减少传输延迟,并充分利用存储器的带宽。

FMC支持不同的突发模式,其中最常见的是连续突发(Single-burst)和增量突发(Incremental-burst)。

  1. 连续突发(Single-burst):
    连续突发模式是指在一次存储器访问中,FMC按照事先设定的传输长度(burst length)连续传输连续的数据字。传输长度可以配置为4字(32位)、8字(64位)等不同的长度。在连续突发模式下,只需要一次地址传输,然后连续传输指定长度的数据字。

  2. 增量突发(Incremental-burst):
    增量突发模式是指在一次存储器访问中,FMC按照事先设定的传输长度连续传输一系列连续的数据字,同时自动增加地址。传输长度可以配置为4字(32位)、8字(64位)等不同的长度。在增量突发模式下,FMC首先传输起始地址对应的数据字,然后自动增加地址并传输下一个数据字,直到传输指定长度的数据字为止。

通过使用突发模式,FMC可以在一次存储器访问中连续传输多个数据字,减少了每次传输的地址和控制开销,提高了数据传输效率。这对于需要高带宽的应用场景非常有用,例如图形处理、音视频处理等。

在配置FMC时,可以选择突发模式,并设置传输长度和其他相关参数,以满足具体应用的需求。这样可以充分利用FMC的突发功能,提高系统性能和效率。
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/306394.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

YOLOv5改进 | 2023主干篇 | EfficientViT替换Backbone(高效的视觉变换网络)

一、本文介绍 本文给大家带来的改进机制是EfficientViT(高效的视觉变换网络),EfficientViT的核心是一种轻量级的多尺度线性注意力模块,能够在只使用硬件高效操作的情况下实现全局感受野和多尺度学习。本文带来是2023年的最新版本的EfficientViT网络结构,论文题目是Effici…

麒麟操作系统缓存rpm包,制作离线yum源

缓存rpm包,以make为例 mkdir -p /data/yum yumdownloader --resolve --destdir/data/yum make制作离线yum包 yum install createrepo -y cd /data/yum createrepo .写yum配置文件/etc/yum.repos.d/local.repo [local-repo] namelocal-repo baseurlfile:///data/…

spring boot 自动扫描Controller、Service、Component原理

项目里面为什么不加上ComponentScan("com.yym.*")注解,也能加载到子目录里面的Controller,Service,Component的bean呢? 启动类没有ComponentScan注解 SpringBootApplication public class BootStrap {public static v…

2023.11.16

1. 数据预处理, 对于质量守恒,加和比都为100% 数据清洗 箱型图 散点图 3σ 进行一次正态性检验 描述性分析:计算平均值、标准差。趋势分析,通过散点图,折线图,观察不同混合比对焦油、水、合成气体的…

数据挖掘在制造业中的预测与优化应用

随着大数据时代的到来,数据挖掘技术在各行各业的应用日益广泛,尤其在制造业中,其对于提升生产效率、降低运营成本、优化供应链管理等方面发挥着不可替代的作用。本文将探讨数据挖掘在制造业中的预测与优化应用,通过深入剖析实际案…

linux(ubuntu)中drontab定时器命令详解

linux(ubuntu)中drontab定时器命令详解 crontab 是一个用于创建、编辑和管理用户的定时任务的命令,它可以让用户在指定的时间自动执行指定的命令或脚本。 基本语法 -e:编辑用户的 crontab 文件;-l:列出用…

sentinel熔断简单实现

sentinel详细介绍网址 基于qps限流 package mainimport ("fmt"sentinel "github.com/alibaba/sentinel-golang/api""github.com/alibaba/sentinel-golang/core/base""github.com/alibaba/sentinel-golang/core/flow""log"…

CentOS常用命令

CentOS常用命令 1 背景知识1.1 Centos 简介1.2 centos 和ubuntu的区别1.3 安装centos的时候需要注意什么 2 常用命令集锦2.1 文件目录类:2.2 驱动挂载类:2.3 关机命令:2.4 查看系统信息命令:2.5 文本命令2.6 系统管理命令&#xf…

Redis异步写失败后补数逻辑设计

背景 最近各种机房事故频发,所以很多公司都对Redis存储等进行异步多活,我们公司采用的方式是通过客户端双写的方式来实现异地Redis机房的备份,但是当异地机房出现临时网络故障时,就涉及到了如何进行补数的操作,本文就…

6 - 数据备份与恢复|innobackupex

数据备份与恢复|innobackupex 数据备份与恢复数据备份相关概念物理备份与恢复逻辑备份(推荐)使用binlog日志文件实现对数据的时时备份‘使用日志 恢复数据 innobackupex 对数据做备份和恢复增量备份与恢复 数据备份与恢复 数据备份相关概念 …

【算法Hot100系列】搜索插入位置

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学习,不断总结,共同进步,活到老学到老导航 檀越剑指大厂系列:全面总结 jav…

资源调度(2)-----pod的亲和性和反亲和性

集群调度: schedule的调度算法。 预算策略:过滤出合适的节点 优先策略: 选择部署的节点 nodeName:硬匹配,不走调度策略。node01. nodeSelector:根据节点的标签选择,会走调度算法。 只要是走调度算法,在不满…

软件测试|Python对JSON的解析和创建详解

简介 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,已经成为当今互联网应用中广泛使用的数据格式之一。Python提供了内置的模块来解析和创建JSON数据,使得在Python中处理JSON变得非常简单。本文将详细介绍Python…

ProtoBuf一些踩坑记录

一、Protobuf学习基础 学习的资料很多也很全,这里添加几个链接进行Protobuf的基础学习的链接,链接中的案例使用C编辑: 链接:Protobuf介绍及简单使用(上)_google_protobuf_version-CSDN博客 Protobuf介绍及简单使用(下&…

从网页连接socket服务器和I/O

1.i/o InputStream和InputStreamReader是Java I/O类库中的两个关键类,用于处理字节流。它们的主要区别在于它们处理数据的方式。 InputStream: InputStream是用于读取字节流的抽象类。它是所有字节输入流类的父类。InputStream的子类可以从不同的数据源读取字节&…

了解 Node.js 的运行机制:从事件循环到模块系统(上)

🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6 🍨 阿珊和她的猫_CSDN个人主页 🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 🍚 蓝桥云课签约作者、已在蓝桥云…

typora导出html添加目录

typora导出html添加目录 使用方法 首先要从typora导出html文件,之后用记事本编辑器html文件 找到文档最后面,如图: 用文字编辑类工具打开sideBar.txt,复制其中所有内容【内容在下面】 在如上图的位置插入所复制的内容 打开修改…

面试宝典进阶之Java线程面试题

T1、【初级】线程和进程有什么区别? (1)线程是CPU调度的最小单位,进程是计算分配资源的最小单位。 (2)一个进程至少要有一个线程。 (3)进程之间的内存是隔离的,而同一个…

信息系统安全——基于 AFL 的模糊测试

实验 3 基于 AFL 的模糊测试 3.1 实验名称 《基于 AFL 的模糊测试》 3.2 实验目 1 、熟悉模糊测试方法 2 、熟悉模糊测试工具 AFL 的使用 3.3 实验步骤及内容 1 、 安装 AFL 2 、 任意选择一个有源代码的样本 这里采用教材上一个包含栈溢出漏洞的样本。 3 、 结合源代码分析用 …

8.云原生存储之Ceph集群

1. 私有云实战之基础环境搭建 2. 云原生实战之kubesphere搭建 3.云原生之kubesphere运维 4. 云原生之kubesphere基础服务搭建 5.云原生安全之kubesphere应用网关配置域名TLS证书 6.云原生之DevOps和CICD 7.云原生之jenkins集成SonarQube 8.云原生存储之Ceph集群 文章目录 为什么…
最新文章