ZYNQ QFLASH MX25L256 调试笔记

2023-10-27

该QFlash是32MB的,而ZYNQ的控制器是16MB的,所以想使用后半部分时,必须要使用4byte地址模式或者扩展模式。

先调试扩展模式
在QFlash手册里面有一个写扩展模式命令(C5),写命令的时候,然后再读扩展模式寄存器(C8),就可以看到扩展模式寄存器会置一。这样操作flash的时候,就会跳转到16-32MB断读写数据。

但是手册里面有一个没有写清楚的地方,就是写C5的时候,需要先执行写使能,再写入该命令。而4byte地址模式的命令(B7)并不需要先执行写使能。

最开始一直没有执行写使能,就一直没有调试成功。
这里面的示例并没扩展寄存器的示例
而在这里提了一句,会清除

void FlashEAREnable(XQspiPs *QspiPtr)
{
	u8 WriteEnableCmd = {WRITE_ENABLE_CMD};
	u8 EARCmd[2] = 	{WRITE_EAR_CMD, 255};
	u8 ReadEarCmd[] = {READ_EAR_CMD, 0xff};
	u8 FlashStatus[2] = {0xff, 0xff};

	XQspiPs_PolledTransfer(QspiPtr, ReadEarCmd, FlashStatus, 	sizeof(ReadEarCmd));
	xil_printf("EARCmd ReadConfigCmd [0x%02X],[0x%02X], size %d\r\n",FlashStatus[0],FlashStatus[1],sizeof(EARCmd));
	XQspiPs_PolledTransfer(QspiPtr, &WriteEnableCmd, NULL, 		sizeof(WriteEnableCmd));



	XQspiPs_PolledTransfer(QspiPtr, EARCmd, 	NULL, 	sizeof(EARCmd));

	XQspiPs_PolledTransfer(QspiPtr, ReadEarCmd, FlashStatus, 	sizeof(ReadEarCmd));
	xil_printf("EARCmd ReadConfigCmd [0x%02X],[0x%02X]\r\n",FlashStatus[0],FlashStatus[1]);
}
void FlashEARDisable(XQspiPs *QspiPtr)
{
	u8 WriteEnableCmd = {WRITE_ENABLE_CMD};
	u8 EARCmd[2] = 	{WRITE_EAR_CMD, 0};
	u8 ReadEarCmd[] = {READ_EAR_CMD, 0};
	u8 FlashStatus[2];

	XQspiPs_PolledTransfer(QspiPtr, ReadEarCmd, FlashStatus, 	sizeof(ReadEarCmd));
	xil_printf("EARCmd ReadConfigCmd [0x%02X],[0x%02X], size %d\r\n",FlashStatus[0],FlashStatus[1],sizeof(EARCmd));
	XQspiPs_PolledTransfer(QspiPtr, &WriteEnableCmd, NULL, 		sizeof(WriteEnableCmd));
	XQspiPs_PolledTransfer(QspiPtr, EARCmd, 	NULL, 	sizeof(EARCmd));

	XQspiPs_PolledTransfer(QspiPtr, ReadEarCmd, FlashStatus, 	sizeof(ReadEarCmd));
	xil_printf("EARCmd ReadConfigCmd [0x%02X],[0x%02X]\r\n",FlashStatus[0],FlashStatus[1]);
}

四字节地址模式后续再尝试

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ZYNQ QFLASH MX25L256 调试笔记 的相关文章

  • 使用response下载没反应

    response reset File excelFile new File filePath 1 设置文件ContentType类型 这样设置 会自动判断下载文件类型 response setContentType application
  • 安装持续集成工具Jenkins

    Jenkins是一个流行的持续集成框架 可以在我们提交项目的时候自动测试 运行和部署项目 虽然Jenkins使用Java编写 但是由于Jenkins支持多种语言的项目 所以现在很多公司都是用Jenkins来进行项目的持续集成 下载和安装 L

随机推荐

  • 9.2 构造函数的初始化表

    构造函数有个特殊的初始化方式叫 初始化表达式表 简称初始化表 初始化表位于函数参数表之后 却在函数体 之前 这说明该表里的初始化工作发生在函数体内的任何代码被执行之前 构造函数初始化表的使用规则 如果类存在继承关系 派生类必须在其初始化表里
  • 解决es中termsQuery查询中文字段查不到

    精确匹配 如果要使用name中文查询 是查不出来的 要改成name keyword 如果是数字 可以不用加 keyword TermsQueryBuildertermQueryBuilder QueryBuilders termsQuery
  • Cannot find module ... or its corresponding type declarations.(ts2307)

    vue3 ts项目出现这样的编译提示 红色下划线 Cannot find module or its corresponding type declarations ts2307 解决方法 第一步 关闭vetor 禁用状态 第二步 下载插件
  • Spring 核心loC

    目录 1 loC是什么 1 1 改变之前的程序 1 2 修改后的代码 1 3 解决上述代码耦合问题 2 理解Spring 是一个loC 控制反转 容器 3 DI dependency injection 依赖注入 4 loC DI 总结及优
  • 单片机c语言中断程序实验报告,单片机实验之外部中断应用实验

    一 实验目的 1 掌握中断系统外部中断源的使用方法 2 掌握延时程序的编程及使用方法 3 掌握Proteus软件与Keil软件的使用方法 4 掌握单片机系统的硬件和软件设计方法 二 设计要求 1 用Proteus软件画出电路原理图 在单片机
  • 门级网表

    在电路设计中 网表 netlist 是用于描述电路元件相互之间连接关系的 一般来说是一个遵循某种比较简单的标记语法的文本文件 门级 gate level 指的是网表描述的电路综合级别 顾名思义 门级网表中 描述的电路元件基本是门 gate
  • git 将本地代码推送到远程仓库(核心常用)

    1 首先默认已经提前安装并且配置好git 2 选择要克隆或者保存的目标文件夹下 右键选择Git Bash Here 3 如果是将远端的项目拉取到本地 使用 git clone 命令 因为之前已经clone下来了 所以这次就不下载了 4 使用
  • Python教程:第2章(Python进阶)2.8-2.11

    文章目录 2 8 四大数据结构 2 8 1 单向队列 List 2 8 2 双向队列 Queue 2 8 3 栈 Stack 2 8 4 链表 Link 2 9 八大基础算法 2 9 0 算法复杂度 2 9 1 穷举算法 2 9 2 归纳
  • sqli-labs 38-45

    第38关 堆叠注入 简单理解就是一条语句结束后再连接一条语句 这就叫堆叠注入 举几个最简单的例子 查询数据并创建一个数据库 select from users creat database test 查询数据并删除一个数据库 select
  • java实现成绩及格的判定( true & false )

    成绩及格的判定 代码思想 1 使用条件语句 大于60及格 否则不及格 代码如下 List item IF else语句执行 import java util Scanner public class Test02 public static
  • Spring Boot中的Actuator是什么?Spring Boot中的Starter依赖是什么?

    Spring Boot中的Actuator是什么 在Spring Boot中 Actuator是一种用于监控和管理应用程序的工具 它提供了一些额外的端点和功能 使开发人员能够更好地了解和控制他们的应用程序 Actuator提供了以下功能 指
  • 【计算机视觉

    文章目录 一 分割 语义相关 6篇 1 1 Consistency guided Meta Learning for Bootstrapping Semi Supervised Medical Image Segmentation 1 2
  • Qt Creater创建项目时无法选择Kit选项 No suitable kits found

    项目场景 初步学习Qt编程 Qt Creator 安装 问题描述 创建工程时无法选择Kit套件 原因分析 No suitable kits found 没有找到合适的kits套件 在安装Qt Creator时没有安装MinGW 最直接的办法
  • 使用QT RemoteObject让两个软件(.exe)之间进行通信(VS2019+QT5.15)

    博主将两个软件进行通信是因为项目中出现调用的库只有32位的DLL和LIB 而自己写的软件却是64位 导致我的软件无法使用这个库 让我没办法控制 然后想到解决方法是写一个专门的32位软件调用这个库 然后通过与我现在写的软件进行通信 类似信号和
  • Gradle 入门之 Groovy 语言详解

    Gradle 核心是基于 Groovy 脚本语言 Groovy 脚本基于 Java 且拓展了 Java 因此 Gradle 需要依赖 JDK 和 Groovy 库 快速安装 Groovy 可以通过 Bash 命令如下 curl s get
  • 【数据结构】栈和队列的实现及应用

    需要云服务器等云产品来学习Linux的同学可以移步 gt 腾讯云 lt gt 阿里云 lt gt 华为云 lt 官网 轻量型云服务器低至112元 年 新用户首次下单享超低折扣 一 栈的概念 二 Stack h 三 Stack c 1 栈的初
  • centos 6.8 es安装

    配置操作系统参数 1 切换到root用户修改配置sysctl conf vi etc sysctl conf 添加下面配置 vm max map count 655360 1并执行命令 sysctl p 配置es参数 bootstrap m
  • C++ 数组

    C 支持数组数据结构 它可以存储一个固定大小的相同类型元素的顺序集合 数组是用来存储一系列数据 但它往往被认为是一系列相同类型的变量 数组的声明并不是声明一个个单独的变量 比如 number0 number1 number99 而是声明一个
  • STM32CubeIDE 集成的cube MX配置寄存器,IDE入门上手

    1 STM32CubeIDE属于一站式工具 本文带你体验它的强大 strongerHuang的博客 CSDN博客 STM32CubeIDE是一个多功能的集成开发工具 集成了TrueSTUDIO和STM32CubeMX 它是STM32Cube
  • ZYNQ QFLASH MX25L256 调试笔记

    该QFlash是32MB的 而ZYNQ的控制器是16MB的 所以想使用后半部分时 必须要使用4byte地址模式或者扩展模式 先调试扩展模式 在QFlash手册里面有一个写扩展模式命令 C5 写命令的时候 然后再读扩展模式寄存器 C8 就可以