原创声明:

本原创教程由芯驿电子科技(上海)有限公司(ALINX)创作,版权归本公司所有,如需转载,需授权并注明出处。

适用于板卡型号:

AXU2CGA/AXU2CGB/AXU3EG/AXU4EV-E/AXU4EV-P/AXU5EV-E/AXU5EV-P /AXU9EG/AXU15EG

vivado工程目录为“ps_hello/vivado”

vitis工程目录为“ps_sd/vitis”

本章介绍使用FatFs文件系统模块读取SD卡的BMP图片,并通过DP显示。

1. FatFs简介

FatFs是一个通用的文件系统模块,用于在小型嵌入式系统中实现FAT文件系统。FatFs的编写遵循 ANSI C,因此不依赖于硬件平台。它可以嵌入到便宜的微控制器中,如 8051, PIC, AVR, SH, Z80, H8, ARM等等,不需要做任何修改。

应用程序通过API函数来调用FatFs系统模块,从而来控制SD卡这些存储设备。

FatFs 系统提供了很多 API 函数,我们在下面列举了以下我们例程中会用的的 API 函数。

f_mount - 注册/注销一个工作区域(Work Area)

f_open - 打开/创建一个文件

f_close - 关闭一个文件

f_read - 读文件

f_write - 写文件

关于 API 函数的介绍和说明,大家可以参考以下的网站进行更深一步的了解,这个网站上

给出来了每个 API 函数的使用说明和例子。

http://elm-chan.org/fsw/ff/00index_e.html

2. Vitis程序开发

1)打开Vitis软件,我们已经为大家生成了一个sd_bmp的工程。这里需要配置BSP支持包的属性,在Board Support Package Settings里选择xilffs项,使能项目支持xilffs文件系统。

关于xilffs库是Xilinx提供的FAT文件系统支持包,用户可以调用库里的API函数实现对

SD/eMMC等设备的操作。xilffs库里主要包含FAT的文件系统(File System Files)和驱动层文件(Glue Layer Files)。

2) 关于xilffs库的介绍和应用,大家可以参考以下Xilinx官网链接:

http://www.wiki.xilinx.com/xilffs

3) 接下来我们来看sd_bmp的工程代码。在工程代码里,我们需要把 SD 卡里存储的 bmp格式的图像数据读出来,去掉图像头后放到DP的显示缓冲区中,然后实现图像在DP显示器的显示。

4)在bmp.c 文件里,我们添加了一个 bmp_read 的函数,在这个函数里首先用f_open函数打开一个 SD 卡里的bmp的图片文件。然后读取这个文件的前面 54 个字节,因为BMP图像文件的前面54个字节为图像头文件,里面包含了图像的像素大小信息。再一行一行的读取图像数据存到DP的 frame 显示缓冲区中。

由于BMP的存储是上下颠倒的,因此在bmp_read函数中调整了顺序,存入frame缓存区。

5)同时我们也准备了BMP文件头结构体,以及一些常用分辨率的图像头设置,放在bmp.h文件中。

6) 结合之前小猫图片的显示,将小猫图片保存成bmp格式,保存到SD卡里,在bmp_write函数中,结合bmp头和bmp数据,保存到SD卡。

7) 在main函数里,调用bmp_read函数实现一副图像从SD卡读取到DP显示缓冲的存储,这里的 BMP 图像的文件名1.bmp需要和存储在SD卡里的文件名一样。用bmp_write,将小猫图片写入SD卡。

3.板上验证

1) 首先需要先存一副1920*1080像素,24bit的BMP文件到SD卡里,文件名为1.bmp(文件在工程目录下),开发板断电情况下,把SD卡插入卡座里。

2) 开发板连接DP显示器,然后上电,下载程序运行之后我们可以在DP显示器上显示SD卡里存储的1.bmp文件的图像。

3) 之后可将开发板断电,将SD卡插到电脑上,可以看到多了CAT.BMP

【ZYNQ Ultrascale+ MPSOC FPGA教程】第二十四章 PS端SD卡读写相关推荐

  1. 【ZYNQ Ultrascale+ MPSOC FPGA教程】第四章 PL的LED实验

    原创声明: 本原创教程由芯驿电子科技(上海)有限公司(ALINX)创作,版权归本公司所有,如需转载,需授权并注明出处. 适用于板卡型号: AXU2CGA/AXU2CGB/AXU3EG/AXU4EV-E ...

  2. 【ZYNQ Ultrascale+ MPSOC FPGA教程】第十三章 RS485实验

    原创声明: 本原创教程由芯驿电子科技(上海)有限公司(ALINX)创作,版权归本公司所有,如需转载,需授权并注明出处. 适用于板卡型号: AXU2CGA/AXU2CGB/AXU3EG/AXU4EV-E ...

  3. 【ZYNQ Ultrascale+ MPSOC FPGA教程】第六章 FPGA片内RAM读写测试实验

    原创声明: 本原创教程由芯驿电子科技(上海)有限公司(ALINX)创作,版权归本公司所有,如需转载,需授权并注明出处. 适用于板卡型号: AXU2CGA/AXU2CGB/AXU3EG/AXU4EV-E ...

  4. 【ZYNQ Ultrascale+ MPSOC FPGA教程】第二十一章 PS端UART读写控制

    原创声明: 本原创教程由芯驿电子科技(上海)有限公司(ALINX)创作,版权归本公司所有,如需转载,需授权并注明出处. 适用于板卡型号: AXU2CGA/AXU2CGB/AXU3EG/AXU4EV-E ...

  5. 【ZYNQ Ultrascale+ MPSOC FPGA教程】第一章 MPSoC芯片介绍

    原创声明: 本原创教程由芯驿电子科技(上海)有限公司(ALINX)创作,版权归本公司所有,如需转载,需授权并注明出处. 适用于板卡型号: AXU2CGA/AXU2CGB/AXU3EG/AXU4EV-E ...

  6. 【ZYNQ Ultrascale+ MPSOC FPGA教程】第二章 硬件原理图介绍

    原创声明: 本原创教程由芯驿电子科技(上海)有限公司(ALINX)创作,版权归本公司所有,如需转载,需授权并注明出处. 简介 AXU2CGA/B的特点是体积小并扩展了丰富的外设.主芯片采用Xilinx ...

  7. 【ZYNQ Ultrascale+ MPSOC FPGA教程】第三十二章 PL读写PS端DDR数据

    本原创教程由芯驿电子科技(上海)有限公司(ALINX)创作,版权归本公司所有,如需转载,需授权并注明出处. 适用于板卡型号: AXU2CGA/AXU2CGB/AXU3EG/AXU4EV-E/AXU4E ...

  8. 【ZYNQ Ultrascale+ MPSOC FPGA教程】第二十三章 PS端DP的使用

    原创声明: 本原创教程由芯驿电子科技(上海)有限公司(ALINX)创作,版权归本公司所有,如需转载,需授权并注明出处. 适用于板卡型号: AXU2CGA/AXU2CGB/AXU3EG/AXU4EV-E ...

  9. 【ZYNQ Ultrascale+ MPSOC FPGA教程】第二十章 PS端RTC中断实验

    原创声明: 本原创教程由芯驿电子科技(上海)有限公司(ALINX)创作,版权归本公司所有,如需转载,需授权并注明出处. 适用于板卡型号: AXU2CGA/AXU2CGB/AXU3EG/AXU4EV-E ...

最新文章

  1. RHEL/CentOS/OEL5/6.x高危漏洞修补
  2. 【运维】使用FC命令辅助查杀DLL木马
  3. mysql解释的type_mysql explain 的type解释
  4. wxWidgets:wxDatePickerCtrl类用法
  5. 04数据库的高级查询
  6. 【学习】024 springCloud
  7. 用 Node.js 把玩一番 Alfred Workflow
  8. vue中的事件绑定v-on指令
  9. 情人节程序员用HTML网页表白【生日祝福】 HTML5生日祝福网页源码 HTML+CSS+JavaScript
  10. 发生致命事故8个月后,优步被获准在匹兹堡恢复自动驾驶测试
  11. 【家庭网络】申请安装移动宽带过程及简单建议
  12. 亿阳信通图像处理工程师
  13. 网络数据爬取实例教程
  14. Debian没有reboot命令
  15. 轮播图动画滑动动画效果
  16. [高效学习]之1学习金字塔
  17. P3265 [JLOI2015] 线性基
  18. Python 视频转换为图片 与 图片转换为视频
  19. 链路聚合技术及其配置
  20. [PHP] 2018年终总结

热门文章

  1. 【游戏编程扯淡精粹】EASTL源码阅读
  2. (转载)HTTP超文本传输协议-HTTP/1.1中文版
  3. 【c++】判断子矩阵
  4. LPC1788实现10ms单位的计数器
  5. linux社区的java坦克大战,Java编程:坦克大战游戏的设计
  6. GEE数据集——MOD13Q1.061 大地植被指数 16天 全球250m
  7. 差异表达基因热图怎么看_画图专题 | 热图函数pheatmap()
  8. 用关键词获取商品详情和商品ID
  9. 建立计算机科学系的学生视图,、为计算机专业的学生创建一个视图,要求包括学号、姓名、专业、课程名称、成绩等列,设置W...
  10. PDF--软件操作大全