嵌入式越来越复杂,一个SOC芯片上集成的模块越来越多。以手机为例,典型的嵌入式产品,我们看看上面集成了多少模块:触摸屏、LCD、USB、WiFi、4G等无线通信、音视频编解码IP、DDR、存储控制器、3D/2D加速、GPS、指纹识别、 NFC、DMA、G-sensor各种传感器。..。..。。可以说,现在一个手机的复杂度和硬件配置,已经超过我们的桌面PC了。除了不断增加的硬件,软件方面,比如Linux内核,光内核代码就有1000多万行,每天更新的速度超过你学习的进度,你能学得完嵌入式的所有知识和技能吗?工业主板
嵌入式系统开发
早期PC时代,我们知道能做出X86 CPU量产的也没有几家,Intel、AMD和威盛。但是嵌入式时代不一样了,ARM的IP授权模式导致不同的芯片厂商百家齐放,不同的SOC平台和开发板眼花缭乱,针对不同行业需求定制的SOC平台雨后春笋:手机芯片、平板芯片、视频安防、物联网、汽车电子、工业控制,甚至人工智能AI芯片。..。,你到Linux内核的ARCH下面可以看看有多少种CPU架构,再到arch/arm下面看看有多少种开发平台,这还只是加入到内核mainline的平台,算上没有加入Linux内核主线的各种平台,其实数量更多。
众多的芯片架构、不同的开发板平台,我们该如何去学习?
嵌入式和PC的概念也越来越模糊了,Intel已经推出X86架构的CPU和嵌入式产品了,比如平板。ARM也开始进军服务器和笔记本领域了。无论什么CPU架构,ARM、X86、MIPS、PowerPC,还有最近火热的物联网芯片,无论是做嵌入式产品,还是 PC、服务器,他们的底层本质其实都没有变,都是计算机原理和系统架构,都是冯诺依曼的计算机架构,图灵原型机的各种实现。
不断复杂的软硬件系统,对嵌入式工程师或者学习者来说是一个挑战。这对我们本身的知识和技能有一个更新的要求。早期 51单片机时代,我们可以自己使用面包板或者自己画PCB,做一个开发板,然后在上面开发软件。软件、硬件自己全搞。现在不断复杂的SOC平台,再想一个人全搞,软硬通吃,基本不可能,这也导致我们需要分工协作来完成。首先软硬件的分工,各司其职,各自精通自己的领域,然后进行软硬件整合,协作开发。再次,软件方面,嵌入式软件也越来越复杂,Linux 内核1000多万行,android源码下载下来就占几个G的空间,自己想全搞,同样不可能,同样需要进行分工。比如android,需要分为BSP工程师、Linux内核工程师、驱动工程师、android中间层开发工程师、APP开发工程师。对于一个Linux内核,也需要分工,各个模块同样进行分工:Linux内核的USB子系统、音频子系统、视频编解码、文件系统。..。..把其中一个模块你搞精通了,工资绝对不是问题。
对于嵌入式学习者来说,我们该学习什么,或者说如何学习?才能提高自己的职场竞争力,或者说对于一个新手来说,如何通过自学,达到公司的用人标准和技术要求,找到一份自己想要的工作?
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
全部0条评论
快来发表一下你的评论吧 !