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
相关推荐
编程圈子6 小时前
电机驱动开发学习18. SVPWM空间矢量调制算法详解与实现
驱动开发·学习·算法
智者知已应修善业7 小时前
【 LM358AD方波】2024-12-31
驱动开发·经验分享·笔记·硬件架构·硬件工程
枳实-叶7 小时前
【Linux驱动开发】第23天:spi_driver 的 probe / remove 函数实现规范
linux·驱动开发·c#
枳实-叶9 小时前
【Linux驱动开发】第24天:SPI 数据收发机制
linux·运维·驱动开发
幽络源小助理1 天前
Windows11下的Cheat Engine+驱动源码编译并开启DBVM模式-幽络源技术
驱动开发·ce
枳实-叶1 天前
【Linux驱动开发】第22天:SPI 设备树 + spi_driver
linux·运维·驱动开发
世微 如初18 天前
AP5125大功率LED恒流驱动实战:地摊灯项目从原理图到调试笔记
驱动开发·芯片·led电源驱动·降压恒流ic
ScilogyHunter18 天前
Zephyr串口驱动开发及构建完全指南
驱动开发·uart·zephyr
_Emma_18 天前
【DRM&Graphic】Linux图形与显示框架
linux·驱动开发·图形渲染·显示器
董厂长18 天前
Loop Engineering:停止手动提示,开始设计自动提示的系统
大数据·人工智能·驱动开发·llm