写在前面
本人非技术大牛且从未深入了解过相关领域,此文仅供参考。
以下内容来自一个本科刚毕业的蒟蒻的碎碎念,想看看论坛里佬友们的看法
对于机器人比赛选手而言,制作一个比赛所需要的"成果",靠 " 机械 电控 算法 硬件 " 组别四分法就可以产出
而其中,嵌入式往往和电控强绑定,导致电控的同学临近毕业时总说"要找嵌入式的工作"而不是"找电控的工作"
但比赛天然具有"向结果看齐"的属性:

对于电控组成员来说,(以本人的经验总结),没有个人爱好驱动着向外探索的话,实际涉及到嵌入式领域的只有"实时操作系统 中断管理 外设通信 内存管理"这些
作为电控组的一员,我会觉得打了两年比赛,自己的嵌入式能力较加入时并没有多少增长,我所谓比别人了解的多的内容,仅仅是因为自己踩过坑、了解过、学习过,但学完后发现"这并没有什么壁垒"
我个人对嵌入式的理解是要对自己写出来的东西能够"完全把控",但对于比赛,却往往是从效率出发
关于mcu本身,没有人会在入门stm32的时候自己写HAL(硬件抽象层)库
关于代码编译,没有人会在入门的时候去写makefile或者汇编层,编译链的了解也仅仅是去官网下最新版本的工具链并载入编译器中
关于调试,赛场上设备芯片是固定的,需求是明确的,会不会调试像只是"思维’和"熟练度"的差异
关于控制、数据处理,对IMU使用的卡尔曼滤波、数据融合难点都在于"算法";运动控制的难点除了状态机,另一个是如何设计状态机,难点在于也只在于"个人思维"
关于功耗,对机器人的功率控制难点也在对电机控制的算法或者策略上,场上芯片也不会有休眠需求
但反观其他三个组:
- 硬件组对应传统嵌硬,除了"会在lceda里给引脚连连看"这种基本功能,其深造路径很明确:往电源方向深造(高负载低阻抗,、往电磁领域深造(板载天线设计、抗电磁干扰)、往进阶版连连看进阶(多层板、阻抗匹配、高速电路)
- 机械组则对应结构岗,虽然方向固定,但这行吃天赋、吃学习能力(机械设计原理好几大本)、需求大(虽然都叫结构,但不同领域、产品对结构技术人员的要求不一)
- 算法组就不说了,算法^-^永远的神(可能有的算法只调参,但这里指的是广义的经常霸榜的那个"算法")
嵌入式对比三者就显得格格不入,对原理图要理解,但这属于硬件的入门课程;对通讯协议要了解,但钻研下都能自己封装,封装后又回归了应用层开发;对寄存器要了解,但这东西会看数据手册就行
于是带着疑问,我转生成为了软开
但对于嵌入式,我变得愈加迷茫
我学习了网络协议,我发现通讯协议并不是嵌入式的壁垒
我学习了操作系统,我发现寄存器的理解和应用也不是嵌入式的壁垒
我阅读了一些技术博客,发现"如何写好代码"的逻辑思维是软开和嵌入式通用的
我水了技术群聊,发现嵌入式在某些厂是和Linux绑定的
渐渐的,我给嵌入式下了个定义,嵌入式只是代表在"嵌入式平台"上开发,它并不意味着某一个或多个特殊的技术栈
或许让一个计算机软开直接上手做嵌入式项目是不可能的,但让一个软开经过简单了解就上手在嵌入式上开发应用不难。我下了个暴论,我认为嵌入式不存在壁垒。
真正的壁垒,应该隐藏掉嵌入式的平台标签,看项目真正需要的是什么能力
用一句我很喜欢的话做结尾
穷究原理,洞悉本质
当我们究究原理的时候,才是在提高自己。即使嵌入式的"本质"可能并不只属于"嵌入式"