Navigation menu

新闻中心

如何开始学习嵌入式开发?

  

如何开始学习嵌入式开发?

  

如何开始学习嵌入式开发?

  ·

  掌握:c语言,linux系统编程,网络编程,shell脚本,makefile等

  往上走: c++, ja ,Android,一些常用通讯协议,如http等

  嵌入式系统开发,主要涉及的内容包括但不限于:操作系统(Linux,FreeRTOS,uC/OS等等),协议(通信协议,接口协议,数据协议,文件格式等等),库资源(DLib,GTK,OpenGL,OpenCV等等),资源分配(存储空间,运行空间,GPIO等等),硬件IP(LCD,Camera,Sensor等等),工程技能(编译,链接,仿真,脚本,工具等等)。

  如何学习它们呢?我建议:

  1.参加培训班,或自学培训课程。好处是,系统化学习,有很多知识点,面面俱到。坏处是,有点走马观花,且可能需要一点学习经费。

  2.追随网络大V,学习知识和经验。现在自媒体时代,很多人都在网上分享技术和经验。好处是,随时随地学习,且很有可能会遇到真知灼见,让人喜出望外。坏处是,不够系统化,内容是人家大V自定。

  3.学一门编程语言(例如C语言),入职做嵌入式产品的公司做开发。好处是,亲身力行,现学现用,货真价实,且有机会得到前辈的教导。坏处是,不容易入职到系统部门,就算入了,也很可能是一枚螺丝丁,毕竟现在分工都精而细。

  无论是哪种方式,都需要不断的学习,实践,总结,再学习。这是一个持久战,质变需要量变来堆积。

  谢谢大家。

  嵌入式所涵盖的行业很多,后期会根据工作,只会专注一个方向,从宏观上会为分嵌入式软件开发和嵌入式硬件开发,软件开发主要是基于系统(Linux,VxWorks,WinCE等等)之上的应用软件开发,硬件开发有主板设计,系统移植剪裁底层驱动的编写等

  我个人经历是从单片机开始的,先是C与C++,数电模电,电力电子,电路设计,单片机原理,FreeRTOS,数据结构,计算机操作系统,后因工作的需求我又把大学自动控制理论,信号与系统,复变函数,线性代数,微积分,统计学,编译器原理重新学了一遍,这些都是基础,一定要学懂学透彻,这会给后期的研发工作带来帮助,还要多画板,打板,多实操,光学不练效率很低,知识有重复性的,只有反反复复看和使用才能明白,可以买一些开发板辅助学习,现在网络发达,网络资源提高自己的学习效率。

  Linux系统估计是每一个嵌入式工程师发必经之路,不管你是嵌入式软件开发还是硬件开发,你都的把它弄透彻。

  以上是本人个人经历和观点,和成长经历,不一定适合别人,仅供参考,本人是爱好才选择的这条路,若果你没有有这方面的喜好,还是慎重选择,

  首先一个月时间学习单片机的开发,熟练stm32的开发,各种外设(比如232,485,spi,usb,wifi,以太网等)形成自己的模块,后续开发代码直接拿来用就行了。这些弄熟练之后,就可以开始学习linux相关,比如shell,系统编程,网络编程,多任务及同步,各个系统之间的通信。可以列一个学习计划:

  1、c/c++语言基础,数据结构

  2、单片机可以选择stm32学习

  3、linux基本命令,shell脚本

  4、linux的系统编程,网络编程

  5、(可选)可以学习上位机相关,做界面程序与单片机,设备通信。建议学习Qt

  6、(可选)可以学习机器学习,常用的算法