真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

編寫(xiě)linux設(shè)備驅(qū)動(dòng)的注意事項(xiàng)之一

編寫(xiě)linux設(shè)備驅(qū)動(dòng)的注意事項(xiàng)之一

當(dāng)然寫(xiě)驅(qū)動(dòng),你得清楚上層調(diào)用是否導(dǎo)致存在函數(shù)重入、
什么執(zhí)行context下(1. 中斷、2. 軟中斷、3. tasklet(軟中斷的一種)、 4. timer(基于軟中斷實(shí)現(xiàn))、5. hrtimer (軟中斷或硬中斷環(huán)境下執(zhí)行) 、6. workqueue(也是kernel thread)、7. kernel thread、8. 普通thread的內(nèi)核態(tài)下)會(huì)訪問(wèn)此函數(shù)和此資源,需要什么樣的“同步機(jī)制”保護(hù)。

創(chuàng)新互聯(lián)是專業(yè)的路北網(wǎng)站建設(shè)公司,路北接單;提供成都網(wǎng)站設(shè)計(jì)、網(wǎng)站制作,網(wǎng)頁(yè)設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行路北網(wǎng)站開(kāi)發(fā)網(wǎng)頁(yè)制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛(ài)的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來(lái)合作!

你利用子系統(tǒng)(例如input子系統(tǒng))的去實(shí)現(xiàn)驅(qū)動(dòng)需要實(shí)現(xiàn)功能。你利用總線的api函數(shù)去訪問(wèn)設(shè)備硬件,例如i2c_transfer、spi_sync等
注意probe函數(shù)傳入的device,是bus_type實(shí)現(xiàn)的,在module_init時(shí)注冊(cè)了驅(qū)動(dòng)到對(duì)應(yīng)總線上,在.machine_init時(shí),會(huì)通過(guò)board板級(jí)代碼把此bus的設(shè)備加入到對(duì)應(yīng)的總線上(無(wú)論是否需要device tree方式)。無(wú)論是誰(shuí)創(chuàng)建的設(shè)備(bus函數(shù)或者machine_init的函數(shù)),加入bus后,match成功后,就傳入到驅(qū)動(dòng)的probe函數(shù)上了,所以probe函數(shù)傳入的就是對(duì)應(yīng)bus的device結(jié)構(gòu),例如i2c是struct i2c_client , spi總線是struct spi_device ,platform虛擬總線傳入的是struct platform_device *。 具體參見(jiàn)我的《linux device driver model_2018_02_03(必讀).pptx》

像手機(jī)的touch driver比較復(fù)雜(例如cypress或者synaptics廠家),他還自己創(chuàng)建了一條虛擬的bus來(lái)實(shí)現(xiàn)動(dòng)態(tài)支持不同的子function的添加。

需要考慮一個(gè)驅(qū)動(dòng)如何支持多個(gè)設(shè)備,避免全局和靜態(tài)變量,而采用基于xxx_priv_dev的結(jié)構(gòu)體成員變量代替,一個(gè)xxx_priv_dev 對(duì)應(yīng)一個(gè)device。

關(guān)于具體的寫(xiě)linux驅(qū)動(dòng)的方法、技巧和注意事項(xiàng),歡迎觀看我的《如何編寫(xiě)linux設(shè)備驅(qū)動(dòng)》的視頻:
https://edu.51cto.com/course/17132.html

另外我的相關(guān)培訓(xùn)視頻請(qǐng)看:
歡迎觀看我發(fā)布的各個(gè)課程: https://edu.51cto.com/lecturer/8896847.html

另外我的免費(fèi)的linux各種驅(qū)動(dòng)開(kāi)發(fā)課程如下:
https://edu.51cto.com/course/17138.html


分享名稱:編寫(xiě)linux設(shè)備驅(qū)動(dòng)的注意事項(xiàng)之一
分享網(wǎng)址:http://weahome.cn/article/jhcijj.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部