资讯详情

怎样混好嵌入式/MCU/ARM/DSP这一行?

很多初学者,甚至是混了好几年的老手,都在抱怨为什么电子行业竞争这么大。 颓废,这完全抹去了自己的激情,没有激情,做电子,完全是浪费生命。事实上,竞争真的很激烈吗??相比之下,业务竞争不大,管理竞争不大,当今社会,哪个领域,哪个行业,竞争很大。

所以,如果你想逃避竞争,那么你就不必活着,当然,你自己的家庭很好,父母很富有,那就另当别论了!所以, 不管什么行业,都不用问竞争大不大的问题。答案都是:竞争大,但是必须面对,我们要自己面对的竞争越小,那么你的技术能力应该是越牛X。从事电子工作的人应该跟上《纽约时报》,但人们的头会随着年龄的增长而变得迟钝,这导致了电子人才(尤其是电子软件)的自然规律。

当他们自己创业或技术管理时,他们完全脱离了技术。请几个二十多岁的新手让他们发现自己的头,靠自己的经验。

转行,这个不好评论,不知是祸是福。

继续做技术,但这会很累,每天强迫自己学习,也不讨好,也不敢轻易换工作,因为此时编程思维固定,缺乏工作激情,学习能力低,新的工作环境难以适应,这种情况,如果不是老年人,或已经是技术负责人,那么很容易被新手取代。也就是说,经过十几年的技术,这些人会慢慢淡出这个行业,新旧交替,长江后浪推前浪。

因此,如果你真的有能力,真正的技术人才将永远缺乏。因此,只要你有能力,你将永远受欢迎,永远不怕竞争,你就不应该担心竞争是否大,而应该担心你是否牛。

大二的时候开始自学单片机(我们学校的单片机课程是大三开的,汇编版)。当时完全不知道什么是单片机。根据书中的原理图,我不懂万用板焊接、按钮、数码管、串口、电位器、温度传感器等。反正就是焊接。程序一点都不懂,哈哈,还是抄袭,写好编译,烧录,好吧,但还是不懂。哈哈。但这给了自己很大的自信,记住,搞电子的人,总是成就感第一,虽然不懂,做了,还是很有成就感的。慢慢地,到了大三,开始学单片机和C语言,老话,上课要集中精力。在这个时候,学习理论并付诸实践是很重要的。我以前经常去实验室,回宿舍,做单片机,编程,调试开发板等等。这段时间很重要。为什么有些人不适合一起上课?因为这个时候他们没有动手,忘得太快。

学习单片机,是软硬件的综合体。不仅仅是会点汇编或C语言说会单片机,最多只能说会编程。由于大多数单片机系统都是没有操作系统的裸机系统,因此没有所谓的操作系统和应用软件,也没有操作系统层密封的一些也就是说,需要建立一个简单的前后台系统,只写应用软件,很难使用单片机,因为他们只有硬件,没有软件接口,不能开始。因此,学习单片机,首先要学习硬件,即简单的电阻电容电感、三极管、二极管、比较器等相关基本部件的特性及其应用。就我个人而言,我认为大学教程中的模电数电非常重要是数电和电子的基础,尤其重要。然后数电要吸收它的思想,很多数电介绍集成IC,如门电路、计数器、触发器、比较器、运算器等,目前工业上很少见,但其设计理念值得学习。

理解单片机内部的人就清楚,单片机或者其他的主控(ARM DSP等)内部其实是这些东东高度集成的。所以,在学习单片机的时候或者之前,先抽时间学习模电数电,学习自己的理解,就可以学习单片机编程,C语言或汇编都可以,看个人爱好,C语言移植方便,维护好,编程快,但缺点是编译的CODE一般用于移植通用型要求高的嵌入式软件领域,或较大的单片机项目,或者对价格不敏感的产品需要开发速度。相反,汇编用于利润薄、成本低、开发难度小的行业,如小家电。相反,汇编用于利润薄、成本低、开发难度小的行业,如小家电。MCU也很便宜,几块钱几十kFLASH ROM,在技术人工如此昂贵的情况下,估计C语言更能迎合市场。在学习这些理论知识的同时,我们都需要做实验,不怕犯错,最怕懒得做。

初学者学完编程语言,或者想把单片机换成纯软件的人,都会有一个共同的特点,那就是下一步不知道怎么入手?

然后我会问,你懂硬件吗?要求不高,稍微了解一下就好,不要求很好,因为硬件越老越辣,越久越醇厚,运动越多,自然会很好。

如果你一点都不懂,请看上面的一段,学习硬件基础。

如果你稍微了解一下,那么你现在的切入点就是在各种单片机中找到合适的入门单片机。初学者做出的任何决定都是以易入手为标准的。如果你开始,你不怕以后跑不快,努力找到一些通用的。MCU,信息多,软件平台多,使用方便,比较51核,虽然简单,但它是鼻祖,学起来方便,只要懂了这个鼻祖,其他复杂的事情,但它的繁殖并不难。一下子做太难的事,不仅学不会,还会打击自己脆弱的心灵。

选择单片机,然后搭建开发平台,首先是软件开发平台,针对不同的单片机内核或型号,有不同的平台,通用51核KEIL51,AVR的IAR ICC,不同厂家的开发平台很多,不一一列举。二是单片机硬件平台,即开发板。不同单片机的引脚和外围略有不同,因此开发板也具有针对性。许多在网上销售开发板的人希望做得非常通用,并支持多种型号MCU,价格不高,如果怕麻烦,怕焊接错误的初学者,可以买,关键是现在开发板便宜,几十元很漂亮,在那个时代总是几百元,流血啊。当然,我推荐自己焊接,尤其是那些觉得硬件还可以的人。借此机会锻炼焊工,对电路有更深的了解。事实上,开发板都是一样的,只要你按照以下原则焊接:

首先,焊接最小工作环境、电源电路、复位电路、振荡电路(现在有很多MCU内部晶振集成,精度好,频率高)。然后是其他常用的外设电路,按键输入(如果按钮多,可以用矩阵学习矩阵扫描),串口(UART),AD/DA,蜂鸣器、数字管、点阵显示屏、电机驱动、温度传感器等,这些数据很多,几十年来,初学者都在学习。

这些外围电路,网上信息多,随便找几个比较就可以了。找个万用板,就可以动手焊了。如果不成功,测量单片机工作电压异常,晶体振动是否振动,复位电路是否错误等。如果不成功,多焊一块,哈哈。有了软硬件平台,就可以一个实验一个实验的动手,开始是模仿,后来就改动,再后来就完全自己搞一个有新意的,从0开始写code,做第一件属于自己的事project。顺便说一句,单片机编程和纯软件编程,除了编程理念和大多数语法,其他,寄存器配置和一些语法是有针对性的,花一些时间学习。学完51,有时间可以学AVR PIC MSP430 等等其它内核单片机或51核单片机、宏晶、笙泉等,作为一种改进练习。

ARM 、DSP等等,其实也属于单片机,只是它的核心牛X一点。我做过两件事,用了一段时间。但是,如果你只让他作为普通的单片机使用,说明你不会使用。

首先说ARM芯片,它的核心是ARM内核的主频高很多,普通的有几百。M。CPU缓存大,流水处理线多,大大提高了CPU利用率。这种IC资源足以使嵌入式操作系统正常运行,WINCE, LINUX, UCOS 等等,一个操作系统移植到里面,跑起来,然后用操作系统的接口写一些应用软件,直接控制其强大的外设。当然,中间还有另一种工程师在工作,那就是嵌入式驱动工程师。他专门为硬件接口写驱动器,密封接口供上层使用。这种工作有点像单片机。很多人想直接从事软件ARM,所以我的建议是,除非你有很强的能力,否则你可以直接这样做ARM,否则,先学单片机,再学ARM吧。

DSP,中文名称为数字处理器,看它的名字就知道了,它是用来处理数据的,它的数据处理能力,比较ARM一般来说,界面不强ARM它的界面是有针对性的,快速存储,快速访问,这些都是为快速处理数据而准备的。它的主频也是几百M,DMA一定有。一般来说,图片处理、视频处理、网络数据处理等多用于DSP的。因为它用于数据处理,所以很精通DSP人,一定要精通各种数据处理算法,什么傅里叶等等,假如你会DSP看做一款MCU来吧,太浪费了,100块钱的东西当几块钱用。要用好,物尽其用,真的很难,要精通算法。

嵌入式软件分为嵌入式操作系统软件和嵌入式应用软件。嵌入式软件大多寄宿ARM三星、飞利浦等都有核心芯片ARM内核的IC,做计算机软件的人很容易转到嵌入式软件,但是做嵌入式驱动软件有点难,因为这涉及到硬件接口,一般都是单片机的人转过去做的。这几年这个东西很流行,用在数码产品上,比如MID,我在凌阳的时候,刚毕业的应届毕业生都知道linux那压力啊,哈哈,是学校专门开课的,可想而知,想逃避竞争的人,别想了。

嵌入式一直被称为高门槛,与软件开发相比,起步工资也被网民嘲笑为饥饿。到处都人热情地投资于嵌入式,无助地转向产品经理或技术销售。嵌入式工程师有前途吗?

的确,由于嵌入式代码量相对纯软,初始工资是由于,但行业大牛的工资也非常可观。另外以长远目光来看,嵌入式渗透消费电子、安全安防、汽车电子、医疗电子、电信等等各个行业的计算机领域,而每年也约有40万的人才缺口。今年机器学习(ML)话题大热,Arm也推出神经网络机器学习软件 Arm NN,可在基于Arm的高能效平台上轻松构建和运行机器学习应用程序,未来嵌入式行业也将不断革新,嵌入式市场有所可期。

 

据知乎某15年从业人员看,对于嵌入式不必悲观,也切莫盲目乐观,不同时期不同人对前途的定义是不同的。他表示,有了更多的项目经验才有立足的机会,有广阔的人脉关键时刻才会有人拉一把,有了目标才能专注一个方向不断发展。另外,他还表示,管理岗能爬就爬,错过机会,错过年龄,追悔莫及也无济于事。

 

还有网友表示,世上不只平均收入排名第一的行业从业人员可以高质量的生活,排名第二、第三、第四等等从业人员都有高质量的生活,而在排名榜单上光鲜亮丽的从业人员也未必过得大红大紫。任何行业都与机遇、环境都有关,再好的行业也有混不下去的人,再差的行业也有人闷声赚大钱。另外,时间在变,世事也在变,前几年大热的公务员,现在也逐渐被人嫌弃。

 

另外,嵌入式这个鱼塘也有搅浑水般的存在,嵌入式ARM也曾经发布过《不是嵌入式坑了你,而是你坑了嵌入式》一文(https://mp.weixin.qq.com/s/Xh1ks1mlQtSM29v7y2MvIg)。据了解,某知乎er最近面试的十几个平均工作年龄超三年的硬件工程师,居然搞不清楚三级管mos管,甚至连三个脚的名字都可以搞错,高低电平这种基础知识也搞不清楚,令人意外的是,这种水平的人开口要价也基本10K+。

 

什么是前途?个人兴趣+努力程度+把握机会=前途。如果单纯为了吃饱饭,完全没必要去学什么嵌入式,嵌入式培训入学门槛高、学费贵,赤裸裸的歧视本科以下学历,歧视文科,培训出来就业虽然年薪10万起,但是没基础没兴趣学得会吗?如果为了吃饱饭,大千世界何其多的机会,何必折腾?

 

据贴吧某位大神分享,进入嵌入式的人形形色色,在此前有计算机专业的、有电子类专业的、有硬件工程师、有些甚至完全不相关,基础也千差万别。技术之路的终点也千差万别,有的最后走上了管理,有些转行做了产品经理,有的最后成了技术流的销售,还有极少数的人成了真正的技术专家。而嵌入式工程师的的终点只有一个,就是真正的技术专家。

 

嵌入式技术大体上可分为编程语言,内核技术,操作系统,总线接口,系统集成。其实细心的可以发现,在 CSDN的论坛分区上就已经体现了,除了系统集成只是在嵌入式系统大区里面体现了下,其他的都有明确的板块对应关系。但是学习之路并非如此学习,而是分为几个层次,据该工程师多年对业内的观察,将嵌入式工程师的技术范围分成下面几个等级:

 

1.初级:8051或其他单片机,UCOS,I2C,SPI,UART。汇编和C能力一般,系统集成能力弱。

 

2.中级:在初级的基础上,ARM/MIPS,其他一些RTOS并了解Linux,SDIO,USB。汇编和C能力不错,有一定系统集成能力。

 

3.高级:主要是对中级的进阶,这一个层面已经不在于掌握具体的技术,而是掌握当前流行技术中的基本思想和构成方式,所以任何流行的技术,对于这一阶段来说,都是手到擒来的。而由于掌握了所有技术的原理,系统集成能力也是超强。

 

对于初级和中级,都有明确的标杆,在此阶段,工程师还是在入行阶段,评判标准往往是掌握了什么技术,而学技术的最高境界是需要掌握了技术的构成和模式。拿个很简单的例子来说,所有的接口技术,其实都可以归纳为几个要点,单工还是双工、如何发起传输、如何应答、如何报错、如何纠错、如何在其基本传输之上建立高级的应用。只要掌握这些,接口技术便不攻自破。

 

最近业内普遍流行在某个平台上编程而忽视深入的技术研究。Android也好,MTK的Tune Key也好,你只是在别人的指挥下舞蹈,而技术并没有任何提升,提升只是更好的掌握了这个平台,5年后呢?平台退出市场了,掌握的这些还有什么用处么?学技术,要扎实,要从低至上。很多人一入门,首先想的就是,专注搞Linux和ARM应用处理器。在此之前,Linux里面进程调度了解吗?这不是“回字有几种写法”的问题,而是皮毛和骨骼的关系。按照技术的发展,完全应该先从UCOS之类的RTOS学起,然后慢慢学到Linux,会发现,Linux的最基本的东西,如系统调度,信号量,事件等,是和UCOS的原理类似的。而如果你一开始学习Linux,学到的只是如何在Linux平台上完成你的事情。

 

最后说点实际的,现在Linux和Andriod是很吃香,也有很多人建议一开始就学习这些热门技术,这样能挣钱。没错,开始的时候可以速成,但如果从长远来看,薪水也永远只是在工程师的主流薪上波动,想要成为技术大牛,年薪百万,永远不可能。技术需要从基础做起,一步一个脚印,成为顶尖,没个三五年,难。不过能够坚持下来的,必成大器。

 

 

据21IC论坛分享,分为四类工作:

 

 

在系统的设计阶段,系统分析师将根据需求确定系统的硬件的基本构成,根据系统的需求选择使用那种处理器,使用哪种操作系统,使用那些软件开发工具。系统分析师往往是较为完整的参与过嵌入式系统设计的全过程,对于系统应用的行业较为了解,对于嵌入式系统本身的开发流程十分清楚的人。

 

 

系统硬件设计人员需要根据系统分析师的设计结果,进行硬件原理图的设计。通常需要硬件设计人员熟悉嵌入式系统的硬件构成。硬件设计人员需要了解常用的嵌入式系统处理器,存储器(Flash,SDRAM),以太网MAC芯片,音频/视频编解码芯片,电源管理芯片,总线接口电路 (USB,PCI),液晶显示模块,可编程逻辑器件(FPGA/CPLD),无线网络通信模块(Bluetooth,WLAN,GPRS)等硬件电路构成元素的基本工作原理,连接使用方法,使用注意事项,基本调试方法等内容。在网络上能找到很多公司的评估板的原理图,对于这些原理图要仔细研究,摸清处理器同存储器,网卡,液晶模块等器件的连接方法和原因。通过对这些电路的研究,能够较快地了解整个嵌入式系统的构成,这些电路同实际产品中的电路虽有一定差别的,特别是对于手持设备,但这些差别不影响初学者学习嵌入式系统的硬件设计基本构成。

 

 

现代嵌入式系统的开发同传统8位单片机系统的开发相比,一个显著的区别就是嵌入式操作系统的广泛使用。在拿到焊接完毕的电路板,并进行基本的测试后,就要进行驱动程序和操作系统的移植工作了。首先要进行的Bootloader的编写和移植工作。Bootloader相当于PC系统的BIOS。对于有些嵌入式操作系统,如uc/OSII没有bootloader同样可以开发调试。但是对于WindowsCE和嵌入式linux系统而言Bootloader就是必须的了。

 

 

嵌入式系统的应用程序开发同在PC 机上开发应用程序的区别不是很大。对于Windows CE系统而言,Microsoft已经提供了较为完善的开发工具。开发人员可以使用Windows 的C# 语言直接在PC上进行应用程序的开发和模拟调试,也可将目标系统同PC 机相连,进行联机调试。现在有很多系统支持J2ME(JAVA的嵌入式系统版本) ,这使得JAVA 在嵌入式系统应用开发中占有较大的优势。另外,作为专业的嵌入式系统软件开发人员,还需要充分了解面向对象技术和设计模式等方面的知识,当然作为初学者可以先不深入研究这方面的内容。同学们在学习嵌入式的过程中要不断进行知识的探索,在一步一步学习之后就会有一个很大的进步。  

 

搞电子的人,不管你面对但是MCU,ARM, DSP,甚至是其他杂交变异品种,有一种东西是离不开的,那就是电路板。所以的元器件要发挥作用,都得焊在一个适当的电路板上面。PROTEL99 或者 PADS 或者DXP,这些都差不多,越后来出的,功能越强大,画一些复杂的,比如嵌入式领域的板,一般都用功能强大的画板软件。还是那句话,画PCB图不难,但是要精就不简单了,这里涉及到电路原理图的设计问题和很多布线的原则,走线大小,间距,角度等等,一般的mcu控制板,对这些都不是很敏感的。但是电源板,高频的,或者rf无线收发的板就对这种东西很注重了,干扰和抗干扰都要考虑到,滤波电容什么地方放,多大啊,什么的,都要注意。在大功率领域,线宽也比较讲究,大电流的时候,铜皮不够大,或者不够厚,会发热,很容易导致板烧毁,甚至元器件爆炸。还有很多很多注意的,这个又属于专门一个纯硬件领域,要自己多多学习相关知识,平时也要多练习才行的。

 

一口气说了一大堆,总结一下:搞电子,要先打好模电数电基础,在学编程语言,然后就开始动手,再动手。数电模电好比基石,编程就是砖头,永远都需要你这个建筑师傅来砌才行的。最后,说明一点,技术是个无底洞,我也只不过茫茫技术海洋的一滴无名小水珠。全部观点和经验都是我自己的总结,不能说完全对,只能说,我是这样过来的。

 

目前的嵌入式开发更倾向于智能化,也就是我们所说的智能硬件(硬件+软件),从现在各种前沿的嵌入式产品来看的确如此,嵌入式产品的一个发展趋势是更倾向与自动化控制和人机交互,而不是强调“算法”这一块。 要区分你仅仅是一名嵌入式工程师而不是算法工程师,什么一大堆“人工智能”、“阿尔法狗”、“深度学习”、“神经网络”都不需要深入理解,那是研究生、博士生做的。 笔者并不是说你的能力不足,而是“术业有专攻”,这并不是一名嵌入式工程师的工作量,你需要做的仅仅是与他们的“云端大脑”进行对接,调用他们API就完事了。 由于人工智能、深度学习、神经网络、区块链、大数据等先进学科的崛起,很多人都产生质疑:“嵌入式还有发展前景吗”? 这个问题我在这里可以很肯定地告诉你:“嵌入式有很好的发展前景,前沿嵌入式技术即将崛起,或者说已经崛起”。 的确,人工智能、大数据这些学科会给嵌入式带来冲击,就目前来看,大学生更倾向与python编程语言、机器学习这一块,而嵌入式学者的确比往年有所下降。 但学者少了并不代表他的需求就少了,并不代表他的薪资水平下降了,目前的一个嵌入式技术更倾向于与智能学科相结合的趋势。 以百度机器人为例,机器人的核心是大脑,即是“数据和算法”,但机器人大脑想机器人身躯能够像人类一样活动,能说会道,行走自如,那么就必须得依靠嵌入式技术。 这就是我所说的嵌入式+智能学科应用,从长久来看,嵌入式只会越来越火,智能学科的崛起必定带动新型的嵌入式技术发展。

 

 

 

合格的嵌入式开发者应是多面手,应具备各方面的技能,包括从硬件到软件到应用(电力系统保护,自动化,控制,人工智能,机器学习等),从单板到系统整机,从技术到管理,甚至吹拉弹唱也需要了解一点,做项目管理时可以提升团队气氛和丰富业余生活。

 

嵌入式知识和技能体系庞大,样样精通者凤毛鳞角,一般都是一专多能,各类技能多少都能说上一点。按照嵌入式开发层次关系,整理嵌入式开发者技能大全如下。

 

 

MCU架构及开发。MCU,俗称单片机,把中央处理器(CentralProcess Unit,CPU)的频率和规格作适当删减,并将内存(Memory)、计数器(Timer)、USB、A/D转换、UART、PLC、DMA等周边接口,甚至LCD等驱动电路都整合在单一芯片上,形成芯片级的计算机,为不同的应用场合做不同的组合控制。常见的MCU包括Intel的C51/C8051F系列,Motorola的68K系列,MicroChip的PIC系列等。

 

MPU架构及开发。MPC指微处理单元,一般不带外围器件(如存储器阵列等),是高度集成的通用结构的处理器。典型如Intel的X86系列、飞思卡尔的PowerPC系列、P1系列,ARM架构处理器等。

 

DSP架构及开发。DSP采用哈佛结构,同一个时钟周期内可以多次访问存储器,多级指令执行流水结构提高了系统的执行效率,DSP芯片常用于复杂的运算,典型如TI的TMS CXX系列,ADI的SHARC系列、Blackfin系列等。

 

 

CPLD&FPGA作为专用集成电路(ASIC)领域中的一种半定制电路而出现,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。通过可编程逻辑单元实现各种算法和组合逻辑。

 

基于CPLD&FPGA实现程序开发。包括RTL门级逻辑图设计,VerilogHDL程序设计,VHDL程序设计,XILINX编译软件使用,ALTERA编译软件使用,低速串、并行通信控制器设计,高速串行通信控制器设计。

 

 

包括模拟电路和数字电路设计,包括器件DataSheet阅读,原理图及PCB阅读等。

 

 

Cadence,Altium,PADS,DXP等。

 

 

Multisim,Pspice,ADS,MATLAB等。

 

 

电路防护类器件,阻容器件,电感磁珠,DC/DC,晶振,二极管,三极管,稳压管,光耦,MOS管,IGBT,继电器,开关和按键,LED指示灯,PCB板用接线端子,交流互感器等。

 

 

AD,逻辑器件,DA,运放,计数器,触发器,存器,译码器,SRAM,SDRAM,DDR,FLASH,EEPROM,接口芯片等。

 

 

物料的构造与工作原理,金相切片,显微观察,PCB形变测量,HALT实验技术,可靠性计算等。

 

 

元器件测试方法,模件、整机测试方法,元器件、模件、整机测试问题分析,国标、行标理解,EMC问题分析和解决等。

 

 

了解操作系统原理及基本编译原理。操作系统提供CPU资源管理、外设驱动、内存管理、线程/进程管理、文件系统、网络通讯、安全机制、界面管理等。嵌入式实时操作系统的基本特征是事件响应的快速性和确定性,在嵌入式系统中广泛应用。

 

通用操作系统包括windows、Unix、LInux等。目前在嵌入式领域广泛使用的操作系统包括:嵌入式实时操作系统µC/OS-II、嵌入式Linux、WindowsEmbedded、VxWorks、FreeRTOS、QNX等,以及应用在智能手机和平板电脑的Android、iOS等。

 

 

VxWorks操作系统驱动开发,Linux移植,Linux开发,单板DTS配置以及根文件系统生成(Buildroot),U-BOOT移植和开发,C语言开发,Python语言开发,Makefile编写,GNU编译器及工具链的使用,Linux操作系统使用。

 

具体包括以太网驱动,SPI驱动,I2C驱动,文件系统驱动,CAN驱动等。

 

 

面向对象,设计模式,UML,嵌入式多任务开发,重构,多核开发等。了解常用的开发过程,如敏捷编程,测试驱动开发等。

 

 

熟悉开发语言,包括:C,C++,C#,QT,Python,JAVA,等。熟悉WEB 开发,开发规范等。

 

 

常用数据结构和算法,图论算法,数字信号处理算法,小波算法等。

 

 

计算机网络原理,TCP/IP协议原理及分析,IEC61850规约(建模,MMS,SV,GOOSE等),103规约,104规约,DNP规约,Modbus协议,物联网Zigbee协议,bluetooth,wireshark等报文分析工具,环网HSR协议,网络安全等。

 

 

数据库原理与设计,SQLite/Access/MySQL/SQLServer/Oracle/大数据hadoop等。

 

 

Zinc,UGL,QT,SVG,MiniGUI等。

 

 

电力系统常识,继电保护知识,测控知识;智能变电站网络架构,网分,故障录波器,保信,远动等。

 

 

软件测试基础,61850规约测试,网络测试,时间管理测试,应用功能测试(继电保护功能等),ATS测试开发与使用,Labview测试程序开发等。

 

 

配置管理如版本管理工具Git使用等,项目计划与任务划分,项目进度跟踪,项目协调等。

 

 

 

 

当我们谈及编写围绕硬件层运行的代码时,最常提起的就是C语言。25年前,当我们从汇编语言过渡到C语言时,整个过程非常缓慢,且需求很高。如果你想进入嵌入式编程领域,那么2020年C以及C++仍然是你应该重点学习的编程语言。

如果你想尝试嵌入式编程,那么可以从下面几个方面着手:

 

 

Learn-c.org 是 Ron Reiter 的私人项目。虽然这个项目与嵌入式或硬件的关系不大,但作为C语言入门还是很不错的。

 

 

就我个人而言,实际操作才是最佳的学习途径。所以,你也可以买一个微处理器,实际接触硬件,亲眼看到实际结果才是你最应该做的事情。你可以购买 Arduino 等流行的处理器,然后从一个小项目开始,真正了解硬件的工作原理。

 

 

阅读书籍和文档是最关键的学习方式。你可以根据自己选择的方向(嵌入式系统、固件开发、驱动程序开发等),选择相应的书籍。

 

除了C/C++之外,该领域没有真正占据实际市场份额的编程语言,但是下面的新起之秀值得关注。

 

 

今年我一定要把学习 Rust 提上日程。有传言说 Rust 是从C发展而来的,Rust 将在很多应用领域广泛取代C。Rust 在嵌入式领域的发展非常迅速。如果我们比较 StackOverflow 网站上有关C、Rust 和 Assembly 的提问,就可以看到2019年有关 Rust 的问题数超过了 Assembly,而C在过去几年中略有下降。

 

相对于C,Rust 有几大优势,最大的优势之一就在于内存的安全性。Medium 网站上有很多关于 Rust 的文章,你可以通过阅读了解 Rust 的所有优势。此外,Rust 可以在许多微控制器上运行,这个 GitHub 代码库中汇总了大量信息(https://github.com/rust-embedded/awesome-embedded-rust)。

 

如果你想学习 Rust,那么我强烈建议你访问 Rust 主页(https://www.rust-lang.org/)。这个网站提供了大量的入门文档和教程。还有这本书《The Rust Programming Language》也是很好的起点。Rust 网站专门提供了有关嵌入式的说明(https://www.rust-lang.org/what/embedded),可以帮助你了解嵌入式设备上的 Rust 编程。

 

 

Golang?Golang!Golang 这种编程语言的潜力也超过了你的想象。目前,它主要运行在用户空间,可以替代 Ruby 等后端语言,或用作用户空间的应用程序,因为它拥有良好的多处理器支持。

 

不过,我相信 Golang 会慢慢进入底层的编程。目前,它已应用在固件开发中,用于开发引导程序。随着嵌入式设备上的 RAM、ROM 和 Flash 的容量不断增大,将来也有可能在嵌入式设备上运行 Golang。 对于每位嵌入式系统程序员来说,Golang 绝对值得一试,而希望参与固件开发的人则必须学习 Golang。

 

 

除了编程语言之外,硬件设计方面也有一些有趣的趋势。我想提及的第一件事情是:RISC-V。

RISC-V 是一种开源硬件指令集体系结构。它基于精简指令集计算机原理,即所谓的 RISC。与 Arm 相比,制造商不需要支付许可费用即可使用 RISC-V。  

面向服务器和消费者的硬件大多采用了x86硬件。我认为 RISC-V 不会很快在这部分市场中赢得份额,但是它有可能应用于其他几个市场。路由器和交换机等嵌入式设备以及智能手机制造商或物联网设备都可能切换到 RISC-V 架构。  

现在市场已有 RISC-V 的电路板,虽然价格仍然偏高,但值得关注。例如,眼前我的办公桌上的这块就是 SiFive HiFive Board。  

 

最后我想谈谈 big.LITTLE 架构。最初它是由 ARM 发明的。原理是将低功耗的处理器(LITTLE)与功能强大、高功耗的(big)处理器相结合。同一时间内, LITTLE 或 big 只有一侧处于活动状态。这种架构应该能够更好地适应当今的动态计算需求。  

这并不是一个新想法,ARM 于2011年就提出了此项建议。但是似乎其他制造商也对 big.LITTLE 跃跃欲试。英特尔于2019年预览的英特尔 Lakefield 异构处理器就采用了 big.LITTLE 架构。

标签: dps910pic集成电路nn2电感传感器常开传感器

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台