学嵌入式要学到什么程度才好找工作?

大家好,我是杂烩君。

一位朋友问了这样一个问题:

嵌入式技术的范畴很广,不同地行业可能涉及到不同地技术。如:

  • 机器人行业应用的相关技术可能有:传感器数据采集处理、电机控制、ROS机器人操作系统、规划与运动控制、WiFi蓝牙等无线通信、图像识别、语音识别等。

  • 智能家居行业应用的相关技术可能有:WiFi蓝牙等无线通信、MQTT等物联网相关协议、物联网操作系统、物联网安全、传感器数据采集处理、物联网云平台等。

  • 汽车电子行业设计的相关技术可能有:传感器数据采集处理、物联网通信技术、语音识别、电机控制、BMS电池管理、总线通信协议等。

不同的嵌入式产品,需要的技术不全一样。但所需的基础技术都是差不多的。

每项技术可能有着相应的开发岗位,这些岗位实际可能不全叫嵌入式软件岗,但这些岗位大多都是嵌入式软件工程师 + 特定知识的学习之后就可以胜任。如:

  • 嵌入式软件基础 + 电控知识 = 电控软件开发工程师

  • 嵌入式软件基础 + AI技术 = 嵌入式 AI 应用开发工程师

  • 嵌入式软件基础 + 音视频技术 = 嵌入式音视频开发工程师

  • 嵌入式软件基础 + 底层知识 = 嵌入式驱动开发工程师

学嵌入式要学到什么程度才好找工作呢?

我认为是这些点:

编程语言

基本掌握嵌入式必备的编程语言。C语言为主,C++为辅。在资源有限的情况下,大多数嵌入式产品还是使用C语言为主的,特别是底层驱动开发。上层应用开发大多用C,在一些资源比较充足的平台中,也会选择使用C++来进行开发。

补充编程语言的知识时,除了掌握语言本身的知识之外。还需要同时学习:编译、构建、调试等方面的相关知识。这类很重要的知识一般C语言课程都没教:

芯片

基本掌握嵌入式处理器的基础知识。嵌入式处理器种类很多:MCU(微控制器)、MPU(微处理器)、DSP(数字信号处理器)等。MCU,也就是我们常说的单片机。

初学期,重点放在单片机的学习这一块。

理解整体框图、掌握基础外设如:GPIO、UART、TIM、ADC、DAC、I2C、SPI的裸机编程及相关原理、应用。

操作系统

基本掌握操作系统相关知识。

  • 先了解学习RTOS,如RT-Thread等。学习操作系统内核知识:线程调度、时钟管理、线程间同步、线程间通信、内存管理、设备管理等,并掌握基本的使用。

  • 再熟悉Linux操作系统的基本使用。

  • 再学习Linux下的应用开发知识:多线程编程、多进程编程、文件I/O编程、网络编程等。

开发工具

基本掌握必备的开发工具。

  • VScode、VS、Sourceinsight、Vim的使用。

  • 逻辑分析仪、示波器、调试器地 使用。

  • gcc、gdb的使用。

  • git的使用。

  • 对比工具、串口工具、网络工具的使用。

解决问题的能力

上面几点都可以通过一些技术资料进行学习。这一点则需要需要在实战中锻炼,比如自己找一些小项目来做,一来可以把上面列出的几点内容给完整地串起来,二是在做项目的过程中会遇到很多问题,通过不断解决这些实际问题可以积累一些解决问题的经验。

工作之后,知识储备该有的都有了,大家最后拼的也都是解决问题的经验、能力。

我觉得牢牢地掌握这些99.99999%的概率都会用得上的嵌入式软件基础对找工作才比较有利。其它一些技术可以再用的时候再去了解、学习。

特别是一些行业相关知识,可以入行之后再进行学习。如果你一开始的目标就很明确,要在某一行、某一个方向进行深耕,也可以提早学习相关知识,早些积累一些优势。

  • 5
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
精通嵌入式Linux软件开发是一个相对主观的概念,难以用具体的程度来衡量。然而,以下是一些指标,可以表明你在嵌入式Linux软件开发方面达到了较高的水平: 1. 熟悉Linux内核:精通嵌入式Linux软件开发的人应该对Linux内核有深入的理解,包括内核的架构、设备驱动、调度器、内存管理等关键概念和机制。 2. 掌握嵌入式开发工具链:熟练使用交叉编译工具链、调试器和其他嵌入式开发工具,能够进行嵌入式软件的开发、编译、调试和部署。 3. 理解嵌入式系统架构和硬件接口:对嵌入式系统的整体架构有清晰的认识,包括处理器架构、外设接口(如UART、SPI、I2C等)、存储器子系统等,并能够与硬件工程师紧密合作进行系统设计和调试。 4. 熟悉Linux驱动开发:具备编写和调试Linux设备驱动程序的能力,包括字符设备驱动、块设备驱动、网络设备驱动等。 5. 掌握系统调试和优化技巧:能够使用调试工具和技术(如GDB、strace、perf等)进行系统调试和性能优化,识别和解决系统中的问题。 6. 熟悉嵌入式Linux应用开发:能够开发嵌入式Linux应用程序,包括Shell脚本、C/C++应用程序、多线程编程等。 7. 具备项目经验和解决实际问题的能力:在实际项目中有一定的经验,能够独立解决嵌入式Linux软件开发中的问题,并具备良好的代码质量和工程实践。 请注意,以上仅是一些参考指标,并不是硬性规定。精通嵌入式Linux软件开发需要不断习、实践和经验积累。重要的是不断提升自己的技能和知识,保持对新技术和发展的关注,并能够灵活应对不同的项目和挑战。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

嵌入式大杂烩

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值