單片機(jī)驅(qū)動(dòng)心得
單片機(jī)驅(qū)動(dòng)類型:
大循環(huán)查詢,定時(shí)器中查詢,中斷 ,DMA中斷
大循環(huán)查詢,對(duì)于大循環(huán)時(shí)間很依賴,所以一般來說只做啟動(dòng)或者停止之類工作,過程工作交給中斷或者DMA中斷做
定時(shí)器查詢,如果大循環(huán)時(shí)間不定,那么可以專門開一個(gè)定時(shí)器,中斷中不斷的循環(huán)查詢或者啟動(dòng)中斷之類,這個(gè)既不堵塞大循環(huán)也不依賴大循環(huán)時(shí)間,只是比較耗費(fèi)cpu資源,不一定有那么多的定時(shí)器給你用,可以多個(gè)驅(qū)動(dòng)共用一個(gè)定時(shí)器,定時(shí)器中計(jì)數(shù),定時(shí)器查詢沒有大循環(huán)的缺點(diǎn),只是和中斷等比起來實(shí)時(shí)性稍微差點(diǎn),因?yàn)槎〞r(shí)器查詢時(shí)定時(shí)器不能太頻繁
中斷,數(shù)據(jù)量不大時(shí),或者每個(gè)中斷都要應(yīng)用層處理時(shí)
DMA中斷,數(shù)據(jù)量比較大,要求后臺(tái)的方式,效率要求時(shí),和大循環(huán)時(shí)間無關(guān),
設(shè)計(jì)驅(qū)動(dòng)的要求:驅(qū)動(dòng)不能堵塞大循環(huán),不能依賴大循環(huán)時(shí)間
驅(qū)動(dòng)最佳是DMA中斷,但是具體驅(qū)動(dòng)看類型, 很多的驅(qū)動(dòng)隨便寫寫就可以了,不用DMA
操作系統(tǒng)類型:
如果有操作系統(tǒng),寫驅(qū)動(dòng)會(huì)舒服很多, 例如iic或者spi可以在驅(qū)動(dòng)中死等,反正等的時(shí)候, 放棄cpu即可,就是時(shí)間片不能太小, 其實(shí)對(duì)于大部分驅(qū)動(dòng)來說,對(duì)實(shí)時(shí)要求沒有那么高的。
選擇:
要求最高的就用DMA中斷
一般就用定時(shí)器中查詢或者設(shè)備中斷
在次之,就在大循環(huán)中查詢
根據(jù)具體要求,沒有一定。。。
中斷,數(shù)據(jù)量不大時(shí),或者每個(gè)中斷都要應(yīng)用層處理時(shí)
DMA中斷,數(shù)據(jù)量比較大,要求后臺(tái)的方式,效率要求時(shí),和大循環(huán)時(shí)間無關(guān),
設(shè)計(jì)驅(qū)動(dòng)的要求:驅(qū)動(dòng)不能堵塞大循環(huán),不能依賴大循環(huán)時(shí)間
驅(qū)動(dòng)最佳是DMA中斷,但是具體驅(qū)動(dòng)看類型,
操作系統(tǒng)類型:
如果有操作系統(tǒng),寫驅(qū)動(dòng)會(huì)舒服很多,
選擇:
要求最高的就用DMA中斷
一般就用定時(shí)器中查詢或者設(shè)備中斷
在次之,就在大循環(huán)中查詢
根據(jù)具體要求,沒有一定。。。
評(píng)論