您的位置首页>企业动态>

Linux驱动到底能不能在应用层开发驱动

导读大家好,我是极客范的本期栏目编辑小友,现在为大家讲解Linux驱动到底能不能在应用层开发驱动问题。中午,我和更好的同事一起吃饭。我的同

音频解说

大家好,我是极客范的本期栏目编辑小友,现在为大家讲解Linux驱动到底能不能在应用层开发驱动问题。

中午,我和更好的同事一起吃饭。我的同事刚从MCU开发转到Linux开发,现在负责给客户开发一个USB设备驱动。他跟我抱怨说因为拿不到客户的内核代码,每次客户的内核代码变了,他的驱动都要重新编译,太麻烦了。所以建议同事把驱动写进APP里。同事们很惊讶Linux能在应用层开发驱动?

答案是肯定的。在Linux系统中,用于总线驱动(usb、i2c、spi等)。),驱动程序框架分为两部分。一个是总线控制器驱动程序,负责使总线能够传输数据。第二个是设备驱动程序,负责启用挂在总线上的设备。

以usb设备为例,usb主机控制器驱动程序使Linux能够在自身和usb设备(如usb转串口设备、usb摄像头等)之间传输数据。)挂在自己身上。但是有数千万个usb设备。为了驱动这些设备,需要通过usb总线向usb设备发送特定的数据。比如我想初始化一个usb串口设备,应该发送什么数据来设置它的波特率?

相信大家都已经明白,总线控制器驱动和总线设备驱动的关系,其实就是程序分层的思想。总线驱动可用后,程序员可以调用她的接口,将需要发送的数据发送到总线上的设备,这就是所谓的设备驱动。可以在内核空间或者应用空间调用。

在实际工作过程中,笔者有在APPlication space开发i2c设备驱动,在Android app中开发usb设备驱动(usb转串口)程序的经验。

责任编辑LK

中午,我和更好的同事一起吃饭。我的同事刚从MCU开发转到Linux开发,现在负责给客户开发一个USB设备驱动。他跟我抱怨说因为拿不到客户的内核代码,每次客户的内核代码变了,他的驱动都要重新编译,太麻烦了。所以建议同事把驱动写进APP里。同事们很惊讶Linux能在应用层开发驱动?

答案是肯定的。在Linux系统中,用于总线驱动(usb、i2c、spi等)。),驱动程序框架分为两部分。一个是总线控制器驱动程序,负责使总线能够传输数据。第二个是设备驱动程序,负责启用挂在总线上的设备。

以usb设备为例,usb主机控制器驱动程序使Linux能够在自身和usb设备(如usb转串口设备、usb摄像头等)之间传输数据。)挂在自己身上。但是有数千万个usb设备。为了驱动这些设备,需要通过usb总线向usb设备发送特定的数据。比如我想初始化一个usb串口设备,应该发送什么数据来设置它的波特率?

相信大家都已经明白,总线控制器驱动和总线设备驱动的关系,其实就是程序分层的思想。总线驱动可用后,程序员可以调用她的接口,将需要发送的数据发送到总线上的设备,这就是所谓的设备驱动。可以在内核空间或者应用空间调用。

在实际工作过程中,笔者有在APPlication space开发i2c设备驱动,在Android app中开发usb设备驱动(usb转串口)程序的经验。

责任编辑LK。dfma {

相对位置:

宽度: 1000 px;

margin: 0 auto

}。dfma a:after {

绝对位置:

left : 0;

bottom : 0;

宽度: 30px;

线高: 1.4;

文本对齐:中心;

背景-color: rgba(0,0,0, 5);

color: # fff

font-size : 12px

内容: '广告;

}。dfma img {

显示器:块;

}

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。