日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > linux >内容正文

linux

zybo的linux开发教程,Zybo全栈开发入门教程——连载三:创建Linux设备驱动和应用程序...

發(fā)布時間:2023/12/3 linux 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 zybo的linux开发教程,Zybo全栈开发入门教程——连载三:创建Linux设备驱动和应用程序... 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

作者:Commanderfranz,編譯: kenshin

通過前面兩篇文章我們不僅創(chuàng)建的自定義IP模塊還移植了Linux操作系統(tǒng),今天這篇文章的內(nèi)容是將這兩部分聯(lián)系起來,其實我們創(chuàng)建的myLed IP相對于Linux操作系統(tǒng)可以是它的一個底層設(shè)備,因為PS總線為myLed IP分配了尋址地址,這樣我們就可以創(chuàng)建myLed IP模塊的硬件驅(qū)動,然后搭建應(yīng)用程序,實現(xiàn)軟硬件協(xié)同設(shè)計。

當(dāng)然開始之前還需要大家了解一下Linux驅(qū)動的基礎(chǔ)知識,以及Makefile的用法。

步驟一:設(shè)置工作目錄,創(chuàng)建Makefile

我們先建立drivers的工作目錄,并在此目錄下編寫好Makefile文件(如上圖)。Makefile文件定義了編譯規(guī)則,只需要使用make命令就可以實現(xiàn)整個工程的自動化編譯。

步驟二:編寫myLed模塊驅(qū)動源文件

我們的要求是當(dāng)這個模塊加載后會在linux的/proc/目錄創(chuàng)建一個可操作的文件myled,通過向這個文件寫入數(shù)據(jù)可以控制zybo板卡上led燈的亮滅狀態(tài)(根據(jù)myLed IP功能邏輯相關(guān))。

步驟三:編譯驅(qū)動程序,生成驅(qū)動模塊

直接使用make命令即可,但是注意make命令之前確保已經(jīng)配置了交叉編譯環(huán)境。生成的myLed.ko文件就是我們需要的驅(qū)動模塊。

步驟四:修改設(shè)備樹文件

從上圖我們可以看到myLed模塊的尋址空間為0x43c30000—0x43c3FFFF,因此我們要在設(shè)備數(shù)源碼文件中加入這個設(shè)備節(jié)點。

源碼修改完成后我們要重新編譯生成devicetree.dtb文件

步驟五:測試驅(qū)動模塊

我們將驅(qū)動模塊myLed.ko文件和修改后的devicetree.dtb文件拷貝到SD卡,重新讓zybo以SD卡模式啟動。

通過insmod和rmmod命令我們可以加載和卸載驅(qū)動模塊,加載myled.ko模塊后我們可以看到在/proc/目錄下可以看到myled文件,并且支持?jǐn)?shù)據(jù)的讀寫操作,說明驅(qū)動程序一切正常。

步驟六:創(chuàng)建應(yīng)用程序led_blink.c

在目錄內(nèi)創(chuàng)建user_app文件夾,然后創(chuàng)建led_blink.c程序。這個應(yīng)用程序通過向/proc/myled文件分別寫入0x0F和0x00數(shù)據(jù)實現(xiàn)四個Led燈的亮滅,達到閃爍的效果。

步驟七:編譯應(yīng)用程序

編譯方式我們同樣采用Makefile方式,編譯規(guī)則如上圖所示,修改makefile。

通過make命令生成了可執(zhí)行應(yīng)用程序led_blink。

步驟八:功能測試

我們需要將上一步中生成的led_blink拷貝到SD卡,然后zybo重新上電以SD卡模式啟動

啟動完畢后我們手動掛載SD卡到/mnt/目錄下,然后通過insmod myled.ko命令安裝驅(qū)動模塊,最后執(zhí)行我們的應(yīng)用程序(./led_blink),我們會看到zybo板卡上的四個led燈的閃爍狀態(tài)。

至此zybo全棧開發(fā)入門教程也告一段落,Zynq開發(fā)方式不同于傳統(tǒng)的FPGA或者ARM開發(fā),它將兩者友好的進行了結(jié)合,實現(xiàn)了軟硬件協(xié)同設(shè)計。當(dāng)然在實際的項目中工程量比較大也是需要進行任務(wù)分工的,本系列入門教程只是讓大家對zynq全面的開發(fā)模式具有了一個了解,當(dāng)然更深入的內(nèi)容還需要各位親自動手來體會。

創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎

總結(jié)

以上是生活随笔為你收集整理的zybo的linux开发教程,Zybo全栈开发入门教程——连载三:创建Linux设备驱动和应用程序...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。