打印

想学嵌入式应该先学什么?

[复制链接]
460|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
lindoug|  楼主 | 2020-6-24 14:31 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
作者:宅学部落-王利涛
链接:https://www.zhihu.com/question/62978121/answer/831904061
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

嵌入式现在已经是一个很宽泛的概念了:多平台、多操作系统、多行业,只要你编写的程序不在PC上跑,在移动设备上运行,都可以称为嵌入式。
目前主流的平台主要分为3类:
  • 51单片机平台:主要应用简单的电子设备、控制设备
  • STM32 + RTOS 平台:主要用于工业控制、物联网、航空航天等
  • ARM + linux/android:主要应用于消费电子:手机、平板、智能手表等
另外,X86架构的CPU现在也有嵌入式开发板了,如atom,ARM架构的CPU也已经进入服务器的领域了,所以嵌入式和桌面开发的概念已经慢慢开始变化。
他们都可以看作:计算机系统开发。
传统的嵌入式学习路线,网上一般都会推荐:先学习C51单片机,然后再学习STM32,最后ARM+Linux。其实,这三条路线,基本上是三条相互独立的技术路线、技能树。不必都走一遍,太浪费时间了,而且现在也没有这个必要了。如果你想从事ARM+linux路线,直接学习ARM,Linux就可以了,原因如下:
  • 早期的嵌入式学习,由于Linux方面的资料少,坑多,所以很多人会建议先学习STM32+RTOS,然后再学习,可能学习曲线平缓一点。但现在没这个必要,Linux的学习资料、培训视频、QA目前已经非常丰富,直接上手就可以了。这就跟你学驾驶一样,没必要先学会骑自行车、摩托车,再学开小汽车。
  • 随着嵌入式系统越来越复杂、SOC越来越复杂,linux/Android越来越复杂,一个人不可能掌握所有的嵌入式技能!你精通Linux中一个模块、子系统、驱动模块,其实已经可以找到一个不错的工作了。早期的嵌入式系统学习,比如51单片机,自己设计电路、画PCB、焊板子,写软件,像早期我也是这么过来的,因为51单片机比较简单,所以可以这么干,一个人一条龙全部干完。现在的ARM系统已经很复杂了,光PCB就4层板起步,Linux内核源码2000万行,一个人根本搞不定的,所以要讲究精确分工:不仅软硬件要分工、驱动层应用层也要分工,具体模块也要分工。你精通一个模块、子系统、算法,可能就要花不少时间,就可以找到一个不错的工作了。



使用特权

评论回复

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

468

主题

472

帖子

19

粉丝