单片机驱动心得
单片机驱动类型:
大循环查询,定时器中查询,中断 ,DMA中断
大循环查询,对于大循环时间很依赖,所以一般来说只做启动或者停止之类工作,过程工作交给中断或者DMA中断做
定时器查询,如果大循环时间不定,那么可以专门开一个定时器,中断中不断的循环查询或者启动中断之类,这个既不堵塞大循环也不依赖大循环时间,只是比较耗费cpu资源,不一定有那么多的定时器给你用,可以多个驱动共用一个定时器,定时器中计数,定时器查询没有大循环的缺点,只是和中断等比起来实时性稍微差点,因为定时器查询时定时器不能太频繁
中断,数据量不大时,或者每个中断都要应用层处理时
DMA中断,数据量比较大,要求后台的方式,效率要求时,和大循环时间无关,
设计驱动的要求:驱动不能堵塞大循环,不能依赖大循环时间
驱动最佳是DMA中断,但是具体驱动看类型, 很多的驱动随便写写就可以了,不用DMA
操作系统类型:
如果有操作系统,写驱动会舒服很多, 例如iic或者spi可以在驱动中死等,反正等的时候, 放弃cpu即可,就是时间片不能太小, 其实对于大部分驱动来说,对实时要求没有那么高的。
选择:
要求最高的就用DMA中断
一般就用定时器中查询或者设备中断
在次之,就在大循环中查询
根据具体要求,没有一定。。。
中断,数据量不大时,或者每个中断都要应用层处理时
DMA中断,数据量比较大,要求后台的方式,效率要求时,和大循环时间无关,
设计驱动的要求:驱动不能堵塞大循环,不能依赖大循环时间
驱动最佳是DMA中断,但是具体驱动看类型,
操作系统类型:
如果有操作系统,写驱动会舒服很多,
选择:
要求最高的就用DMA中断
一般就用定时器中查询或者设备中断
在次之,就在大循环中查询
根据具体要求,没有一定。。。
评论