Linux camera驱动开发(真正需要做的linux驱动开发)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】

很多的soc厂家,在发布sdk的时候,就提供了很多的芯片驱动。这里面有推荐的ddr、norflash、nandflash、emmc、sdio wifi、eth phy、触摸芯片等等。如果不是特殊的需求,基本上使用厂家推荐的芯片、模块,就可以做功能开发了。但是还有一些场景,是需要自己去主动适配驱动的,尤其是增加功能和降低成本的时候。

1、国产芯片适配

很多的soc只适配大厂的芯片,对于国产的芯片适配,没有那么好。这个时候,就需要自己去修改对应的驱动代码了。这中间,包括了ddr、nor、nand、emmc、eth phy、pmu等很多芯片。

2、低成本芯片的适配

对于客户来说,都喜欢相同条件下,软硬件成本越低越好。soc原厂支持的芯片,一般都是大厂通用芯片,价格上面未必合算。这个时候,如果想自己做一点降本增效的事情,就只能优先从硬件着手了,与此对应的驱动不可避免也要去修改一下。

3、sdio、usb模块厂家提供的驱动

除了芯片之外,还有一些驱动,需要模块原厂提供驱动代码的,这里面以各种各样的总线为主,比如说sdio总线、usb总线、pcie总线。举例说明,如果要适配一个usb wifi,soc厂家肯定也不知道代码,这个代码只能从模块厂家要。用户自己拿到了之后,就需要自己适配kernel、自己编译、加载和测试。

4、camera sensor驱动

**camera sensor驱动是相对而言稍微复杂的一个驱动,除了i2c和mipi之外,还涉及到isp标定、编解码、网络传输。**不同sensor厂家,不同类型的型号,作为soc原厂来说往往只能support一些典型的sensor芯片,没有办法照顾到那么全、那么完整。还有就是,如果客户自己希望用一些低规格、性价比高的芯片,这部分工作一般也需要自己做。

一般camera sensor驱动好了,就可以交给isp标定。当然要求不高的话,自己去标定也是可以的,比如下面全志soc的isp标定,对应的上位机叫TigerISP,

复制代码
https://docs.aw-ol.com/docs/category/isp-%E5%9B%BE%E5%83%8F%E8%B0%83%E4%BC%98

5、屏幕驱动

屏幕驱动里面,一般来说spi、iic、rgb、mcu接口的驱动简单一点,mipi、lvds、hdmi复杂一些。大部分屏幕驱动都是修改dts文件即可,不过这些参数的配置,比如长、宽、时钟、lane数量、行列同步、初始化代码,也只能和屏幕厂家要。很多屏幕厂家自己只有fae,遇到复杂的问题还需要原厂ic的支持,有的时候也是比较麻烦的一件事情。

6、自定义模块的驱动

这部分驱动不是来自于soc,也不是来自于第三方模块,而是自定义的模块。比如说,假设我们需要spi总线和fpga模块进行通信。这种情况下,不管是soc模块,还是fpga模块,都是自己编写的,那么对应的驱动就理所当然需要自己编写。

7、低速总线模块驱动

和高速总线不同,低速总线模块大部分都是需要自己二次开发解决的。并且这种开发,很多时候不是内核层去完成的,而是用户层完成的。比如说,这里面可能是232模块、485模块、can模块等等。学会了低速总线,就可以适配很多的第三方模块,这方面电商网站非常多。

8、网络协议驱动

目前,各种设备驱动越来越多,并且很多设备都是集成在网络系统里面,彼此之间通过交换机互通有无。尤其是之前一些传统的模块、设备,由于eth转232、eth转gpio、eth转485、eth转can这些转接器的存在,很多时候就需要我们自己编写上层网络代码去驱动、去解决。

注:

isp是和sensor关联比较紧密的驱动,有兴趣的朋友可以参考一下这个资料,

复制代码
https://www.cnblogs.com/juwan/p/14865188.html
相关推荐
Tadas-Gao18 小时前
基于规范驱动开发的下一代软件工程范式:从理论到实践
驱动开发·架构·系统架构·大模型·llm·软件工程
嵌入式-老费1 天前
Linux camera驱动开发(图像后处理之IPP)
驱动开发
济6171 天前
ARM Linux 驱动开发篇--嵌入式 Linux LED 驱动开发实验(2)--Linux 下 LED 灯驱动开发代码编写-- Ubuntu20.04
linux·arm开发·驱动开发
嵌入式-老费1 天前
Linux Camera驱动开发(fpga vs soc)
驱动开发·fpga开发
济6172 天前
ARM Linux 驱动开发篇----字符设备驱动开发(6)---测试chrdevbase 字符设备驱动开发实验--- Ubuntu20.04
linux·运维·驱动开发
lisw053 天前
Spec-Driven Development,规格驱动开发:程序开发新模式!
人工智能·驱动开发·机器学习
济6173 天前
ARM Linux 驱动开发篇---TFTP挂载内核设备树,NFS挂载文件系统教程--解决高版本 Ubuntu的nfs挂载系统失败-- Ubuntu20.04
linux·arm开发·驱动开发
乡野码圣4 天前
RK3588 HDMI转DVI黑屏问题排查与解决
驱动开发
松涛和鸣4 天前
75、 IMX6ULL LM75温度传感器I2C驱动开发
java·linux·数据库·驱动开发·python