我的Linux驱动学习路程
1. 背景
本人本科毕业于自动化专业, 大二大三学校组织的两次实习都是深入工业公司的生产车间, 所以本科毕业之后也就自然而然的来到了工控领域
- 某央企的子公司, 车间用的西门子和三菱的PLC, 甲方开发的, 我拿不到梯形图的源码, 只能把upload梯形图对着触点标签研究梯形图, 解决车间现场的问题, 完全是维护不涉及开发, 学不到什么东西, 主要工资还低, 就润了
- 某新能源电池厂, 润来这了, 总算不干维护可以开发了, 设备用的倍福和欧姆龙. 刚好赶上了该厂大阔产能的几年, 出差全国各地的园区部署电池产线, 车间噪音大, 还因为车间碳粉大生过两次病(因为在车间没戴口罩), 某些园区还没建设好就开始铺设产线, 导致要走泥巴路或或顶着车间的高温工作. 最离谱的还是一次部门表彰某领导的发文中提到他一直出差小儿子出生一年半没见过面.
两次的工控经历让我沉思良久, 工控行业需要深耕工业现场服务甲方客户, 就算开发原型机也避免不了支撑工业现场, 结合一些自己的感悟, 总结下我放弃工控行业的原因
- 出差: 工控领域人是服务设备的, 设备售卖到什么地方, 这个地方就是你的出差地, 大客户甚至需要长期驻扎, 单身还好说, 有了家庭之后的再这样天南地北的出差也是对家庭的不负责
- 现场: 各种不可控的生产环境, 不同的项目设备用于不同的生产环境, 可能这次进全自动化无尘车间光鲜亮丽, 下次就是下煤矿进锅炉房灰头土脸
- 安全: 工控软件开发的第一要义! 常在工业现场经常有个小磕小碰都习以为常了, 但工控软件不是普通的软件, 安全功能没写好缺胳膊断腿出人命都有可能, 人命关天, 天是什么, 天是出事故被迫停机的产线, 产线一天不开工客户能急死. 开个玩笑, 我管甲方干嘛, 主要是如果真是自己的代码没写好导致出事故了, 虽然责任可能轮不到自己身上, 但是心中的自愧是难免的, 良心过不去
2. 转行
还在电池厂的时候我就考虑转行的事了, 纯软的前后端和嵌入式软件的单片机Linux
- 考虑到中年危机和职业寿命和中年危机, 再加上自动化专业本就是软硬结合, 所以我选择了嵌入式
- 考虑到薪资待遇和技术深度, 我选择了linux
3. Linux驱动入门路线
基础
- C语言, 重点了解指针和内存地址的关系
- leetcode刷题, 可以用C++刷题
- git的使用, 基本的clone, push, pull, reset这些就行了
- vim的使用, 知道怎么修改, 怎么保存就够了
开发板的选择
建议先用韦东山的QEMU, 可以省区很多环境配置的问题, qemu的板子用熟练了之后, 再考虑要不要购买物理板子(我当时不懂这些, 直接买的正点原子的imx6ull板子)
我的qemu环境配置步骤: https://www.cnblogs.com/rongjingyun/p/18709024
100ask imx6ul qemu - 百问网嵌入式Linux wiki
使用 100ask 的 qemu
Qemu - 百问网嵌入式Linux wiki (100ask.org)
在百度网盘下载对应的资料
并安装
教程
韦东山的QEMU板子当然优先使用韦东山的教程, 韦东山的视频教学bilibili上有, 可以自行搜索
# 教程资料
git clone https://e.coding.net/weidongshan/01_all_series_quickstart.git
# 第七篇 驱动大全的文档、源码等所有配套资料
git clone https://e.coding.net/weidongshan/linux/doc_and_source_for_drivers.git
提一下(只是提一下,优先还是韦东山的教程), 韦东山教程视频我没怎么看过, 我最开始是正点原子入门的, 入门之后进一步学习的时候发现 北京迅为 讲的也不错, 在这里推荐一下
视频: 制订评论有迅为的整个linux路线
【北京迅为】嵌入式学习之Linux驱动(第一期_驱动基础_全新升级)_基于RK3568
源码:
git clone https://github.com/rongbc/rk3568_class.git
3. Linux驱动进阶路线
TODO
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 实操Deepseek接入个人知识库
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库