本例程实现读取EMMC和SD卡的扇区,RFSOC开发板的SD卡引脚绑定在PS端,而EMMC硬件引脚绑定在PL端,所以需要将EMMC的引脚绑定到EMIO,并且添加对应的引脚约束文件。最后在vitis中实现读写EMMC和SD卡扇区的程序。
本例程在第一篇hello_world的项目基础上进行修改。打开hello_world项目,打开设计文件-->打开zynq配置-->添加SD0的配置,设置为EMIO,eMMC,8bit。设置完成后点击OK保存配置。
|
|
|
修改vivado配置图 |
单击多出来的SDIO_0引脚,使用快捷键CTRL+T,将EMIO的EMMC引脚引出。
|
|
|
引出EMMC的EMIO引脚图 |
右键设计文件-->重新生成顶层文件。
|
|
|
重新顶层文件图 |
选择可修改的文件。
|
|
|
设置顶层为可修改文件图 |
打开新生成的顶层文件-->修改文件内容如图所示,注意只需要修改红框中的内容,其它无需修改。
|
|
|
修改顶层文件图 |
添加引脚约束文件,
|
|
|
添加引脚约束文件图 |
新建引脚约束文件-->设置名称,点击OK和finish完成创建。
|
|
|
新建引脚约束文件图 |
打开创建的引脚约束文件,修改内容如下所示。引脚约束文件会放入项目目录中的File文件夹中。
|
|
|
修改引脚约束文件图 |
修改完成后生成bit文件。
|
|
|
生成BIT文件图 |
删除之前hello_world项目中的vitis文件夹。
|
|
|
删除旧项目的vitis文件夹图 |
导出XSA文件。
|
|
|
导出vitis文件图 |
导出XSA文件地址在默认的基础上添加vitis路径。此步骤会自动创建vitis目录。
|
|
|
选择XSA文件保存地址图 |
打开vitis
|
|
|
打开vitis软件图 |
地址选择与导出的XSA文件相同,点击Launch打开项目。
|
|
|
选择vitis项目地址图 |
创建平台项目-->设置名称。
|
|
|
创建平台项目图 |
选择导出的XSA文件-->完成创建。
|
|
|
选择使用导出XSA文件创建项目图 |
选择项目-->编译。
|
|
|
编译平台项目图 |
创建新的项目。
|
|
|
创建vitis新项目图 |
选择Hello world历程-->完成创建。
|
|
|
选择创建项目模板图 |
修改helloworld.c中的内容如下图所示,helloworld.c文件也会提供在项目目录中的File文件夹中。
|
|
|
修改vitis代码并编译图 |
在上述代码中第8行定义的EMMC1_SD0,为选择读写测试EMMC或是SD卡,其值设置为1表示测试EMMC读写扇区测试,设置为0表示测试SD卡。注意每次修改后需要保存并编译。
由于本例程需要使用扇区的方式读写SD卡,打乱其中的文件格式,所以使用JTAG在线运行的方式实验本历程,将开发板的启动模式设置为JTAG模式,插入SD卡,JTAG接口和电源。此开发板的串口是与JTAG用的是同一个USB,内部集成了一个usb hub芯片。所以插上JTAG后也会识别出两个串口,使用串口助手软件分别打开两个串口,等待接收数据。
|
|
|
RFSOC实物图 |
设置在线运行环境,右键项目-->Run As--> Run Configurations...
|
|
|
设置在线运行环境图 |
选择SystemDebugger_rw_emmc_sd_system-->Target Setup-->Browse...-->Apply-->Run。设置完成后会烧写bit文件,运行程序。
|
|
|
添加bit文件并运行图 |
查看串口打印内容可以显示出写入并读取后的数据。
|
|
|
EMMC读写串口打印内容图 |
可以修改EMMC1_SD0的定义,修改为0测试SD卡。
|
|
|
修改代码为SD卡读写编译图 |
编译完成后右键项目-->Run As-->1 Launch Hardware。重新运行程序查看查看输出内容。
|
|
|
SD卡读写在线运行图 |
可以看到串口打印内容相同。
|
|
|
SD卡读写串口运行图 |
可以拔出SD卡进行测试,串口打印内容如下图所示,可以看到在初始化的阶段报错。
|
|
|
拔出SD卡测试图 |
到此本历程就结束了,该例程展示了如何在RFSOC开发板上实现对EMMC和SD卡的扇区读写。其中重点在设计文件中配置SD卡和EMMC的引脚,确保EMMC引脚绑定到EMIO。添加引脚约束文件,并修改相应内容。最后,例程完成了对EMMC和SD卡的扇区读写测试,提供了串口打印的反馈。
通过网盘分享的文件:TQRFSOC开发板47DR,EMMC和SD卡扇区读写
链接: https://pan.baidu.com/s/1zINbTSryghtMw5cuoCaQ9Q 提取码: an42
--来自百度网盘超级会员v9的分享
压缩包中共有两个文件:
file文件夹内包含引脚约束文件以及hello_world.c文件
RW_EMMC_SD.rar压缩包内是完整的文件项目




























2297






