乔木厂家
免费服务热线

Free service

hotline

010-00000000
乔木厂家
热门搜索:
行业资讯
当前位置:首页 > 行业资讯

Zedboard使用评测HDMI显示与SD读取

发布时间:2020-07-21 19:25:02 阅读: 来源:乔木厂家

上次搭好了硬件平台,后面立马开始了软件方面的调试。

本文引用地址:因为以前做的都是些用HDL做过显示,比如VGA,以及最近用FPGA做的LVDS屏的显示。其工作原理的就是讲数据写入到显存(DRAM)中,然后再按照行场模式或者是使能DE模式读出DRAM中的数据,按照屏的显示时序,发送给屏完成显示。

具体的功能框图如下:

ZYNQ作为整个系统的控制核心,提供HDMI的显示数据,以及时读写显存的控制,以及DDC的数据产生。PL部分主要是ADV7511的控制,还有将24bit的RGB数据转换为16bit的YCBCR422的数据发送给ADV7511

EDK中的数据到显存的函数如下:

#define img_length 2073600 //1920*1080

void ddr_video_wr(u32 write_addr){

u32 n; u32 dcnt; dcnt = 0; xil_printf(DDR write start:nr); for (n=0; n img_length; n++){ Xil_Out32((write_addr+(dcnt*4)),write_data); //RGB dcnt = dcnt + 1; } Xil_DCacheFlush(); xil_printf(DDR write: completed (total %d)nr, dcnt);}说明:write_data的数据位十六进制的RGB数据的组合。整个一幅图片的RGB值的大小为1920*1080的数据。因为此时没有存取数据的地方,所以测试的图片显示的时候,将write_data 设定为固定值,让全篇显示红色的背景。当时的设想是从SD卡中国读取过数据,毕竟以前用HDL语言做过读取SD的数据,实际上就是把他单过flah来操作。于是在zynq_fsbl/src/下看到了关于SD卡两个文件,sd.c以及sd.h在SD.C中看到了能使用的3个函数,如下:itSD(char *filename) 功能是读取sd中的指定的文件2.u32 SDAccess( u32 SourceAddress,u32 DestinationAddress,u32 LengthWords); 功能就是讲原地的数据,复制一定长度的数据到目的地址。算作读数据。id ReleaseSD(void); 功能就是算作释放掉SD卡操作完成。于是就想用来试试看,新建了一个功能,当然还是用14.2.程序如下:#include stdio.h>#include platform.h#include sd.h#include xbasic_oid xil_printf( const char *ctrl1, ...);int main(){ u32 data; init_platform(); InitSD(“n”); xil_printf(@@read n success!@@@); cleanup_platform(); return(0);};功能就是读取SD卡文件中的n的文件。记过一编译就开始缺少文件,然后我就在电脑里找啊找,找了7.8文件的.h到目前为止还剩下ff.h下的integer.h还没找到。我想既然能从SD卡boot启动,应该可以自己操作SD卡,可是遇到这文件找不到,一切都没辙了。上次AET提醒过14.2容易少静态库,这次编译的时候特地选上所有standalone。

石家庄隆胸医院

长沙隆鼻修复

西安面部填充

长春热玛吉医院

相关阅读