www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當前位置:首頁 > 公眾號精選 > 嵌入式客棧
[導讀][導讀]大家好,我是逸珺。首先說聲抱歉,最近迷上釣魚了,有時候晚上出去夜釣大板鯽了,停更了一段時間。來幾張魚獲圖片:技術還是不太到家,遇到幾次大鯉魚都給溜了,心有不甘,所以最近花了比較多的時間。言歸正傳,今天來分享一下以前寫一個中斷輸入設備驅(qū)動案例,希望對有需要的朋友能有所幫助。...

[導讀] 大家好,我是逸珺。

首先說聲抱歉,最近迷上釣魚了,有時候晚上出去夜釣大板鯽了,停更了一段時間。來幾張魚獲圖片:

技術還是不太到家,遇到幾次大鯉魚都給溜了,心有不甘,所以最近花了比較多的時間。
言歸正傳,今天來分享一下以前寫一個中斷輸入設備驅(qū)動案例,希望對有需要的朋友能有所幫助。

背景介紹

在一個項目中,有這樣一個需求:

主控芯片采用ZYNQ,需要采集外部一個脈沖編碼輸入信號,這個信號是一個脈沖波形,脈沖數(shù)量代表測量結果。比如這有可能是一個電機的霍爾信號輸出,代表電機的轉(zhuǎn)速,也有可能是一個光柵編碼器的脈沖輸出,是什么并不重要。

這個電路本身,利用光耦實現(xiàn)了輸入測設備信號與采集端的電氣隔離。由于PS端該Bank的電平為3.3V,所以光耦的另一側也是3.3V。

ZYNQ的PS端運行Linux程序,所以在這個場景下,要從應用程序的角度將外部輸入信號用起來,就需要實現(xiàn)這樣一個設備驅(qū)動程序:

創(chuàng)建設備

在ZYNQ下,使用petalinux工具鏈,當然本文中對于寫這個驅(qū)動程序本身換成其他的處理器從代碼的角度是類似的。

1.先運行一下工具鏈環(huán)境變量腳本:

source?/opt/pkg/petalinux/settings.sh?
當然也可以不用手動這樣運行,設置成linux開發(fā)主機開機自動運行,這里就不贅述怎么設置了,網(wǎng)上很多介紹。

2.創(chuàng)建設備

petalinux-create?-t?modules?--name?di-drv?
這樣在現(xiàn)有的工程下,就自動創(chuàng)建設備文件:

./project-spec/meta-user/recipes-modules/di-drv/files/di-drv.c

修改設備樹

./project-spec/meta-user/recipes-bsp/device-tree/files/system-user.dtsi?

中添加

/include/?"system-conf.dtsi"
/?{???
??amba?{
?????pinctrl_di_default:?di-default?{???
???????mux?{???
?????????groups?=?"gpio0_0_grp";???
?????????function?=?"gpio0";???
???????};???

?????? conf?{???
??????????pins?=?"MIO0";???
??????????io-standard?=?<1>;???
??????????bias-high-impedance;???
??????????slew-rate?=?<0>;???
???????};???
????};???????????
??};

??di?{
????compatible?=?"di-drv";
????pinctrl-names?=?"default";
????pinctrl-0?=?<
本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權益,請及時聯(lián)系本站刪除。
關閉
關閉