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、(可选)可以学习机器学习,常用的算法