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
相关推荐
爱写代码的汤二狗8 小时前
第4章 载体选择:网站、小程序还是App?
人工智能·驱动开发·创业创新
charlie11451419112 小时前
2026年正点原子开发板移植方案——从0开始的Rootfs之路(4)Rootfs 目录结构创建:Linux 文件系统的“骨架“
linux·驱动开发·学习·嵌入式开发·嵌入式linux
篮子里的玫瑰13 小时前
智能天气时钟项目(一):ESP32 AT指令集详解与STM32驱动开发
驱动开发·stm32·嵌入式硬件
俊俊谢1 天前
LabVIEW如何排查和修复dll缺失问题
驱动开发·.net·labview·dll
musicml1 天前
从 Vibe Coding 到 SDD(规范驱动开发):AI 原生时代的软件工程化实践
人工智能·驱动开发·软件工程
不怕犯错,就怕不做1 天前
Linux中的IS_ENABLED 函数实战使用demo
linux·驱动开发·嵌入式硬件
the sun342 天前
我的第一个字符驱动:基于Linux2.4之前版本的古法编程
linux·驱动开发
charlie1145141912 天前
2026年正点原子开发板移植方案——从0开始的Rootfs之路(3)inittab 与 init 系统:Linux 启动的“第一号进程“全解析
linux·驱动开发·学习·嵌入式开发·嵌入式linux
智者知已应修善业2 天前
【文氏电桥振荡电路】2022-8-25
驱动开发·经验分享·笔记·硬件架构·硬件工程
春日见2 天前
GIT操作大全(个人开发与公司开发)
开发语言·驱动开发·git·matlab·docker·计算机外设·个人开发