维基解密黄菊内幕嵌入式越来越复杂,一个SOC芯片上集成的模块越来越多。以手机为例,典型的嵌入式产品,我们看看集成了多少模块:触摸屏、LCD、。。.。。.。。可以说,现在一个手机的复杂度和硬件配置,已经超过我们的桌面PC了。除了不断增加的硬件,软件方面,比如内核,光内核代码就有1000多万行,每天更新的速度超过你学习的进度,你能学得完嵌入式的所有知识和技能吗?工业主板
早期PC时代,我们知道能做出X86CPU量产的也没有几家,IntelAMD和威盛。但是嵌入式时代不一样了,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子系统、音频子系统、视频编解码、文件系统。。.。。.把其中一个模块你搞精通了,工资绝对不是问题。
对于嵌入式学习者来说,我们该学习什么,或者说如何学习?才能提高自己的职场竞争力,或者说对于一个新手来说,如何通过自学,达到公司的用人标准和技术要求,找到一份自己想要的工作?
首先,你要学会做减法,从现实出发,要有这样一个意识:我不可能精通所有的嵌入式技术,学会,制定合理现实的小目标。很多人喜欢那种不切实际的广告轰炸营销,击中你心理上的某个软肋,某个G点,一下子兴奋起来。越熬越浓的心灵鸡汤,并不能解决我们吃饭的现实问题。很多人,包括我,在学习的时候,都喜欢给自己树立各种线、计划、日程表。制定计划时满满,热情高涨,激动得睡不着觉。计划宏伟而饱满,仿佛成功就在眼前。但是往往不切实际,往往在早期,遇到各种困难,各种坑,各种拖延导致没有下来,最后夭折。然后接着制定下一个宏伟的计划,继续夭折,生活周而复始,day after day。观察我们生活周围,真正做出成绩的都是那些基于现实出发,能一下来的人,day by day。有时候你会发现,并不觉得他们有多聪明。
其次,保持自己的兴趣,说白了就是为了下去。见过很多人想学习嵌入式,花了很多米买一块开发板,满满,过一段是过去再看,已经不了。嵌入式开发难,难在哪里呢?主要在于开发的搭建,软件调试上,不像在Windows上使用VC开发程序,集成开发都帮你弄好了,各种断点、单步、查看堆栈、寄存器、内存窗口。而嵌入式不一样,硬件搭建会遇到各种各样的问题,各种电脑的兼容问题,各种莫名其妙的问题,有时候着实让人抓狂,时间久了,慢慢地学习的殆尽,也就不想学习了。这还不算什么,更严重的是,很多人学习嵌入式遇到挫折,往往会打击人的自信,觉得自己能力不行,智商不够,不适合干这行,在心理留下了阴影。对于个人学习者来说,买了开发板,你不买配套的万用表示波器等调试设备,遇到硬件问题也是一筹莫展,无决。
其实我们可以完全使用其它的平台去开展我们的研究和学习,比如QEMU,一款可以仿真开发板的开源软件,使用这款开源软件,我们可以在电脑上虚拟一个世面上流行的开发板,然后再在这个仿真的开发板上跑u-boot、Linux内核、挂载根文件系统,使用和开发板一样的源码,运行效果和真实的开发板是一样的。而且,使用QEMU的好处就是,“硬件”永远不会出问题,可以让我们避过硬件的各种坑,腾出更多的精力去研究嵌入式软件的各种架构、编程技能、内核驱动。。.。,这些才是嵌入式工程师的核心竞争力,需要花大量的时间不断地去积累,去磨合,去提高的。把大量的时间耗在一个本该不属于学习范畴的硬件bug上或者硬件不兼容上,不划算,因为你以后进公司后,遇到同样的问题,找硬件工程师,半分钟帮你搞定。所以说,选择一个理想的嵌入式学习平台,尤其对于初学者来说,很重要。
最后,要保持学习的深度,刻意。不要让自己永远待在学习的舒适区,要学会挑战自己,不断去扩展自己知识的边界,完善自己的知识体系和技能。很多人买了开饭,按照教程,“移植”了u-boot,Linux内核,制作了根文件系统,然后就陷入了迷茫:接着要干什么?要学习什么?想学习又感觉深入不下去,东一耙子,西一耙子,看看这,看看那,时间不知不觉就过去了。其实,学习嵌入式,基本的嵌入式知识和理论学习还是必要的,很多人推崇边做边学,到项目中学习,实践出真知。
当然这也是一个方法,但是也有弊端,那就是学习的不系统,很多有心人到后来还是得回来补课,完善自己的知识体系和技能。很多人玩开发板,烧写镜像,玩得贼溜,但是你知道这里面的原理吗?知道JTAG怎么下载的吗?Jlink和JTAG有什么区别?为什么PC上要装个JTAG软件而Jlink不用?程序的编译和链接是怎么样的?为什么内核镜像要下载内存的某个地址?换个地址行不行?为什么我们编写的程序要在有OS的下运行,在ARM开发板裸机下,你能写一个跑起来的程序吗?只有对这些问题深入思考,你才会对嵌入式有一个更深的认识,超越了平台,一通百通。
注:已经报名的请添加班级群669626886————————————————————————————————————
新兴的内存技术可望在嵌入式应用中找到大量市场,从而取代NOR闪存(flash),用于在微控制器(MC...
嵌入式设计是个庞大的工程,标准缺乏,规格多变,技术变化又特快,但嵌入式的工资水平,真的不赖,那如果你...
电源对于嵌入式系统中的作用可以看做是空气对人体的作用,甚至更重要:人呼吸的空气中有氧气、二氧化碳和氮...
当你不经意间走过一块广告显示屏时,你不会想到最新的图像技术正在让广告变得更具美感;当你在游艺场所内欢...
目前,ARM是嵌入式技术中使用最为广泛的一种。在市场需求的推动下,ARM嵌入式技术得到了飞速的发展,...
在项目或嵌入式系统应用程序开始时,很有可能在嵌入式系统的细节被删除之前跳入并开始选择微控制器。
我们经常使用许多使用嵌入式系统技术设计的电气和电子电和套件。计算机,手机,平板,笔记本电脑,数字电...
PCB设计中要做到目的明确,对于重要的信号线要非常严格的要求布线的长度和处理地环,而对于低速和不重...
面对工控行业的对数据高速运算能力要求增高的趋势,全球工业计算机领导厂商华北工控推出了结构紧凑、功能强...
在嵌入式主板领域,灵敏的嗅觉,锐利的眼光和与最新科技发展俱进的产品更新,一直是悦升行业主板的着力点。
超声诊断技术是一种经济、实用、可重复、无损伤的检查手段,具有无,不影响人体,适应性广等优点。特别...
RFID具有读取速度快、读取距离远、储存信息量大、标签上数据可加密、使用寿命长、工作适应性强等多...
随着计算机相关技术的发展,ARM是微处理器行业的一家知名企业,设计了大量高性能、廉价、耗能低的RIS...
USB作为一种串行通信总线,采用主从式通信方式,从设备只能被动响应来自主设备的请求,不能主动发起请求...
工业4.0(又名工业物联网)和智能工厂等当前的技术趋势正在深刻地改变工业价值创造过程,其特点是更高程...
设计一个低功耗系统需要采用整体方法,由用例分析驱动设备运行的不同方式 ,因为每个都有自己的功率要求。
嵌入式系统利用自身的技术特点,逐渐成为众多行业的标配产品。嵌入式系统具有可控制、可编程、成本低等,它...
在为定制电子设计挑选零件时,可以预先检查Linux驱动程序支持。为不受支持的硬件编写新驱动程序非常耗...
机器人不仅需要人工智能(AI)才能实现自主。他们还需要大量传感器,传感器融合以及边缘的实时推理。
随着我们一个我们期待“智能一切”的世界,传感器和边缘设备将拥有更多嵌入式系统,集成数据处理,人工...
由于其良好的性价比,基于32位和64位x86处理器的标准PC技术已经用于计算密集型工业应用数十年。
在人工智能技术趋势报告中,人工智能功能应用程序的增长速度比其他应用程序更快,它确定了计算机视觉,其中...
工业4.0视为以智能制造为主导的第四次工业,是集成大量计算机、通信和控制技术为一体的智能系统。
为实现无线接入网络的嵌入式人工智能技术,需要从无线接入网架构和关键技术层面进行系统性思考和创新。20...
随着机器视觉技术的成熟,联网摄像头产品开始逐渐向AI摄像头升级,全球数十亿台摄像头将经历从“及回...
想想AI,你几乎总是想到一个基于云的计算系统,在这个系统中,查询在源头捕获并发送到云进行处理,然后将...
选择MCU时要考虑MCU所能够完成的功能、MCU的价格、功耗、供电电压、I/O口电平、管脚数目以及M...
嵌入式系统硬件层的核心是嵌入式微处理器,嵌入式微处理器与通用CPU最大的不同在于嵌入式微处理器大多工...
以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗严格要求...
SRAM表示静态随机存取存储器,只要供电它就会保持一个值,它没有刷新周期,由触发器构成基本单元,集成...
A/D转换器是把电模拟量转换为数字量的电。实现A/D转换的方法有很多,常用的方法有计数法、双积分法...
众多计算机厂商设计出各具特色、种类繁多、可供用户灵活选择的模板级产品,如CPU板、系统支持板、人机接...
物联网时代的到来,不管是从行业应用,还是智能硬件的爆发,亦或是大数据等等嵌入式技术都得到了史无前例的...
基于STM平台且满足实时控制要求操作系统,有以下5种可供移植选择。分别为μClinux、μC/OS-...
在嵌入式系统具有足够的冗余度之后,系统的“初始性”对于其“最终计算结果”的影响就变得微乎其微了。
嵌入式操作系统是一种支持嵌入式系统应用的操作系统软件,它是嵌入式系统(包括硬、软件系统)极为重要的组...
随后为了更好地满足控制领域的嵌入式应用,单片机中不断扩展一些满足控制要求的电单元,如定时计数器和多...
在单片机嵌入式的编程过程中程序的好坏往往是由细节决定的,一个程序写的是否详细、灵活,是与日积月累的知...
嵌入式系统的可裁减性,必须在嵌入式系统设计中引入子系统和块的概念,只有在顶层设计时明确了子系统和模块...
嵌入式Linux工程师的学习需要具备一定的C语言基础,C语言是嵌入式领域最重要也是最主要的编程语言,...
在嵌入式系统中,推理可以在各种片上处理单元上运行,如中央处理单元(CPU),GPU,数字信号处理器,...
随着经济程度的进步和消费结构的转变,人们对消费电子产物的要求越来越高,如产物的机动性、可控性、耐用性...
目前我们的生活中到处都是嵌入式产品,什么手机,智能家居等,这些都是应用了嵌入式,嵌入式领域很广,当然...