免费国外b站刺激战场直播app,柴火垛里的疯狂55集,百万日元的女人们,洞房初夜

程序小白
認證:優(yōu)質(zhì)創(chuàng)作者
所在專題目錄 查看專題
RT-Thread驅(qū)動之路:stm32設(shè)備驅(qū)動開發(fā)之uart注冊①
RT-Thread驅(qū)動之路:stm32設(shè)備驅(qū)動開發(fā)之uart設(shè)備創(chuàng)建②
RT-Thread驅(qū)動之路:stm32設(shè)備驅(qū)動開發(fā)之uart操作方法③
RT-Thread驅(qū)動之路:stm32設(shè)備驅(qū)動開發(fā)之uart中斷處理④
RT-Thread驅(qū)動之路:stm32設(shè)備驅(qū)動開發(fā)之淺析注冊機制⑤
RT-Thread驅(qū)動之路:stm32設(shè)備驅(qū)動開發(fā)之SPI原理①
作者動態(tài) 更多
RT-Thread驅(qū)動之路:stm32設(shè)備驅(qū)動開發(fā)之HWTIMER開發(fā)①
4天前
RT-Thread驅(qū)動之路:stm32設(shè)備驅(qū)動開發(fā)之SPI總線操作方法③
1星期前
RT-Thread驅(qū)動之路:stm32設(shè)備驅(qū)動開發(fā)之SPI對象創(chuàng)建②
2星期前
電子元器件那些事兒:三極管工作區(qū)的判斷如此簡單①
3星期前
RT-Thread驅(qū)動之路:stm32設(shè)備驅(qū)動開發(fā)之SPI原理①
11-11 14:37

RT-Thread驅(qū)動之路:stm32設(shè)備驅(qū)動開發(fā)之淺析注冊機制⑤


       關(guān)于驅(qū)動最底層的硬件處理并沒有全篇展開,基于MCU打造一套驅(qū)動都需要不斷地迭代測試慢慢的變?yōu)橐惶壮墒斓尿?qū)動,你不可能看完我的長篇廢話后就能去寫出一套完美的驅(qū)動,那么我們的驅(qū)動工程師就太不值錢了,文章的目的是讓你了解驅(qū)動的機制,驅(qū)動的調(diào)用關(guān)系,框架如何完美的匹配驅(qū)動程序,了解了這些以后,剛開始可能寫的驅(qū)動有些蹩腳,但是你知知道驅(qū)動和框架的服務(wù)關(guān)系,你只要不斷地嘗試慢慢它會越來越好。

       那么你對注冊機制的了解有多少呢?你想要APP ——框架——驅(qū)動完美的統(tǒng)一,就需要對注冊機制有清楚的了解,它實現(xiàn)了一套松耦合的調(diào)用關(guān)系的建立(我是這樣理解的)。

      還記得我最初寫裸機程序的時候,程序內(nèi)部的藕合非常嚴重,那時候還分什么應(yīng)用程序、驅(qū)動程序、框架還有啥存在的意義?一套函數(shù)嵌套的調(diào)用關(guān)系打天下~!當然不是說邏輯不好或者是嵌套不好,不同的應(yīng)用場合作用不同,小的項目還是裸奔or實時框架更舒坦。偏題了,我們先看下應(yīng)用到驅(qū)動的調(diào)用關(guān)系,基于uart的serial層來完成框架關(guān)系的建立:

      通過函數(shù)指針賦值的方式建立松耦合關(guān)系,而不是通過函數(shù)嵌套來實現(xiàn),嵌套是定死的,只能調(diào)用固定名稱的函數(shù),而函數(shù)指針的方式是通過變量的賦值來實現(xiàn)松耦合,你只需要調(diào)用函數(shù)指針,而不需要關(guān)系指針的函數(shù)名(或者這里講地址更精確):

      serial層本質(zhì)是一個承上啟下的框架層,關(guān)于承上,上面的代碼說明了,APP通過device對象的相關(guān)操作就可以操控到serial層的函數(shù),那么serial層最終還要調(diào)用真實的uart驅(qū)動才能實現(xiàn):

      關(guān)于serial層如何實現(xiàn)底層驅(qū)動的訪問,假如我們寫的是應(yīng)用那么它是怎么調(diào)用的呢?

聲明:本內(nèi)容為作者獨立觀點,不代表電子星球立場。未經(jīng)允許不得轉(zhuǎn)載。授權(quán)事宜與稿件投訴,請聯(lián)系:editor@netbroad.com
覺得內(nèi)容不錯的朋友,別忘了一鍵三連哦!
贊 5
收藏 6
關(guān)注 138
成為作者 賺取收益
全部留言
0/200
成為第一個和作者交流的人吧