日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
MPU3050Linux驅(qū)動(dòng)詳解(mpu3050linux驅(qū)動(dòng))

MPU3050是一款低功耗數(shù)字運(yùn)動(dòng)處理器,可以實(shí)現(xiàn)高性能陀螺儀功能,廣泛應(yīng)用于移動(dòng)設(shè)備、慣性導(dǎo)航和運(yùn)動(dòng)控制等領(lǐng)域。在Linux操作系統(tǒng)中,MPU3050的驅(qū)動(dòng)程序是必不可少的,本文將對(duì)MPU3050 Linux驅(qū)動(dòng)進(jìn)行詳細(xì)介紹。

站在用戶的角度思考問題,與客戶深入溝通,找到白堿灘網(wǎng)站設(shè)計(jì)與白堿灘網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類型包括:成都網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)、外貿(mào)網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、主機(jī)域名、虛擬空間、企業(yè)郵箱。業(yè)務(wù)覆蓋白堿灘地區(qū)。

一、MPU3050概述

MPU3050是InvenSense公司推出的一款運(yùn)動(dòng)處理器,具有高精度的陀螺儀和加速度計(jì)功能,功耗低、精度高、體積小,因此被廣泛應(yīng)用于移動(dòng)設(shè)備、導(dǎo)航儀、運(yùn)動(dòng)控制等領(lǐng)域。MPU3050采用SPI總線接口,并能夠輸出完整的測(cè)量數(shù)據(jù),便于系統(tǒng)開發(fā)和應(yīng)用。

二、MPU3050 Linux驅(qū)動(dòng)架構(gòu)

MPU3050在Linux操作系統(tǒng)中的驅(qū)動(dòng)程序包括三個(gè)部分:硬件驅(qū)動(dòng)、平臺(tái)驅(qū)動(dòng)和設(shè)備驅(qū)動(dòng)。

硬件驅(qū)動(dòng):負(fù)責(zé)與MPU3050之間的SPI通信。在Linux中,SPI設(shè)備通常由硬件設(shè)備驅(qū)動(dòng)程序來實(shí)現(xiàn),MPU3050在這里并沒有特殊之處。硬件驅(qū)動(dòng)程序包括了通過SPI總線與MPU3050進(jìn)行通信的底層代碼。

平臺(tái)驅(qū)動(dòng):提供了對(duì)設(shè)備進(jìn)行配置和管理的接口,將MPU3050進(jìn)行初始化、打開和關(guān)閉等操作。平臺(tái)驅(qū)動(dòng)程序采用Linux中提供的Standard Linux Driver Model(LDM)框架實(shí)現(xiàn),主要包括設(shè)備樹、設(shè)備模擬器和平臺(tái)數(shù)據(jù)。

設(shè)備驅(qū)動(dòng):負(fù)責(zé)解析MPU3050的測(cè)量數(shù)據(jù)并進(jìn)行處理,將其轉(zhuǎn)換為用戶應(yīng)用程序可以使用的格式。同時(shí),設(shè)備驅(qū)動(dòng)程序還負(fù)責(zé)與用戶空間應(yīng)用程序進(jìn)行通信,將測(cè)量數(shù)據(jù)傳輸給應(yīng)用程序。

三、MPU3050 Linux驅(qū)動(dòng)實(shí)現(xiàn)過程

1.硬件驅(qū)動(dòng)

硬件驅(qū)動(dòng)程序可以分為四個(gè)部分:設(shè)備初始化、IO操作函數(shù)、設(shè)備打開函數(shù)和設(shè)備關(guān)閉函數(shù)。設(shè)備初始化函數(shù)負(fù)責(zé)將MPU3050進(jìn)行初始化,IO操作函數(shù)與MPU3050進(jìn)行通信,設(shè)備打開和關(guān)閉函數(shù)則負(fù)責(zé)打開和關(guān)閉硬件設(shè)備。

2.平臺(tái)驅(qū)動(dòng)

平臺(tái)驅(qū)動(dòng)程序首先需要從設(shè)備樹中獲取MPU3050的相關(guān)信息,包括設(shè)備節(jié)點(diǎn)的名稱、傳輸速率和工作模式等。然后根據(jù)這些信息對(duì)MPU3050進(jìn)行初始化,并將初始化結(jié)果返回給設(shè)備驅(qū)動(dòng)程序。

設(shè)備模擬器提供了MPU3050的虛擬環(huán)境,用于測(cè)試MPU3050驅(qū)動(dòng)程序的正確性。平臺(tái)數(shù)據(jù)則是在MPU3050驅(qū)動(dòng)程序中使用的全局變量。

3.設(shè)備驅(qū)動(dòng)

設(shè)備驅(qū)動(dòng)程序需要實(shí)現(xiàn)若干個(gè)函數(shù),包括設(shè)備驅(qū)動(dòng)綁定函數(shù)、設(shè)備打開函數(shù)、設(shè)備關(guān)閉函數(shù)、設(shè)備控制函數(shù)和數(shù)據(jù)讀取函數(shù)。在設(shè)備驅(qū)動(dòng)綁定函數(shù)中,將設(shè)備驅(qū)動(dòng)程序與硬件設(shè)備和平臺(tái)驅(qū)動(dòng)程序進(jìn)行綁定。設(shè)備打開和關(guān)閉函數(shù)負(fù)責(zé)打開和關(guān)閉設(shè)備,設(shè)備控制函數(shù)用于控制MPU3050的工作模式和采樣速率等參數(shù),數(shù)據(jù)讀取函數(shù)則讀取MPU3050的測(cè)量數(shù)據(jù)并進(jìn)行解析和處理。

四、MPU3050 Linux驅(qū)動(dòng)程序的應(yīng)用

MPU3050 Linux驅(qū)動(dòng)程序的應(yīng)用可以分為兩個(gè)方面:設(shè)備驅(qū)動(dòng)程序的調(diào)試和用戶空間應(yīng)用程序的開發(fā)。

1.設(shè)備驅(qū)動(dòng)程序的調(diào)試

設(shè)備驅(qū)動(dòng)程序的調(diào)試是MPU3050 Linux驅(qū)動(dòng)程序開發(fā)的重要環(huán)節(jié)。在調(diào)試過程中,需要使用設(shè)備模擬器和開發(fā)板進(jìn)行測(cè)試,包括測(cè)試設(shè)備打開和關(guān)閉功能、數(shù)據(jù)解析和處理功能等方面。

2.用戶空間應(yīng)用程序的開發(fā)

用戶空間應(yīng)用程序可以使用MPU3050 Linux驅(qū)動(dòng)程序提供的API函數(shù),獲取MPU3050的測(cè)量數(shù)據(jù)并進(jìn)行處理和應(yīng)用。用戶空間應(yīng)用程序可以使用C語言或其他高級(jí)語言進(jìn)行開發(fā),例如Python、Java等。

五、

MPU3050 Linux驅(qū)動(dòng)程序的實(shí)現(xiàn)和應(yīng)用,是一個(gè)復(fù)雜而有趣的過程。在開發(fā)過程中,需要掌握Linux操作系統(tǒng)和SPI總線協(xié)議的相關(guān)知識(shí),并熟悉設(shè)備驅(qū)動(dòng)程序的開發(fā)流程和技巧。同時(shí),需要進(jìn)行大量的調(diào)試測(cè)試,確保MPU3050 Linux驅(qū)動(dòng)程序的穩(wěn)定性和可靠性。

成都網(wǎng)站建設(shè)公司-創(chuàng)新互聯(lián),建站經(jīng)驗(yàn)豐富以策略為先導(dǎo)10多年以來專注數(shù)字化網(wǎng)站建設(shè),提供企業(yè)網(wǎng)站建設(shè),高端網(wǎng)站設(shè)計(jì),響應(yīng)式網(wǎng)站制作,設(shè)計(jì)師量身打造品牌風(fēng)格,熱線:028-86922220

DE-10 Standard HPS SOC和FPGA聯(lián)合使用例程

在開始本教程之前,請(qǐng)注意演示項(xiàng)目準(zhǔn)備需要以下內(nèi)容:

在Intel SoC FPGA中,HPS邏輯與FPGA結(jié)構(gòu)通過AXI(Advanced eXtensible Interface)橋進(jìn)行連接。為了實(shí)現(xiàn)HPS邏輯與FPGA 結(jié)構(gòu)的通信,需要通過使用Intel系統(tǒng)集成工具Qsys添加HPS組件來進(jìn)行系統(tǒng)設(shè)計(jì)。從HPS組件的AXI主端口,HPS可以訪問那些連接到AXI主端口的內(nèi)存映射從端口。

HPS包含空液襪以下HPS-FPGA AXI橋

下圖顯示了FPGA結(jié)構(gòu)和L3與HPS互連的AXI橋的框圖。每個(gè)主(M)接口和從(S)接口顯示其數(shù)據(jù)寬度。括號(hào)中標(biāo)注了每個(gè)互連的時(shí)鐘域。

HPS-to-FPGA橋由3級(jí)(L3)主開關(guān)控制,輕量級(jí)控制HPS-to-FPGA橋由L3從外圍從開關(guān)控制。

FPGA-to-HPS橋接控制L3主開關(guān),允許任何在FPGA結(jié)構(gòu)的主實(shí)現(xiàn)(implemented)去訪問在HPS中大多數(shù)從實(shí)現(xiàn)。

所有三個(gè)橋都包含全局程序員視圖GPV寄存器。GPV寄存器控制網(wǎng)橋的行為。通過輕量級(jí)的HPS-to-FPGA橋訪斗激問可以所有三個(gè)橋的GPV寄存器。

這個(gè)例程向用戶介紹了如何使用HPS/ARM與FPGA進(jìn)行通信。這個(gè)與DE10-Standard板上ARM C程序配套的GHRD工程,演示了HPS/ARM程序如何控制連接到FPGA部分的紅色LED。

術(shù)語GHRD是黃金硬件參考設(shè)計(jì)(Golden Hardware Reference Design)的簡(jiǎn)稱。友晶科技為DE10-Standard開發(fā)板提供的GRD項(xiàng)目位于CD文件夾中: CD-ROM\Demonstration\SOC_FPGA\ DE10_Standard_GHRD。

本項(xiàng)目由以下組成部分組成:

MPU所看到的SoC FPGA部分的系統(tǒng)外圍設(shè)備的內(nèi)存映射從輕量級(jí)的HPS-to-FPGA到FPGA的基礎(chǔ)地址0xFF20_0000開始。MPU可以通過Qsys中的地址偏移來訪問這些外圍設(shè)備。用戶可以打開GHRD項(xiàng)目與Quartus II軟件。然后打開soc_system。qsys文件與qsys工具。下圖列出了連接到輕量級(jí)HPS-to-FPGA的外圍設(shè)備的地址映射。

這些外設(shè)的所有Avalon引出信號(hào)( Avalon

Conduit

signals)都連接到DE10-Standard板上SoC FPGA的I/O引腳,如圖所示

在實(shí)際的應(yīng)用過程中,友晶科技提供的DE10_Standard_GHRD工程并不是十分契合我們的開發(fā)需要,這可能包括外圍設(shè)備的冗余和不足。下面為了實(shí)現(xiàn)本教程開篇所定的目標(biāo),我們需要根據(jù)DE10_Standard_GHRD工程進(jìn)行修改。其中友晶科技提供的DE10_Standard_GHRD工程實(shí)現(xiàn)的是LEDR0通過閃爍模擬板子的心跳,

LEDR1-9

按照一定頻率進(jìn)行左移右移循環(huán)閃爍60次;我們的目標(biāo)是LEDR0通過閃爍模擬板子的心跳,

LEDR1-8

按照一定頻率進(jìn)行左移右移循環(huán)閃爍60次,

LEDR9

在LEDR1-8的每一次循環(huán)后閃爍一次。可以看出,我們只需要將DE10_Standard_GHRD工程中的LEDR9的設(shè)計(jì)進(jìn)行更改就可以打到我們的目的。下面正式開始更改操作。

新建文件夾:

E:\work\Quartus\My_GHRD

,然后將DE10_Standard_GHRD工程目中的一下文件復(fù)制到工程目錄下埋薯:

因?yàn)槠渲械奈募﨑E10_Standard_GHRD.v后面將會(huì)被指定為頂層文件,所以需要將其更改為與工程名My_GHRD相同的My_GHRD.v文件,同時(shí)為了與工程名保持協(xié)調(diào),我們也將文件DE10_Standard_GHRD.sdc更改為與工程名My_GHRD相同的My_GHRD.sdc。最終工程目錄文件夾如下圖所示:

首先,建立一個(gè)名為:My_GHRD的工程。打開軟件Quartus Prime Standard Edition,點(diǎn)擊:File→New Project Wizard…,進(jìn)入工程創(chuàng)建引導(dǎo)界面。

點(diǎn)擊引導(dǎo)界面下方的:Next,進(jìn)入Directory, Name, Top-Level Entity設(shè)置界面。

點(diǎn)擊右側(cè)按鈕:…選擇你的工程目錄

E:/work/Quartus/My_GHRD

。之后設(shè)置工程名:

My_GHRD

。此時(shí)軟件將自動(dòng)把頂層設(shè)計(jì)entity name設(shè)置為工程名:

My_GHRD

。繼續(xù)點(diǎn)擊:Next,進(jìn)入Project Type設(shè)置界面。

在Project Type界面選擇:Empty Project選項(xiàng),繼續(xù)點(diǎn)擊:Next,進(jìn)入Add Files設(shè)置界面。

在Add Files設(shè)置界面,點(diǎn)擊右側(cè)按鈕:…,添加工程目錄下的文件:My_GHRD.v和soc_system.qsys以及文件夾hps_isw_handoff和ip下的所有文件進(jìn)入工程。

然后點(diǎn)擊:Next,進(jìn)入Family, Device & Board Settings設(shè)置界面。

在Family, Device & Board Settings設(shè)置界面,我們要設(shè)置我們所用的SoC FPGA型號(hào):5CSXFC6D6F31C6N。為了能夠快速鎖定我們要選擇的SoC FPGA型號(hào),我們可以點(diǎn)擊:Device下拉列表,選擇:Cyclone V SX Extended Features,以縮小選型范圍。

然后,選擇Available devices下的5CSXFC6D6F31C6。繼續(xù)點(diǎn)擊:Next,進(jìn)入EDA Tool Settings設(shè)置界面。

在EDA Tool Settings設(shè)置界面下,我們保留默認(rèn)設(shè)置。之后點(diǎn)擊:Fnish,完成工程創(chuàng)建,退出工程創(chuàng)建引導(dǎo)界面。

由于我們需要在DE10_Standard_GHRD工程的基礎(chǔ)上更改Qsys的設(shè)計(jì)來實(shí)現(xiàn)對(duì)LEDR9的單獨(dú)控制,所以我們需要在Qsys中添加一個(gè)1位的PIO端口來實(shí)現(xiàn)對(duì)LEDR9的控制,同時(shí)需要將原來用于同時(shí)控制LEDR0-9的10位PIO端口的改為9位的PIO端口。

依次點(diǎn)擊:Tools→Qsys,啟動(dòng)Qsys,之后選中要打開的soc_system.qsys文件。

此時(shí)將彈出“ PIO(Parallel I/O) ”設(shè)置界面。將PIO的數(shù)據(jù)寬度Width設(shè)置為:1,數(shù)據(jù)輸入輸出方向Direction設(shè)置為:Output。最后點(diǎn)擊右下角的Finish按鈕退出設(shè)置。

現(xiàn)在,新的Qsys設(shè)計(jì)中將會(huì)出現(xiàn)我們新添加的PIO端口pio_0,我們可以對(duì)其進(jìn)行重命名。光標(biāo)移動(dòng)到在端口名pio_0處,右鍵選擇“Rename”,重命名為:led_pio9。點(diǎn)擊空白處保存命名。

之后我們需要對(duì)led_pio9組件的信號(hào)進(jìn)行連接,將光標(biāo)放置到下圖中l(wèi)ed_pio9組件中clk信號(hào)所在行的白點(diǎn)處,點(diǎn)擊后可以將led_pio9組件中clk信號(hào)與clk_0組件的clk信號(hào)進(jìn)行連接,可以表示為:led_pio9.clk—clk_0.clk。使用類似的操作,將led_pio9組件的其它信號(hào)分別與其它組件進(jìn)行如下連接,最終的連接關(guān)系如下:

如下圖:

其中l(wèi)ed_pio9有一個(gè)信號(hào)led_pio9.external_connection需要進(jìn)行對(duì)外引出。光標(biāo)置于信號(hào)led_pio9.external_connection處右擊選擇:Connections:led_pio9.external_connection→Export as: led_pio9_external_connection。

到此,添加一個(gè)1位的PIO端口led_pio9的操作已經(jīng)完成。

接下來需要將原來控制LEDR0-9的數(shù)據(jù)寬度為10位的PIO端口led_pio更改為只用控制LEDR0-8的數(shù)據(jù)寬度為9位的PIO端口led_pio。雙擊組件led_pio,將數(shù)據(jù)寬度Width(1-32 bits)設(shè)置為:9,關(guān)閉Parameters窗口將自動(dòng)保存更改。

現(xiàn)在,我們要為我們新添加的PIO端口led_pio9分配基地址,同時(shí)更新Qsys設(shè)計(jì)中其它組件的基地址。依次點(diǎn)擊:System→Assign Base Addresses。

可以看出,至此,我們需要在Qsys設(shè)計(jì)中做的更改已經(jīng)完成了?,F(xiàn)在,只要重新生成相應(yīng)的HDL文件,更新Qsys設(shè)計(jì)就可以結(jié)束Qsys部分的設(shè)計(jì)了。但是后面對(duì)工程編譯時(shí)軟件將會(huì)輸出錯(cuò)誤提示:

Error (10228): Verilog HDL error at soc_system_sysid_qsys.v(34): module “soc_system_sysid_qsys” cannot be declared more than once。

更令人遺憾的是,目前本人還沒有找到解決上述錯(cuò)誤信息的辦法。有一個(gè)無奈的辦法就是:將Qsys設(shè)計(jì)中的soc_system_sysid_qsys組件刪除。這不會(huì)影響Qsys設(shè)計(jì)的功能,關(guān)于該組件功能的詳細(xì)介紹,讀者可以自行查找,此處不再贅述。

刪除soc_system_sysid_qsys組件的辦法是:將soc_system_sysid_qsys組件sysid_qsys的Use列方框中的“√”去掉。

之后進(jìn)行Qsys設(shè)計(jì)中的文件生成工作。點(diǎn)擊右下角的Generate HDL…按鈕。

在彈出的“Generation”窗口中,確認(rèn)Output Directory下Path所指定的生成文件的輸出目錄在工程目錄下。然后點(diǎn)擊Generate按鈕。

接下來會(huì)彈出“Save System Completed”窗口,點(diǎn)擊右下角的Close按鈕。

接下來會(huì)彈出的“Generate”窗口,等待幾分鐘,文件生成工作完成后,右下角的“Close”按鈕會(huì)高亮顯示。此時(shí),點(diǎn)擊“Close”按鈕。

最后,又會(huì)退回到Qsys設(shè)計(jì)頁面,點(diǎn)擊右下角的Finish按鈕,退出Qsys設(shè)計(jì)。

在返回Quartus Prime Standard Edition主界面后,會(huì)提示我們把更新后的.qip和.sip文件重新手動(dòng)添加到工程中來。點(diǎn)擊提示窗口右下角的Close按鈕。

現(xiàn)在,我們來手動(dòng)添加更新后的.qip和.sip文件。右擊Project Navigator窗口中工程名:My_GHRD。點(diǎn)擊Settings…選項(xiàng)。

接下來會(huì)彈出Category界面,點(diǎn)擊右側(cè)的…按鈕。

此時(shí)會(huì)彈出Select File界面,在指定的目錄下找到生成的soc_system.qip文件并選中,然后點(diǎn)擊右下角的“打開”按鈕。

最后,可以在返回的Catagory界面中可以看到生成的soc_system.qip文件已經(jīng)被成功添加到工程中。

在上述界面中可以看到文件:hps_reset_bb.qip和hps_reset_bb.v,這一組文件的定義了模塊:hps_reset。但是,由于 文件:hps_reset.qip和hps_reset.v這一組文件同樣也定義了模塊:hps_reset,所以hps_reset_bb.qip和hps_reset_bb.v的加入會(huì)導(dǎo)致模塊:hps_reset的重復(fù)定義。

現(xiàn)在我們需要將文件:hps_reset_bb.qip和hps_reset_bb.v進(jìn)行移除。選中文件:hps_reset_bb.qip和hps_reset_bb.v,點(diǎn)擊右側(cè)的Remove按鈕移除文件。最后,點(diǎn)擊右下角的OK按鈕退出該界面。

至此,工程My_GHRD中Qsys部分的設(shè)計(jì)已經(jīng)完成。接下來我們需要對(duì)工程中的硬件描述文件.v文件進(jìn)行修改。其實(shí),我們?cè)贒E10_Standard_GHRD工程的基礎(chǔ)上只用對(duì)My_GHRD中頂層實(shí)體文件My_GHRD.v中各個(gè)模塊的引腳及其連接關(guān)系進(jìn)行描述即可。

在此之前,我們先指定我們的頂層實(shí)體文件My_GHRD.v。點(diǎn)擊Project Navigator窗口中Hierachy按鈕,會(huì)彈出下拉列表,我們點(diǎn)擊File選項(xiàng)。

找到工程中的My_GHRD.v,右擊選擇Set as Top-Level Entity。

我們雙擊Project Navigator窗口中工程名My_GHRD,此時(shí)軟件將會(huì)打開工程的頂層實(shí)體文件My_GHRD.v

對(duì)頂層實(shí)體文件My_GHRD.v的修改主要有以下各處:

之一,頂層實(shí)體模塊的命名須與工程名My_GHRD保持一致。

第二,在模塊soc_system u0中對(duì)新引出的PIO端口led_pio9_external_connection_export進(jìn)行聲明。可以發(fā)現(xiàn),我們聲明端口led_pio9_external_connection_export的同時(shí)需要為其指定一個(gè)wire類型的變量進(jìn)行連接。對(duì)照led_pio_external_connection_export連接到wire類型的變量fpga_led_internal上,我們新定義了一個(gè)wire類型的變量fpga_led9_internal與端口led_pio9_external_connection_export進(jìn)行連接。當(dāng)然,wire類型的變量fpga_led9_internal可以理解為是一條導(dǎo)線,它的一端接到了模塊soc_system u0中對(duì)新引出的PIO端口led_pio9_external_connection_export上,兩外一端也是要為它連接適當(dāng)?shù)亩丝诘?。我們新增端口led_pio9_external_connection_export的目的就是能夠?qū)ED燈LEDR9進(jìn)行控制,所以,不難想到,wire類型的變量fpga_led9_internal另一端一定是要連接到端口LEDR上面的。這樣,總體的更改就是下面這樣的:

現(xiàn)在,我們可以對(duì)工程My_GHRD進(jìn)行編譯操作。首先是進(jìn)行工程的分析與綜合,依次點(diǎn)擊:Processing→Start→Start Analysis & Synthesis。

工程的分析綜合通過后,主界面中左側(cè)的Tasks窗口下的Analysis & Synthesis欄前面會(huì)展示一個(gè)綠色的“√”,后面會(huì)顯示分析綜合所用的時(shí)間。

上面分析綜合成功后,下一步需要進(jìn)行Fitter(Place & Route),這里進(jìn)行的是關(guān)于FPGA內(nèi)部的布局布線操作。在此之前我們需要對(duì)我們模塊中設(shè)計(jì)的輸入輸出引腳進(jìn)行引腳分配。引腳分配的方法有很多種,讀者可以自行學(xué)習(xí)。這里由于我們定義了大量的引腳,而且我們有現(xiàn)成的DE10_Standard_GHRD工程可以利用,我們只需將該工程里面的引腳分配信息轉(zhuǎn)移進(jìn)入我們的My_GHRD工程就可以了。

我們現(xiàn)在打開DE10_Standard_GHRD工程。進(jìn)入工程后,我們點(diǎn)擊:Assignments→Pin Planner,進(jìn)入引腳分配界面。

在該界面下,點(diǎn)擊:File→Export…。

之后會(huì)彈出Export窗口。我們需要選擇我們要導(dǎo)出的文件格式為:.tcl。

然后,點(diǎn)擊右下角的Export按鈕。

最后,依次點(diǎn)擊引腳分配界面和DE10_Standard_GHRD工程界面右上角的關(guān)閉按鈕,退出DE10_Standard_GHRD工程。

我們現(xiàn)在已經(jīng)得到了我們需要的引腳分配文件DE10_Standard_GHRD.tcl,現(xiàn)在我們需要把它從DE10_Standard_GHRD工程目錄下復(fù)制到My_GHRD工程目錄下。為了與My_GHRD工程名保持一致,將其改名為:My_GHRD.tcl。

接下來,我們需要利用得到的引腳分配文件My_GHRD.tcl對(duì)工程My_GHRD中的引腳進(jìn)行分配。點(diǎn)擊:Tools→Tcl Scripts…。

在彈出的Tcl Scripts窗口下,點(diǎn)擊右側(cè)的Add to Project…按鈕。

在彈出的Add to Project窗口下,選中我們的引腳分配文件My_GHRD.tcl,并點(diǎn)擊右下角的打開按鈕。

此時(shí),軟件又自動(dòng)退回到Tcl Scripts窗口下。在Libraries欄中找到我們的引腳分配文件My_GHRD.tcl,點(diǎn)擊下方的Run按鈕來加載我們的引腳分配文件。

在后面彈出的界面中點(diǎn)擊OK按鈕,退回到Tcl Scripts窗口。

最后點(diǎn)擊到Tcl Scripts窗口下方的Close按鈕退出到Tcl Scripts窗口,回到工程主界面。

此時(shí),點(diǎn)擊主界面的:Assignments→Pin Planner進(jìn)入引腳分配界面。

在引腳分配界面中,可以看到,引腳大部分已經(jīng)被分配完成,未分配的引腳暫時(shí)不用擔(dān)心它們,我們還沒有用到。

現(xiàn)在,我們開始對(duì)工程進(jìn)行布局布線。點(diǎn)擊:Processing→Start→Start Fitter。

工程的布局布線通過后,主界面中左側(cè)的Tasks窗口下的Fitter(Place & Route)欄前面會(huì)展示一個(gè)綠色的“√”,后面會(huì)顯示布局布線所用的時(shí)間。

到此,基本上我們可以判斷在邏輯上我們的設(shè)計(jì)已經(jīng)沒有問題了,接下來我們是可以進(jìn)行工程的全編譯了。但是,在實(shí)際的應(yīng)用設(shè)計(jì)中我們還要考慮對(duì)信號(hào)的時(shí)序進(jìn)行約束,尤其是具有 SDRAM DDR3這種高速存取器件的設(shè)計(jì)中。對(duì)于時(shí)序約束,我們可以利用DE10_Standard_GHRD工程中的時(shí)序約束文件:DE10_Standard_GHRD.sdc。同樣的,將其復(fù)制到My_GHRD工程目錄下,改名為:My_GHRD.sdc。

將時(shí)序約束文件添加進(jìn)入工程,右擊Project Navigator窗口下的工程名:My_GHRD,點(diǎn)擊:Setting…按鈕。

接下來會(huì)彈出Category界面,點(diǎn)擊右側(cè)的…按鈕。

此時(shí)會(huì)彈出Select File界面,進(jìn)入工程主目錄下,點(diǎn)擊右下角的文件類型選擇按鈕,選中:Script Files( * .tcl

.sdc

.pdc*.qip)一項(xiàng)。

下找到時(shí)序約束文件My_GHRD.sdc并選中,然后點(diǎn)擊右下角的“打開”按鈕。

最后,可以在返回的Catagory界面中可以看到時(shí)序約束文件:My_GHRD.sdc文件已經(jīng)被成功添加到工程中。依次點(diǎn)擊右下角的Apply按鈕和OK按鈕退出該界面。

此時(shí)已經(jīng)回到工程主界面,我們可以進(jìn)行工程的全編譯了。點(diǎn)擊Processing→Start Compilation。

本節(jié)將介紹如何設(shè)計(jì)一個(gè)ARM C程序來控制PIO控制器led_pio。SoC EDS用于編譯C項(xiàng)目。為了讓ARM程序控制PIO組件led_pio,我們需要led_pio地址。使用Linux內(nèi)置驅(qū)動(dòng)程序’ /dev/mem ‘和mmap system-call可以將led_pio組件的物理基址映射到Linux應(yīng)用軟件可以直接訪問的虛擬地址。

ARM C程序需要led_pio的組件信息,因?yàn)槌绦驎?huì)嘗試控制組件。這部分將會(huì)描述如何使用一個(gè)給定的Linux shell批處理文件將Qsys HPS信息提取到一個(gè)頭文件中,這個(gè)頭文件稍后將包含在C程序中。

上面提到的批處理文件名為:generate_hps_qsys_header.sh。它與DE10_Standard_GHRD工程位于同一個(gè)文件夾中?,F(xiàn)在,我們要為工程My_GHRD生成頭文件。首先,從DE10_Standard_GHRD工程目錄下復(fù)制文件:generate_hps_qsys_header.sh到My_GHRD工程目錄下。

接下來,使用記事本打開批處理文件:generate_hps_qsys_header.sh,確認(rèn)文件中紅線標(biāo)注的路徑下有應(yīng)用程序:sopc-create-header-files.exe。其中,路徑:/cygdrive/d/…表示D盤…。如果該路徑下沒有上述應(yīng)用程序,讀者需自行更改其中的路徑。

關(guān)于mpu3050linux驅(qū)動(dòng)的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。

成都網(wǎng)站建設(shè)選創(chuàng)新互聯(lián)(?:028-86922220),專業(yè)從事成都網(wǎng)站制作設(shè)計(jì),高端小程序APP定制開發(fā),成都網(wǎng)絡(luò)營(yíng)銷推廣等一站式服務(wù)。


新聞標(biāo)題:MPU3050Linux驅(qū)動(dòng)詳解(mpu3050linux驅(qū)動(dòng))
網(wǎng)頁鏈接:http://www.5511xx.com/article/ccejeoh.html