ZYNQ7000---FLASH读写

news2025/1/11 7:50:08

提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • 一、Flash是什么?
  • 二、Flash的分类
    • 1、内部结构(接口)区分:
    • 2、外部接口区分:
      • SPI
      • QPSI Flash:
    • QSPI 控制器
    • flash 控制器和flash存储器的连接方式:


前言

本文主要用于记录对flash读写操作的学习。文章内容基于正点原子系列视频:
正点原子手把手教你学ZYNQ之嵌入式开发


一、Flash是什么?

Flash存储器(又称为闪存)是一种非易失性存储器。具有操作方便、读写速度快等优点。一般用于存储操作系统和程序代码,例如程序固化的操作通常都是把程序存储在flash里面,设置启动后去读取里面存储的程序。

Flash的存储单元为块阵列-块是擦除操作的最小单位,擦除操作会将块内所有位置“1”页是读和写的基本单位。在对页进行写操作之前,需要判断该页内所有的位是否为“1”,如果全部为1,可以进行写操作;否则,需要对整个块进行擦除操作。

Flash的特性是写操作只能从1翻转到0 ,从0到 1是由擦除来进行的

因此,当要对Flash进行写操作时通常先要进行擦除。

二、Flash的分类

1、内部结构(接口)区分:

在这里插入图片描述

2、外部接口区分:

在这里插入图片描述
SPI串行的速度会更慢一些但是他所需要的引脚数目是按照标准固定的,当发现容量过小时可以替换更大的,不需要增加额外的引脚。

ZYNQ使用的flash为SPI类型的。

SPI

SPI(Serial Peripheral Interface)串行外设接口,高速、全双工、同步的通信总线。
缺点是没有应答机制来确认是否收到数据,可以写完之后再读出来确认没有出错。

标准通信:
在这里插入图片描述
SS:片选信号

QPSI Flash:

在这里插入图片描述
在这里插入图片描述
XIP:芯片内执行代码

QSPI 控制器

本部分内容参见技术手册 ug585-zynq7000

控制器有三种模式:

  1. I/O模式
    软件通过写TXD(4个)寄存器 把数据和控制命令写到控制器中;通过读RXD寄存器把flash的数据读取出来

  2. 线性地址模式
    用硬件发起命令到flash memory,控制数据流从flash memory 到AXI interface。
    比I/O模式快

  3. 传统SPI模式
    在这里插入图片描述
    控制器内部:
    在这里插入图片描述

flash 控制器和flash存储器的连接方式:

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述


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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Leetcode刷题详解——猜数字大小 II

1. 题目链接:375. 猜数字大小 II 2. 题目描述: 我们正在玩一个猜数游戏,游戏规则如下: 我从 1 到 n 之间选择一个数字。你来猜我选了哪个数字。如果你猜到正确的数字,就会 赢得游戏 。如果你猜错了,那么我…

分发糖果(贪心算法)

题目描述 n 个孩子站成一排。给你一个整数数组 ratings 表示每个孩子的评分。 你需要按照以下要求,给这些孩子分发糖果: 每个孩子至少分配到 1 个糖果。相邻两个孩子评分更高的孩子会获得更多的糖果。 请你给每个孩子分发糖果,计算并返回…

操作系统:输入输出管理(二)磁盘调度算法

一战成硕 5.3 磁盘固态硬盘5.3.1 磁盘5.3.2 磁盘的管理5.3.3 磁盘调度算法 5.3 磁盘固态硬盘 5.3.1 磁盘 磁盘是表面涂有磁性物质的物理盘片,通过一个称为磁头的导体线圈从磁盘存取数据。在读写操作中,磁头固定,磁盘在下面高速旋转。磁盘盘…

Linux安装DMETL5与卸载

Linux安装DMETL5与卸载 环境介绍1 DM8数据库配置1.1 DM8数据库安装1.2 初始化达梦数据库1.3 创建DMETL使用的数据库用户 2 配置DMETL52.1 解压DMETL5安装包2.2 安装调度器2.3 安装执行器2.4 安装管理器2.5 启动dmetl5 调度器2.6 启动dmetl5 执行器2.7 启动dmetl5 管理器2.8 查看…

LangGPT作者教你编写高质量提示词

CoT和ToT能够提升表现,但是会使得模型的使用变复杂。在对话的场景下容易消耗人的耐心;实际应用的场景下,比较消耗人的token。 还有一点需要说明的是,我们在写自己的prompt的时候,不应该盲目地追求和堆砌提示词技巧&am…

Unity 预制体放在场景中可见,通过代码复制出来不可见的处理

首先我制作了一个预制体,在场景中是可见的,如下图 无论是Scene视图,还是Game视图都正常。 我把预制体放到Resources里面,然后我通过如下代码复制到同个父物体下。 GameObject obj1 Instantiate(Resources.Load("Butcon&quo…

Django+vue前后端分离实战--vue后台管理系统--vue环境安装项目创建

Djangovue前后端分离实战--vue后台管理系统 安装nodejsvue clivue-cli创建项目 安装nodejsvue cli 1、下载nodejs并安装 https://nodejs.org/dist/v20.9.0/node-v20.9.0-x64.msi 2、修改npm 默认仓库地址,要修改成taobao的镜像npm 仓库地址 cmd下命令&#xff1a…

sql注入 [极客大挑战 2019]LoveSQL 1

打开题目 几次尝试,发现输1 1",页面都会回显NO,Wrong username password!!! 只有输入1,页面报错,说明是单引号的字符型注入 那我们万能密码试试能不能登录 1 or 11 # 成功登录 得到账号…

【Redis】springboot整合redis(模拟短信注册)

要保证redis的服务器处于打开状态 上一篇: 基于session的模拟短信注册 https://blog.csdn.net/m0_67930426/article/details/134420531 整个流程是,前端点击获取验证码这个按钮,后端拿到这个请求,通过RandomUtil 工具类的方法生…

微服务实战系列之Token

前言 什么是“Token”? 它是服务端生成的一串字符串,以作客户端进行请求的一个令牌,当第一次登录后,服务器生成一个Token便返回给客户端;以后客户端只携带此Token请求数据即可。 简言之,Token其实就是用户身…

VBA_MF系列技术资料1-222

MF系列VBA技术资料 为了让广大学员在VBA编程中有切实可行的思路及有效的提高自己的编程技巧,我参考大量的资料,并结合自己的经验总结了这份MF系列VBA技术综合资料,而且开放源码(MF04除外),其中MF01-04属于定…

Rxswift(1)

基础用法 数据绑定核心Observerable 可监听序列 数据绑定 平常的写法 let image: UIImage UIImage(named: ...) imageView.image image绑定的写法 //可监听序列 let image: Observable<UIImage> ... //imageView.rx.image 观察者 image.bind(to: imageView.rx.image…

python爬取穷游网景点评论

爬取穷游网的景点评论数据&#xff0c;使用selenium爬取edge浏览器的网页文本数据。 同程的评论数据还是比较好爬取&#xff0c;不像大众点评需要你登录验证杂七杂八的&#xff0c;只需要找准你想要爬取的网页链接就能拿到想要的文本数据。 这里就不得不提一下爬取过程中遇到的…

echarts双轴右边的轴刻度不显示

图表单轴的时候&#xff0c;yAxis 和 series 是一个对象&#xff0c;但是当双轴显示的时候&#xff0c;yAxis 和 series 就都是一个数组里面包含两个对象&#xff0c;如果是多轴&#xff0c;就是多个对象 看下代码&#xff0c;关键代码 yAxisIndex: 1, 多轴的时候需要指定ind…

【2023春李宏毅机器学习】快速了解机器学习基本原理

文章目录 机器学习约等于机器自动找一个函数 机器学习分类 regression&#xff1a;输出为连续值classification&#xff1a;输出为一个类别structured learning&#xff1a;又叫生成式学习generative learning 生成有结构的物件&#xff08;如&#xff1a;影像、句子&#xf…

matplotlib 绘制双纵坐标轴图像

效果图&#xff1a; 代码&#xff1a; 由于使用了两组y axis&#xff0c;如果直接使用ax.legend绘制图例&#xff0c;会得到两个图例。而下面的代码将两个图例合并显示。 import matplotlib.pyplot as plt import numpy as npdata np.random.randint(low0,high5,size(3,4)) …

【Unity】XML文件的解析和生成

目录 使用XPath路径语法解析 使用xml语法解析 XML文件的生成 XML文件是一种常用的数据交换格式&#xff0c;它以文本形式存储数据&#xff0c;并使用标签来描述数据。解析和生成XML文件是软件开发中常见的任务。 解析XML文件是指从XML文件中读取数据的过程。在.NET中&#…

【入门篇】1.2 Redis 客户端之 Jedis 详解和示例

文章目录 1. 简介2. Jedis的依赖下载Jedis导入Jedis jar包配置Redis服务器的地址和端口 3. Jedis 的基本操作连接 Redis 服务器设置和获取字符串类型的键值对判断键是否存在删除键设置键的过期时间 4. Jedis 的数据类型操作字符串类型列表类型集合类型哈希类型有序集合类型 5. …

指针传2(续集)

近期的天气是真的冷啊&#xff0c;老铁们一定要照顾好自己呀&#xff0c;注意防寒保暖&#xff0c;没有你们我怎么活啊&#xff01; 上次的指针2的末尾&#xff0c;给大家分享了两个有趣的代码&#xff0c;今天就先来讲一讲那两个代码&#xff1a; 两个有趣的代码&#xff1a;…

Pandas 将DataFrame中单元格内的列表拆分成单独的行

使用 explode 函数 import pandas as pddata {month: [1, 2],week: [[i for i in range(2)], [i for i in range(3)]]} df pd.DataFrame(data) print(df)df df.explode(week) print(df)