zynq 7000下读写qspi 及flash 唯一id
来源:互联网 发布:验证java安装成功 编辑:程序博客网 时间:2024/06/06 12:34
我在使用altera 的时候,写了一篇读写flash 及其ID的文章。
在我转入zynq 7000的时候,自然也要有读写QSPI FLASH, 以及读取其ID。
本文分为四部分:硬件设计,软件设计,测试验证,期待
本文的前提条件是读者会helloworld 实验,也就是会zynq 7000的SDK开发过程,如果不会,那先去看我的zynq 7000下的helloworld 实验,或者开发板提供的helloworld 实验教程。
我实验平台是黑金的核心板AC7010, 其板上的QSPI芯片是W25Q256FV
工程下载链接:http://pan.baidu.com/s/1qYxAnFI 密码:p2c6
单一源代码下载链接 http://pan.baidu.com/s/1dFcsf3F
1 硬件设计
硬件设计基本和helloworld 一样,不同的是要选择QSPI, 否则怎么做实验呢。还有工程名字取为qspi。
在zynq配置的peripheral I/O Pins 里选择Quad SPI Flash, 如图:
在zynq配置的MIO configuration 里选择Quad SPI Flash的每个脚为 fast, 如图:
出此以外,都和hello world 实验的硬件设计一样。
2: 软件设计
在SDK里 新建工程,取名为qspi_t , 在Next 里可以选择hello world 或者empty project。下载我提供的xqspips_flash_polled_example.c 文件, 放入.src ,就是hellowrld.c 的地方。 删除helloworld.c 。
为什么取这样一个名字呢? 这是Xilinx提供的样例程序,你可以在你的xilinx 目录下搜索到这个文件。我提供的程序是在其上修改得到的。
FlashWrite, FlashRead, FlashErase, FlashReadID 都是样例程序里包含的。我做的工作只是修改了main函数,还有仿照FlashReadID, 编写了一个FlashReadUID函数。
FlashWrite, 写Flash, 其参数是QSPI驱动指针, FLash写的起始地址, 写入字节数, 写命令
FlashRead, 读Flash, 其参数是QSPI驱动指针, FLash读的起始地址, 读取字节数, 读命令
FlashWrite, 擦出Flash, 其参数是QSPI驱动指针, FLash擦除起始地址, 擦除字节数。
写命令其实只有一个WRITE_CMD, 但读命令有4个选择:READ_CMD, FAST_READ_CMD, DUAL_READ_CMD, QUAD_READ_CMD
FlashReadID 就是读取JEDEC ID
FlashReadUID 是我仿照上面函数写的, 我查看了W25Q256FV的手册,读取唯一ID的cmd 是0x4B, 我不确定其他芯片是否一样,你需要自己查看。
主程序的流程是:基本初始化,获取Flash 的驱动指针,给WriteBuffer 数组赋值,就是打算 写什么东西进去,调用2个id 读取, 擦除,读取,显示内容,写入, 读取,显示内容,调用2个id 读取并显示。
3:程序运行
以下是程序运行在串口监视终端上的显示内容
4 期待
按资料介绍,唯一id 每个芯片都是不一样的,可不可以把你 的id 告诉我,看看是不是都不一样。
如果这样的话,我们就可以用这个id 加密,就是用一个算法,比如des,des3,得到一个结果,而这个结果只有知道算法的人才知道。把这个结果填入一个地方,那就是程序员认可了。这样如果简单复制程序,那就不行的,防止盗版。
其实xilinx 也有一套加密的算法,估计他那更科学。我还没有学会,知道了和大家分享。
告诉我id 的方法可以是留言,大家都可以看到,或者qq 等其他方式。
- zynq 7000下读写qspi 及flash 唯一id
- zynq-7000的linux QSPI flash启动
- zynq QSPI Flash 启动过程
- zynq QSPI Flash 启动过程
- zynq Nand flash,QSPI,EMMC接口
- ZYNQ Linux的QSPI Flash启动
- ZYNQ中的QSPI FLASH烧写问题
- zynq QSPI
- ZYNQ-7000 QSPI Flash和SD卡启动Linux的方式
- 使用四字节命令读写256Mb QSPI Flash
- Zynq Qspi控制器应用笔记
- zynq QSPI启动速度优化
- ZYNQ 7000 MicroZED通过QSPI启动linux内核(不需要SD卡)
- Petalinux boot from QSPI flash
- zynq的三种启动方式(JTAG,SD,QSPI)
- zynq的三种启动方式(JTAG,SD,QSPI)
- zynq的三种启动方式(JTAG,SD,QSPI)
- zynq的三种启动方式(JTAG,SD,QSPI)
- 最小路径和
- Spring boot 遇到前端报错Access-Control-Allow-Origin 跨域问题
- random随机数demo小游戏
- git丶Git Submodule管理项目子模块
- 25个必须知道的ssh命令
- zynq 7000下读写qspi 及flash 唯一id
- 原生JS实现无缝轮播图
- 微信小程序教学第三章(含视频):小程序中级实战教程:列表-页面逻辑处理
- awesome java(第三方java框架、类库和软件大全)
- 我所理解的Android模块化(一)——模块化概念和路由
- JProfiler远程监控Linux上Tomcat的安装过程细讲(步骤非常详细!!!)
- Note-英语语法之动词时态
- 第五章编程题
- 在学习Mybatis时遇见的问题 org.apache.ibatis.exceptions.PersistenceException: