当前位置: 首页 > news >正文

【RK3568+PG2L50H开发板实验例程】Linux部分/FPGA FSPI 通信案例

本原创文章由深圳市小眼睛科技有限公司创作,版权归本公司所有,如需转载,需授权并注明出处(www.meyesemi.com)

1. 简介

本案例旨在 ARM端运行 Linux系统,基通过 FSPI测试。

2. ARM端和 FPGA端通信流程

(1)ARM端实现SPI Master功能

打开 SPI设备节点:打开/dev/spidev4.0设备节点。

配置 FSPI总线:使用 ioctl命令配置 FSPI总线的极性、相位、通信速率和数据长度等参数。

选择传输模式:可以选择单线模式、双线模式或四线模式。当设置为四线模式时,数据的发送和接收都将采用四线模式。本案例仅支持四线模式。

数据传输:将数据发送至 FSPI总线,并从 FSPI总线读取数据。

校验数据:校验传输的数据,然后打印出读写速率和误码率。

(2) FPGA端实现 SPI Slave功能

数据存储:FPGA将 SPI Master发送的数据保存至 DRAM。

数据读取:当 SPI Master发起读数据请求时,FPGA从 DRAM读取数据,并通过 FSPI总线传输至 SPI Master。

3.操作流程

打开终端,将本案例 bin目录下( 05-开发资料 \软件开发资料\linux_demo\mes_fpga_fspi_demo\bin)的可执行程序 mes_spi_rw拷贝至开发板文件系统(源码可以在 src路径下查看)。

 #修改 Linux内核日志的显示级别,内核的日志级别被设置为只显示紧急或更高级别的消息

echo 1 4 1 7 > /proc/sys/kernel/printk

在终端执行如下指令,切换到 mes_fpga_fspi_demo可执行程序所在目录

#切换到 mes_fpga_fspi_demo可执行程序所在目录

cd ‘可执行文件所在目录’

#查看 mes_spi_rw是否在该目录下

ls

若可执行文件 mes_spi_rw在当前目录下,则修改可执行文件的权限

#修改文件权限

chmod 777 mes_spi_rw

#查询是否修改成功

ls -ld mes_spi_rw

查询确认文件修改权限成功后,执行 ./mes_spi_rw -h可以查看该程序的帮助信息#查看帮助信息

./mes_spi_rw -h

执行结果如下图:

从上图可知,本次实测写速率为 5.81 MB/s,读速率为 10.5 MB/s,误码率为 0.00%。

(2)性能测试

进行性能测试时,需要将 FSPI总线的通信时钟频率设置至 150MHz。在此设置下,

ARM将通过 FSPI总线向 FPGA的 DRAM写入 1MB的随机数据,随后读取这些数据,并重复此过程 100次。测试过程中不进行数据校验,最终将输出 FSPI总线的读写速度和错误率。执行结果如下图。本案例设计一次读写 2048Byte随机数据至 FPGA DRAM,因此误码率较高。

./mes_spi_rw -d /dev/spidev4.0 -s 150000000 -OH -m 3 -S 1048576 -c 1

http://www.dtcms.com/a/265565.html

相关文章:

  • 【机器学习深度学习】什么是下游任务模型?
  • laravel基础:php artisan make:model Flight --all 详解
  • 【PaddleOCR】OCR文本检测与文本识别数据集整理,持续更新......
  • 【QT】QWidget控件详解 || 常用的API
  • 蓝桥杯C++组算法知识点整理 · 考前突击(中)【小白适用】
  • Java调用百度地图天气查询服务获取当前和未来天气-以贵州省榕江县为例
  • 【字节跳动】数据挖掘面试题0006:SVM(支持向量机)详细原理
  • JVM类加载过程
  • 车载电子电气架构 --- 从车窗演进看车联网的需求、发展与选择
  • 2025年游戏鼠标推荐,游戏鼠标推荐,打CSGO(罗技、雷蛇、卓威、ROG、漫步者、赛睿、达尔优)
  • 前端-HTML-day2
  • 从生活实例看:点积、内积和矩阵乘法如何玩转机器学习
  • 物联网MQTT协议与实践:从零到精通的硬核指南
  • I/O 进程 7.2
  • Mysql锁机制与优化实践以及MVCC底层原理剖析
  • TensorFlow 安装使用教程
  • 6. 常见K线形态(楔形与旗形)
  • Laravel8中调取腾讯云文字识别OCR
  • 中文语境下的视频生成革命:百度 MuseSteamer 的“产品级落地”启示录
  • 手机内存融合是什么意思
  • Redis 的特性、工作机制与性能优化全解(含搭建实战教程)
  • 用 vLLM 在两张 RTX 3090 上部署 Qwen2.5-14B BF16全量大模型的完整过程
  • 替换springboot打好jar包中的class文件
  • Python 异步爬虫(aiohttp)高效抓取新闻数据
  • 前端开发中的 Base64 图片革命:从链接到嵌入的性能优化
  • Go爬虫实时性能监控方案
  • 利用人名语言分类案例演示RNN、LSTM和GRU的区别(基于PyTorch)
  • 【学习线路】机器学习线路概述与内容关键点说明
  • git 中删除提交历史
  • 闲庭信步使用SV搭建图像测试平台:第二十七课——图像的腐蚀