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
相关推荐
TangDuoduo000511 天前
【Linux SPI驱动开发】
驱动开发
The️12 天前
Linux驱动开发之Read_Write函数
linux·运维·服务器·驱动开发·ubuntu·交互
FserSuN12 天前
AI编程 - 规范驱动开发(SDD)学习
驱动开发·学习·ai编程
TangDuoduo000512 天前
【Linux I2C设备驱动】
linux·驱动开发
The️12 天前
Linux驱动开发之Open_Close函数
linux·运维·驱动开发·mcu·ubuntu
LCG元13 天前
嵌入式GUI设计:STM32F429+LVGL,智能仪表盘界面开发指南
驱动开发·stm32·嵌入式硬件
小龙报13 天前
【51单片机】 给单片机加 “安全锁”!看门狗 WDT:原理 + 配置 + 复位验证全拆解,让程序稳定不跑飞
驱动开发·stm32·单片机·嵌入式硬件·物联网·51单片机·硬件工程
码农编程录13 天前
【notes12】kbuild,内核模块化,字符设备驱动,设备树,platform总线,设备驱动模型
驱动开发
乔碧萝成都分萝13 天前
二十六、IIO子系统 + SPI子系统 + ICM20608
linux·驱动开发·嵌入式
A星空12314 天前
二、交叉编译工具链(arm-linux-gnueabihf-gcc)安装与验证,搭建 TFTP+NFS 服务,调试开发板网络连通性;
linux·c++·驱动开发·单片机·嵌入式硬件