【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.pswp.cn/news/912956.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/912956.shtml
英文地址,請注明出處:http://en.pswp.cn/news/912956.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

github如何創建一個自己的倉庫保姆級教程

文章目錄 準備階段(github官網)添加ssh公鑰添加token創建倉庫 本地設置本地代理創建倉庫添加文件到倉庫進行提交 準備階段(github官網) 添加ssh公鑰 創建SSH KEY。先看一下你C盤用戶目錄下有沒有.ssh目錄,有的話看下里面有沒有id_rsa和id_rsa.pub這兩個文件&#…

LabVIEW 網絡流通信功能

LabVIEW 的網絡流技術實現主機 VI(Host VI)與客戶端 VI(ClientVI)間的雙向數據交互,包含命令發送與波形數據傳輸,支持跨設備、跨進程的實時通信,滿足分布式系統中數據交互與控制需求。 主機 VI邏…

Prompt 精通之路(一)- AI 時代的新語言:到底什么是 Prompt?為什么它如此重要?

AI 時代的新語言:到底什么是 Prompt?為什么它如此重要? 標簽: #Prompt新手指南 #提示詞入門 #AI指令 #人工智能 #ChatGPT 🚀 Prompt 精通之路:系列文章導航 第一篇:AI 時代的新語言&#xff1a…

uniapp 滾動tab

uniapp woui unibest <route lang"json5">{style: {navigationBarTitleText: 知識產權,navigationBarBackgroundColor: #C80F06,navigationBarTextStyle: white,backgroundColorTop: #C80F06,},} </route> <template><view class"bgc-b …

日事清駕駛艙模式上線:實時數據更新+項目管理+數據可視化,提升決策效率?

大家好&#xff01;我們在日事清最新更新中推出了一個令人激動的新功能——駕駛艙模式。這一全新界面將為企業管理者和團隊提供一個全面、實時的數據展示平臺。下面&#xff0c;讓我們詳細了解這個功能如何幫助您更好地把握企業動態和提升決策效率。 快速入口&#xff1a;一鍵激…

【Maven】Maven深度避坑指南:依賴沖突全維度解決方案與工業級實戰(超萬字解析)

注&#xff1a;本文基于50大型企業級項目經驗&#xff0c;結合Maven底層源碼機制&#xff0c;系統化解決依賴沖突問題。包含20個實戰場景、10類特殊案例及5大防御體系構建方案。 Maven深度避坑指南&#xff1a;依賴沖突全維度解決方案與工業級實戰&#xff08;超萬字解析&#…

Rust Web 全棧開發(二):構建 HTTP Server

Rust Web 全棧開發&#xff08;二&#xff09;&#xff1a;構建 HTTP Server Rust Web 全棧開發&#xff08;二&#xff09;&#xff1a;構建 HTTP Server創建成員包/庫&#xff1a;httpserver、http解析 HTTP 請求HTTP 請求的構成構建 HttpRequest 構建 HTTP 響應HTTP 響應的構…

小架構step系列01:小架構初衷

1 概述 小公司做業務服務&#xff0c;需要聚焦到實際的業務上&#xff0c;盡快通過業務服務客戶&#xff0c;給客戶創建價值&#xff0c;公司才能生存下去。在技術上采用的Web應用架構具備以下特點&#xff1a; 主要由開源組件組裝而成。這樣既可以節省成本&#xff0c;也可以把…

蘋果AR/VR頭顯路線圖曝光,微美全息推進AI/AR智能眼鏡新品開啟視覺體驗篇章

日前&#xff0c;郭明錤發表了一篇關于蘋果&#xff08;AAPL.US&#xff09;2025-2028頭戴式產品路線圖的文章&#xff0c;里面提到蘋果正在開發涵蓋MR頭顯、AI眼鏡、AR眼鏡、Birdbath眼鏡等共計7款設備。 蘋果的頭顯設備中&#xff0c;大量出貨的產品是類似于Ray-Ban Meta的智…

python pyecharts 數據分析及可視化(2)

一、任務要求 任務二&#xff1a;感冒高發期分析 【任務說明】 感冒是一種常見的急性上呼吸道病毒性感染性疾病&#xff0c;多由鼻病 毒、副流感病毒、呼吸道合胞病毒、埃可病毒、柯薩奇病毒、冠狀病 毒、腺病毒等引起。臨床表現為鼻塞、噴嚏、流涕、發熱、咳嗽、頭 痛等&#…

React自學 基礎一

React基礎 React 是一個由 Facebook&#xff08;現 Meta&#xff09;開發并維護的、開源的 JavaScript 庫&#xff0c;主要用于 構建用戶界面&#xff08;UI&#xff09;&#xff0c;尤其是單頁面應用程序中的動態、交互式界面。 簡單示例&#xff1a; import React, { useSt…

PHP語法基礎篇(八):超全局變量

超全局變量是在 PHP 4.1.0 中引入的&#xff0c;并且是內置變量&#xff0c;可以在所有作用域中始終可用。 PHP 中的許多預定義變量都是"超全局的"&#xff0c;這意味著它們在一個腳本的全部作用域中都可用。在函數或方法中無需執行 global $variable; 就可以訪問它們…

NumPy-核心函數concatenate()深度解析

NumPy-核心函數concatenate深度解析 一、concatenate()基礎語法與核心參數函數簽名與核心作用基礎特性&#xff1a;形狀匹配規則 二、多維數組拼接實戰示例1. 一維數組&#xff1a;最簡單的序列拼接2. 二維數組&#xff1a;按行與按列拼接對比按行拼接&#xff08;垂直方向&…

aws(學習筆記第四十八課) appsync-graphql-dynamodb

aws(學習筆記第四十八課) appsync-graphql-dynamodb 使用graphql來方便操作dynamodb 理解graphql中的graphql api&#xff0c;schema&#xff0c;resolver 學習內容&#xff1a; graphqlgraphql apischemaresolver 1. 代碼連接和修改 1.1 代碼鏈接 代碼鏈接&#xff08;app…

關于微前端框架micro,子應用設置--el-primary-color失效的問題

設置了manualChunks導致失效,去掉即可,比較小眾的問題 下面是deepseek的分析 關于 manualChunks 導致 Element Plus 主題變量失效的問題 你找到的確實是問題的關鍵所在。這個 manualChunks 配置影響了 Element Plus 樣式和變量的加載順序&#xff0c;從而導致主題變量失效。…

MySQL 學習 之 你還在用 TIMESTAMP 嗎?

目錄 1. 弊端1.1. 取值范圍1.2. 時區依賴1.3. 隱式轉換 2. 區別3. 解決 1. 弊端 1.1. 取值范圍 TIMESTAMP 的取值范圍為 1970-01-01 00:00:01 UTC 到 2038-01-19 03:14:07 UTC&#xff0c;超出范圍的數據會被強制歸零或觸發異常?。 具體表現為在基金債券等業務中&#xff0…

java中字節和字符有何區別,為什么有字節流和字符流?

在Java中&#xff0c;字節&#xff08;byte&#xff09;和字符&#xff08;char&#xff09;是兩種不同的數據類型&#xff0c;它們的主要區別在于所表示的數據單位、用途以及編碼方式,字節流和字符流的區分就是為了解決編碼問題。 字節&#xff08;byte&#xff09;&#xff…

伴隨矩陣 線性代數

伴隨矩陣的定義 伴隨矩陣的作用是什么&#xff1f;我們可以看到其伴隨矩陣乘上自己等于一個數&#xff08;自身的行列式&#xff09;乘以E&#xff0c;所以對于一個方陣來說&#xff0c;其逆矩陣就是自己的伴隨矩陣的倍數。 所以說伴隨矩陣的作用就是用來更好的求解逆矩陣的。…

百勝軟件獲邀走進華為,AI實踐經驗分享精彩綻放

在數字化浪潮席卷全球的當下&#xff0c;零售行業正經歷著深刻變革&#xff0c;人工智能技術成為重塑行業格局的關鍵力量。6月26日&#xff0c;“走進華為——智領零售&#xff0c;AI賦能新未來”活動在華為練秋湖研發中心成功舉辦。百勝軟件作為數字零售深耕者&#xff0c;攜“…

六種扎根理論的編碼方法

一、實境編碼 1.概念&#xff1a;實境編碼是一種基于參與者原生語言的質性編碼方法&#xff0c;其核心在于直接采用研究對象在訪談、觀察或文本中使用的原始詞匯、短語或獨特表達作為分析代碼。該方法通過保留數據的"原生態"語言形式&#xff08;如方言、隱喻、習慣用…