怎么系统学习嵌入式驱动开发?

2023-01-03 07:38:17 +08:00
 yhm2046

本人换了工作,目前需要调色摄像头,驱动这块不熟悉,看不懂原理图和电路图,请问要如何系统学习,要报培训班还是自学? 报班要报哪一种?自学的话看什么书和资料上手最快?

2414 次点击
所在节点    程序员
12 条回复
litguy
2023-01-03 08:12:23 +08:00
大概看看 Linux 内核设计与实现,对内核有个概念
看 Linux 设备驱动 第三版,基本掌握内核驱动编写规则

原理图和电路图,你看看 数字电路 + 微机原理 /计算机接口 这些书吧
这个大学应该学过
有啥问题丢这里大家一起讨论吧

过去干啥工作的
怎么跨度这么大
摄像头驱动不好搞,寄存器特别多
随便改个值,画面变化明显

我也只搞过一次摄像头驱动
还是十多年前,镁光的摄像头
体验不怎么好

最快速的办法是两条路,我上面说的是正规路子,蹲马步
另一个就是四处问,四处搜,先解决工作中的问题
yhm2046
2023-01-03 09:24:10 +08:00
@litguy 好的谢谢,原来做 android 应用和 framework 上层的,现在是小公司人少事多,老板说都要学习
LXGMAX
2023-01-03 09:25:52 +08:00
芯片公司?
实际上内部有足够资源让你学习的,问下有没有文档之类,找人带带
BingoXuan
2023-01-03 09:37:08 +08:00
先了解一下摄像头用什么物理总线先,使用什么硬件平台连结摄像头,看一下嵌入式开发是 linux 还是 rtos 还是 bare metal 。把基本软硬件流程走一遍就没啥太大问题了。
kennyCoretek
2023-01-03 09:54:08 +08:00
emmm 所以 是怎么找到工作的。。。
Xavi1996
2023-01-03 10:26:39 +08:00
想快速上手的话不需要看电路图,啃 linux 驱动开发这本书吧,然后看摄像头的 datasheet ,看看是怎么通过写寄存器控制各种效果的。
singerll
2023-01-03 10:31:11 +08:00
要看懂电路图引脚啥的应该比较简单,但要彻底看懂电路图,最起码要把高数、复变函数、电路、数电、模电啥的看一遍,先不说难度如何,时间最起码也要半年。
wtsamuel
2023-01-03 10:47:09 +08:00
上手最快没必要系统学习, 直接看驱动摄像头的 mcu 的 datasheet 和这个摄像头相关例子的源码
有看不懂的问题, 上网搜或者提问让大神回答
duke807
2023-01-03 11:34:13 +08:00
建议先学 stm32 ,自己搞一些小 project ,譬如可以看一下我这个 stm32 驱动 ov2640 的小东西:
https://github.com/dukelec/cdcam

模拟电路建议看日本的丛书,譬如 「晶体管电路设计(上下) /铃木雅臣」
数字电路也可以试试「数字电路设计——图解实用电子技术丛书 (日)汤山俊夫」,这本我没看过

自己搞这些 mcu project 都要在 linux 环境,gcc 编译,kicad 画板,为后面 linux 驱动开发打基础

等都熟悉差不多了,再开始学 linux 驱动开发

不建议报培训班,国内编程培训班都很垃圾,譬如学嵌入式 linux 它会让你在 windows 里面安装虚拟机,这样你熟悉 linux 的时间会长 N 倍,效果还不好
zhttp
2023-01-03 16:39:05 +08:00
如果不是原厂开发的话,一般不会让你从头开始调吧,找一找 sdk 里面有没有相近型号设备的驱动程序,然后根据 datasheet 修改里面的初始化代码和各种寄存器读写代码,先跑起来确认设备和驱动能匹配上,然后再一点一点对。我之前调过一款摄像头,调到吐,主要是 datasheet 和实际寄存器有种完全对不上的感觉,读写没反应,最后还是原厂给了个写好的文档我 copy 过去的。。。学习的话,我看过宋宝华的那本 linux 设备驱动开发,还不错,再就是学一下 linux 基础。
xsen
2023-01-04 08:23:59 +08:00
就一句话,不要系统性学习驱动开发
针对性研究要调的摄像头驱动,不懂再去问、再去查资料
yhm2046
2023-01-04 17:36:58 +08:00
多谢各位老铁意见,现在有个具体问题请教:
rk3399pro 平台,Android9, gc2053 摄像头目前报错, 让 rk 工程师看了目前怀疑是 v4l2 命令重启导致摄像头连不上,命令如下
v4l2-ctl -d /dev/video0 --set-fmt-video=width=1920,height=1080,pixelformat=NV12 --stream-mmap=3 --stream-skip=30 --stream-to=/tmp/cif2.out --stream-count=5 --stream-poll
执行完重启,串口 log:
[Imgur]( https://imgur.com/fOoqnas)
有人遇到类似问题吗?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/906149

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX