国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

就是塔塔的個(gè)人空間 http://www.qingdxww.cn/space-uid-136863.html [收藏] [復(fù)制] [RSS]

博客

RK3568驅(qū)動(dòng)指南|第二篇 字符設(shè)備基礎(chǔ)-第15章 文件私有數(shù)據(jù)實(shí)驗(yàn)

已有 615 次閱讀2024-4-11 14:42 |個(gè)人分類:RK3568

瑞芯微RK3568芯片是一款定位中高端的通用型SOC,采用22nm制程工藝,搭載一顆四核Cortex-A55處理器和Mali G52 2EE 圖形處理器。RK3568 支持4K 解碼和 1080P 編碼,支持SATA/PCIE/USB3.0 外圍接口。RK3568內(nèi)置獨(dú)立NPU,可用于輕量級(jí)人工智能應(yīng)用。RK3568 支持安卓 11 和 linux 系統(tǒng),主要面向物聯(lián)網(wǎng)網(wǎng)關(guān)、NVR 存儲(chǔ)、工控平板、工業(yè)檢測(cè)、工控盒、卡拉 OK、云終端、車載中控等行業(yè)。
第15章 文件私有數(shù)據(jù)實(shí)驗(yàn)
在之前章節(jié)編寫的驅(qū)動(dòng)程序中,將生成字符設(shè)備的一些硬件屬性(設(shè)備號(hào)、類、設(shè)備名稱等)全都寫成了變量的形式,雖然這樣編寫驅(qū)動(dòng)代碼不會(huì)產(chǎn)生報(bào)錯(cuò),但是會(huì)顯得有點(diǎn)不專業(yè)。通常在驅(qū)動(dòng)開發(fā)中會(huì)為設(shè)備定義相關(guān)的設(shè)備結(jié)構(gòu)體,將硬件屬性的描述信息全部放在該結(jié)構(gòu)體中,在本章節(jié)中將對(duì)設(shè)備結(jié)構(gòu)體的功能實(shí)現(xiàn)和文件私有數(shù)據(jù)進(jìn)行學(xué)習(xí)。

15.1 文件私有數(shù)據(jù)簡(jiǎn)介
Linux中并沒(méi)有明確規(guī)定要使用文件私有數(shù)據(jù),但是在linux驅(qū)動(dòng)源碼中,廣泛使用了文件私有數(shù)據(jù),這是Linux驅(qū)動(dòng)遵循的“潛規(guī)則”,實(shí)際上也體現(xiàn)了Linux面向?qū)ο蟮乃枷搿truct file 結(jié)構(gòu)體中專門為用戶留了一個(gè)域用于定義私有數(shù)據(jù)。結(jié)構(gòu)體內(nèi)容如下所示:

文件私有數(shù)據(jù)的概念在Linux驅(qū)動(dòng)中有著非常廣泛的應(yīng)用,文件私有數(shù)據(jù)就是將私有數(shù)據(jù)private_data指向設(shè)備結(jié)構(gòu)體。通過(guò)它可以將私有數(shù)據(jù)一路從open函數(shù)帶到read, write函數(shù)層層傳入。一般是在open 的時(shí)候賦值,read、write時(shí)使用。open函數(shù)中私有數(shù)據(jù)的使用如下所示:

在上述代碼中,定義了一個(gè)設(shè)備結(jié)構(gòu)體dev1,然后在open函數(shù)中,將私有數(shù)據(jù)private_data指向了設(shè)備結(jié)構(gòu)體dev1。

我們可以在read write函數(shù)中通過(guò)private_data訪問(wèn)設(shè)備結(jié)構(gòu)體,如下所示:

15.2 實(shí)驗(yàn)程序編寫

15.2.1 驅(qū)動(dòng)程序編寫

本驅(qū)動(dòng)程序?qū)?yīng)的網(wǎng)盤路徑為:iTOP-RK3568開發(fā)板【底板V1.7版本】\03_【iTOP-RK3568開發(fā)板】指南教程\02_Linux驅(qū)動(dòng)配套資料\04_Linux驅(qū)動(dòng)例程\10\module。

本章實(shí)驗(yàn)將編寫Linux下的使用文件私有數(shù)據(jù)實(shí)例代碼,在open函數(shù)中對(duì)私有數(shù)據(jù)結(jié)構(gòu)體賦值,在write函數(shù)中使用。編寫完成的代碼如下所示:

15.2.2 編寫測(cè)試 APP

本應(yīng)用程序?qū)?yīng)的網(wǎng)盤路徑為:iTOP-RK3568開發(fā)板【底板V1.7版本】\03_【iTOP-RK3568開發(fā)板】指南教程\02_Linux驅(qū)動(dòng)配套資料\04_Linux驅(qū)動(dòng)例程\10\app。

編寫測(cè)試APP其實(shí)是在編寫Linux應(yīng)用,在應(yīng)用程序中向設(shè)備文件寫入數(shù)據(jù),編寫完成的應(yīng)用程序app.c代碼如下所示:

15.3 運(yùn)行測(cè)試

對(duì)于Makefile的內(nèi)容注釋已在上圖添加,保存退出之后,來(lái)到存放file.c和Makefile文件目錄下,如下圖(圖15-1)所示:

然后使用命令“make”進(jìn)行驅(qū)動(dòng)的編譯,編譯完成如下圖(圖15-2)所示:

編譯完生成 file.ko目標(biāo)文件,如下圖(圖15-3)所示:

至此我們的驅(qū)動(dòng)模塊就編譯成功了,下面進(jìn)行應(yīng)用程序編譯,

15.3.2 編譯應(yīng)用程序

因?yàn)闇y(cè)試APP是要在開發(fā)板上運(yùn)行的,所以需要aarch64-linux-gnu-gcc來(lái)編譯,輸入以下命令,編譯完成以后會(huì)生成一個(gè)app的可執(zhí)行程序,如下圖(圖15-4)所示:

aarch64-linux-gnu-gcc app.c -o app

下面進(jìn)行驅(qū)動(dòng)程序的測(cè)試。

驅(qū)動(dòng)加載成功之后會(huì)生成/dev/test設(shè)備驅(qū)動(dòng)文件,輸入以下命令查看雜項(xiàng)設(shè)備的主次設(shè)備號(hào)。

ls /dev/test -al

結(jié)果如下圖(圖15-6)所示:

運(yùn)行應(yīng)用程序,如下(圖 15-6)所示:

在此實(shí)驗(yàn)中,將硬件屬性的信息全部放在一個(gè)結(jié)構(gòu)體private_data,依然可以實(shí)現(xiàn)字符設(shè)備的操作。

更多內(nèi)容可以B站搜索:迅為RK3568開發(fā)板


路過(guò)

雞蛋

鮮花

握手

雷人

評(píng)論 (0 個(gè)評(píng)論)

facelist

您需要登錄后才可以評(píng)論 登錄 | 立即注冊(cè)

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權(quán)所有   京ICP備16069177號(hào) | 京公網(wǎng)安備11010502021702
返回頂部
主站蜘蛛池模板: 国产大片中文字幕 | 青青青青操 | 久久婷婷国产精品香蕉 | 麻豆xxxxhd videos| 国产精品99久久免费黑人 | 一区二区三区午夜 | 国产成人影视 | 91热久久免费频精品99欧美 | 热99这里只有精品 | 亚洲视频精品在线观看 | 亚洲欧美日本韩国 | 精品国产高清不卡毛片 | 麻豆系列 在线视频 | 国产 日韩 欧美 在线 | 日韩毛片网 | 好吊色青青青国产欧美日韩 | 艹黑丝| 亚洲精品国产高清不卡在线 | 91香蕉国产观看免费人人 | 91香蕉国产线在线观看免费 | 羞羞视频免费网站 | 久久国产自偷自免费一区100 | 色综合五月婷婷 | 欧美成人高清在线视频大全 | 视频在线色| 免费精品久久 | 国产精品国产自线拍手机观看 | 青青自拍视频一区二区三区 | aaa国产| 亚洲国产成人精品一区91 | 日本一区中文字幕 | 色婷婷91 | 亚洲欧美日韩中文高清一 | 欧美日韩 国产区 在线观看 | 91国在线国内在线播放 | 青青青久97在线观看香蕉 | 四虎精品免费国产成人 | a色视频| 亚洲国产日韩欧美在线 | 777久久成人影院 | 在线观看亚洲免费视频 |