搞了三年 iOS,感觉像是面向 Apple 编程,倒不是说技术不技术的,只是感觉 iOS 做到头只剩下“卷”了。各种 Blog 都是大谈 Runtime 、Runloop, 虽然对解决问题有帮助,有那么一点点能用的东西,但是也不多。没那么多这种需求,只剩下“卷”
Linux 驱动开发以前是没接触过的,之所以想转一是对 Linux 内核比较感兴趣,二是觉得驱动行业工作时间正常一点。但是我对驱动开发了解的比较少,希望能得到大佬的指点。
以前还是很好学的,计算机专业出身,计算机导论,操作系统有那么一点基础。自己跟着 MIT XV64 的课程学了一点,一路实现到了内存分配(粗糙的按页分配),后面进程调度,系统调用啥的就没继续实现下去了。不知道往哪继续学了,也不知道驱动开发要干些什么,侧重哪些方面的能力?
转行不容易,虽然 iOS 凉了我还有前端的基础,但是属实觉得前端、客户端这种是真的青春饭。
今年二十四,我还年轻,我想转行!!!
1
shawndev 2022-08-23 10:25:39 +08:00 4
你这不是 49 年加入国军,是 49 年自立军阀
|
2
junmoxiao 2022-08-23 10:29:00 +08:00
安全公司一直对驱动开发有需求,其他行业不知道
|
4
simonCN 2022-08-23 10:34:37 +08:00
"今年二十四,我还年轻,我想转行!!!"
不能同意更多,尽快转行 |
6
singerll 2022-08-23 10:38:15 +08:00
驱动开发仅了解计算机知识不够的,还需要了解硬件知识。
针脚定义,时序啥的,不仅仅是写代码的事。 |
8
a33291 2022-08-23 10:41:13 +08:00
年轻真好 😁
|
9
salmon5 2022-08-23 10:42:04 +08:00
搞驱动开发都有的 50 岁了吧,你说搞搞 go 云原生还靠谱
|
11
NoNewWorld 2022-08-23 10:51:24 +08:00
个人不建议,不如云原生这块(非技术,只是考虑短期内薪资、发展等)。当然如果认为自己非常牛逼的话,那个行业都可以,比如去试试芯片相关的。
|
13
zjsxwc 2022-08-23 10:55:44 +08:00
linux 驱动很简单吧,比如这个 gpio 例子:
https://github.com/Johannes4Linux/Linux_Driver_Tutorial/blob/main/04_gpio_driver/gpio_driver.c#L55 然后对用户来说就是单纯的文件读写, 个人感觉唯一的要求是要对外设硬件了解深入。 |
14
shijingshijing 2022-08-23 10:59:40 +08:00
云原生或基础架构才是正确路径,驱动和内核是大坑,这个行业只需要两种人:一种是大牛,一种是小白。中间的基本上都转方向了。
|
16
ren2881971 2022-08-23 11:03:07 +08:00
为啥这么想不开。
|
17
steins2628 2022-08-23 11:12:21 +08:00 1
@TaiChou 时序关电路什么事,时序是你和芯片通信用的,IIC, UART, SPI... 在这些协议的基础上你去看时序,你搞驱动不可能不看时序,还有,这不叫破解,你拿到芯片不给你时序才是有问题,而且搞嵌入式开发基本告别 cv 了
|
18
TaiChou OP @shijingshijing @NoNewWorld 云原生不是一个框,啥都往里装么,概念越模糊,感觉就越难摸到门路
|
19
TaiChou OP @steins2628 谢谢指点,我刚理解的有问题。大概就是要按芯片手册给的时序去实现程序是吧?时序分析仪大概就是用来 debug 看看自己输出的时序有没有问题?
|
20
singerll 2022-08-23 11:23:11 +08:00
|
21
shijingshijing 2022-08-23 11:25:03 +08:00
@TaiChou
驱动几乎可以认为是用硬件的思维去软件,和一般应用开发有很大的不同,比较形象的是面向寄存器编程,你可以先去看看 Intel 或者 ARM 的 ISA 手册,然后了解一下相关的汇编语言,这只是开始。 然后是各种协议的 specification:USB ,PCIE ,UART ,WIFI ,BlueTooth ,I2C ,SPI 。。。自己试着写一个简单的能用的玩意儿,然后才算入门。 驱动更看重的是经验的积累和思维的缜密,稳定和安全会放在首要位置。。。 |
22
TaiChou OP @singerll 抱歉抱歉,我以为你说的分析时序是分析时序电路。逻辑分析仪就是用来看你自己程序输出的时序是吧,相当于 Debug 工具?
|
23
shijingshijing 2022-08-23 11:32:36 +08:00
@TaiChou
而且芯片的文档不是你想象中的一份大而全的文件(只有 STC 单片机这样搞),而是一整套硬件,软件和实际应用等相关的文档集合。 一般至少有一个 Datasheet ,复杂的还会给 Specification ,还有 N 多 Application Notes ,然后给偏硬件开发的 Hardware Development Kit 。软件相关的如果是处理器类型的会有 ISA 专门介绍指令集,然后是 Programming Guide ,复杂的会有 SDK 。 这还不包括其他辅助类的文档,比如 Thermal Design Guide ,各种 Schematic & PCB Layout demo 和 Guideline ,比你想象的要复杂的多。 |
24
steins2628 2022-08-23 11:32:51 +08:00
@TaiChou 差不多,你不如直接淘宝买个 arm linux 的开发板直接入门看看适不适应,这还是人家写好了详细教程在教你,确定受得了,有兴趣就可以再自己买点传感器做点自己感兴趣的东西,这样一步一步来
|
25
acctv2 2022-08-23 11:32:58 +08:00 1
其实写驱动的大多都是硬件工程师,CS 出身的人并不多,连 OOP 的应用都很少,所以其实你在 CS 学到的好多知识也不一定派得上用场,iOS 开发那些经验在这里基本可以当作清零。
而且国内嵌入式这边要么是去华为海思这种超强的大厂给人写驱动,要么就是去一天到晚想着卷成本的芝麻小厂,前者专业背景要求过高,后者工资待遇和成就感都很低,所以前景并不太好。 |
26
TaiChou OP |
28
q474818917 2022-08-23 11:39:31 +08:00
什么时候等培训机构进入驱动嵌入就是一片红海了,所以现在赶紧的吧
|
29
acctv2 2022-08-23 11:44:52 +08:00
@TaiChou 嵌入式这块很多小厂甚至不需要什么像样的软件工程师,它们做的都是树莓派平替、STM32 平替,有的代码库就是直接.....嗯你懂的
|
30
smdbh 2022-08-23 12:08:38 +08:00
转行没基础可能都难,但驱动这些感觉太模板化了
|
31
yolee599 2022-08-23 12:45:54 +08:00 via Android
Linux 的驱动太成熟了,基本只需要 menuconfig 配一下就能用,需要从头开始写的比较少,一般都是芯片制造商做好了
|
32
darkengine 2022-08-23 12:51:29 +08:00
毕业的时候干过一年 linux 驱动,给公司研发的安卓手机移植过芯片驱动。具体是从芯片厂家那里拿到 datasheet ,拿到示例代码,根据公司的板子改改上电流程写下寄存器,向安卓 framework 提供 API 就可以了。其实跟互联网各种业务 boy 差不多,好的地方是项目时间没有互联网公司那么紧张,坏处是钱少,少很多。
|
33
chisj 2022-08-23 14:45:29 +08:00
我倒是在 2011 年从驱动开发转成了 iOS 开发……
|
34
luny 2022-08-23 16:45:05 +08:00
有自研嵌入式硬件设备的公司,对驱动开发需求还是比较大的
另外驱动开发技术栈也算比较成熟了,更多的是实际项目中解决问题 |
35
justanetizen 2022-08-23 17:32:22 +08:00 via Android
OP 应该上车 Rust
|
36
abcbuzhiming 2022-08-23 19:44:59 +08:00
@TaiChou 嵌入式根本就不是软件行业,尤其不是互联网类行业,其本质是制造业,需要大量固定资产投入,这也意味着,人在其中的成本被摊薄了,所以,嵌入式行业里的中下层,远比互联网卷,而且待遇差。因为那是制造业,是真正的 [厂]
|
37
ajaxgoldfish 2022-08-23 20:00:31 +08:00
楼主可以看我之前发的帖子
|
38
Shazoo 2022-08-24 11:43:20 +08:00
伙计,真正的嵌入式行业现在都不太需要写什么驱动了。模块驱动大多都是厂家早已写好,业务直接调用即可……
写驱动,调驱动都是 7-8 年前的久远记忆了……现在真开发一个产品,datasheet 的时序图都只是扫一眼,从来没见过哪个厂家不给 all-in-one 的 feature 验证 demo 的。 感觉现在出了做功耗管理还有点技术含量以外,剩下就都是业务代码。 至于偶现问题,内核 crash ,系统不稳定,恰好又需要经验,你转过去拿着互联网公司实习生工资去积累经验吗? 早跳早解脱,哥都开始玩 python 了……早年参与的核心项目,覆盖全国,月出货量 1M ,到现在还不是老老实实 tab 对齐代码…… |