嵌入式软件开发需要学什么

 我来答
oo偶尔发呆
2023-02-06 · 超过80用户采纳过TA的回答
知道小有建树答主
回答量:534
采纳率:100%
帮助的人:11.4万
展开全部

1. 编程能力

嵌入式工程师大类上属于软件工程师的范畴,编程技能是基本功,DJI、小马智行、NINEBOT、石头科技、OPPO、小米、地平线这些公司都对C/C++要求熟练掌握的程度。除此以外对解释型语言要求为至少熟悉一种脚本语言。了解Linux系统,会使用Makefile工程管理工具等。

2. 处理器架构

美团、小马智行、石头科技、OPPO、VIVO都要求熟练掌握或者精通STM32单片机和ARM处理器架构,其它加分项有DSP、熟练使用ARM Cortex-A或M系列内核的SOC。这部分我们需要了解Cortex-M和Cortex-A系列处理器架构。哈佛架构、冯诺依曼架构、多级流水线、是最简单的问题。SIMD、MIMD、指令预取、乱序执行这些概念也要搞懂。

3. 操作系统

目前的电子产品功能越来越多,也越来越复杂,操作系统可以极大地简化产品的开发难度。

大疆、美团、小马智行、小米、地平线都要求熟悉Linux下的多进程多线程、网络编程的开发和调试,内存、功耗、性能优化等。

4. 接口与驱动

许多初涉嵌入式行业的人会狭隘的认为搞嵌入式就是写驱动。美团无人配送、小马智行、石头科技对CAN、SPI、I2C、UART这些常见的低速接口都要求熟悉,其它的像LCD、Touch、Camera、USB、BT/WIFI/GPS、IMU这些进入寻常百姓家的Sensor驱动开发经验是妥妥的加分项。

5.Framework

中间件和协议栈的部分有一个特点,研发机器人的企业一般都会要求熟悉ROS,相机类的企业要求熟悉camera、codec、storage相关的pipeline。还有基本的协议栈也是必须了解和掌握的。

6. 应用编程与调试

美团无人配送、小马智行、NINEBOT、小米都要求熟悉Linux或Unix系统编程,了解基本的编译原理,需要掌握gdb、valgrind、strace、perf、coredump等调试手段,用好log系统。

只要掌握上面编程能力、操作系统、Framework这些内功心法,调试工具不过是招数。

7. 硬件知识

科技企业大多要求了解一定的硬件知识,基础硬件知识的掌握程度,达到可以看懂原理图并对常见的元器件有一定了解,熟悉模电数电知识即可。基本上是电子工程类学生,所学专业课的内容。另外,要会使用示波器等测试仪器,会驱动常见的传感器等。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式