困扰ARM嵌入式初学者的若干问题

对于嵌入式ARM初学者而言,学习过程中心中一定会有各种各样的疑虑和困惑,比如:
1、ARM和嵌入式是什么关系?
2、ARM工程师的前景如何?
3、企业对ARM工程师的技能要求有哪些?
4、学ARM需要什么基础,要学习多长时间?
5、学ARM7还是ARM9,如何选择?
6、搭载的操作系统如何选择?
7、如何学习?
在此,小编针对这些问题提提自己的看法,以期待对初学者有所帮助,能在学习的道路上少走些弯路。

01
嵌入式前景广阔,就业渠道多,无疑是当前最有发展前途的行业。特别是随着消费电子的智能化,5G的快速发展等等,嵌入式更显重要。如果你想从事该领域,或者成为该领域的工程师,你就会发现要掌握的东西实在太多。

万事开头难,想进入该领域你得找个合适的切入点。面对百花齐放的嵌入式,切入点有很多,我建议你量力而行。

嵌入式大体上可以划分为:硬件和软件两部分。想从事嵌入式硬件的,推荐你从ARM7开始;想从事嵌入式软件的,推荐你从uCOS-II嵌入式操作系统开始。

面对“ARM7+uCOS-II”方案,可能有些人会问“ARM9+Linux”方案是否也适合初学者,针对这个问题,我谈谈自己的看法:

1
ARM7比起ARM9,更适合初学者学习。和ARM7相比,应该说ARM9在性能方面有很大提高,但ARM9更适合作为产品开发平台,并不适合初学者用于学习。主要原因如下:

从硬件设计方面,ARM7主频在100MHz以内,学生完全可以掌握其设计技术,而ARM9在200-600MHz左右,属高速设计,至少有3年以上经验的硬件工程师才可能进行设计,一般学生很难掌握。

从硬件设计方面,ARM7主频在100MHz以内,学生完全可以掌握其设计技术,而ARM9在200-600MHz左右,属高速设计,至少有3年以上经验的硬件工程师才可能进行设计,一般学生很难掌握。

而ARM9是系统集成度更高的SOC,适合跑WinCE、Linux等高级操作系统,用于教学是“大马拉小车”,这样造成学生在设计时往往不会关注资源、成本、可靠性的限制,就如同用一台PC进行教学一样,无法体现嵌入式教学的特点。

从应用方面,ARM7芯片价格比ARM9低的,而且ARM7芯片是目前嵌入式产品市场的主流,很多手机等产品都是基于ARM7的,占到市场份额的90%以上;采用ARM7就如同目前单片机开发与教学绝大多数采用51体系一样,ARM7就是32位微处理器领域的51,有着持久的生命力。

2
至于操作系统的选择,ucos比起Linux,更适合初学者学习。ucos内核精简,代码不长,且相关书籍和学习资源相当丰富,非常适合初学者学习。

学习ucos可以很快地熟悉嵌入式操作系统的核心内容,比如:内核是如何工作的,任务如何创建,任务间如何通信,内存如何管理等内容。

经过一段时间的学习,可以真正理解嵌入式操作系统,对后期的学习和使用很有帮助。Linux代码庞大,且操作复杂,不利于初学者学习。

学习Linux是一项长期且复杂的工作,要掌握的东西很多,比如:Linux常用命令、Linux操作系统知识、Linux下的编程与交叉编译技术、Linux的驱动程序编写等等。

上面的每个知识点花一门课去讲授都不为过,把这么多内容都放在一起去理解,很难保证学习质量。

总之,观察了很多采用“ARM9+Linux”方案进行学习的学者,都经历了一段漫长而又痛苦的过程。

对于初学者而言,采用这种方案的话,基本上是“不识庐山真面目,只缘身在此山中”。

02

平地起高楼,基础要打牢。很多学者有这样的心理:“要学我就要学最新最好的,要学就要学那种一学即能用的知识”,这种急功近利的想法是不对。ARM如何学习?我这里提两点意见:

1、切记万事万物的发展都有其客观规律,违背其规律就是揠苗助长,最终达不到你的预期效果。

2、学习新事物也是一样,有其客观规律,比如:先易后难的启动规律、阶段性进步的螺旋式规律。

掌握这些规律后,你就知道,学习是需要由易到难,分阶段进行的。

我认识很多朋友,一开始涉及嵌入式就在那倒腾着ARM9和Linux。可付出的努力并未收到良好的效果,甚至一些最基本的知识都没有掌握。

这种学习不但很辛苦,反而大大打击了他的学习积极性。

所以,我给各位的建议是:平地起高楼,基础要打牢!根深方能蒂固!

03

在应用中学习,在应用中提高。

一个对嵌入式普遍认同的定义是:嵌入式是以应用为中心,以计算机技术为基础,软件和硬件可裁剪,以适应应用系统对功能、可靠性、成本、速度、体积、功耗严格要求的专用计算机系统。

从定义中可以看出,嵌入式是以应用为中心的,在具体应用的前提下有针对性的进行软硬件裁剪,从而达到某些技术指标的严格要求。

所以说,嵌入式是一门较高层次的应用科学。需要我们在应用中学习。
免费学习资料包:微信17727800897