ARM初学者的困惑

[复制链接]
 楼主| mcu118 发表于 2009-5-2 14:40 | 显示全部楼层 |阅读模式
本文是写给准备学习ARM技术,而又没想好要学ARM7还是ARM9或者对ARM7与ARM9的区别不是很了解的初学者。希望本文对你们有点用处。<br />由于职业的关系,经常会回答一些ARM初学者的问题,虽然问题千奇百怪,但以下两个问题绝对很有代表性。<br />ARM7和ARM9的都有些什么区别?<br />我准备学ARM,但不知是选ARM7还是ARM9好?<br />也许这些问题在大虾们的眼里已不是问题,但对于初学者确实很具必要弄清楚。先说下:ARM7和ARM9的区别。<br />1&nbsp;时钟频率的提高<br />&nbsp;&nbsp;&nbsp;&nbsp;虽然ARM7和ARM9内河架构相同,但ARM7处理器采用3级流水线的冯·诺伊曼结构;,而ARM9采用5级流水线的哈佛结构。增加的流水线设计提高了时钟频率和并行处理能力。5级流水线能够将每一个指令处理分配到5个时钟周期内,在每一个时钟周期内同时有5个指令在执行。在常用的芯片生产工艺下,ARM7一般运行在100MHz左右,而ARM9E则至少在200MHz以上。<br />2&nbsp;指令周期的改进<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;指令周期的改进对于处理器性能的提高有很大的帮助。性能提高的幅度依赖于代码执行时指令的重叠,这实际上是程序本身的问题。对于采用最高级的语言,一般来说,性能的提高在30%左右。<br />3.MMU(内存管理单元)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ARM7一般没有MMU(内存管理单元),(ARM720T有MMU)。&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ARM9一般是有MMU的,ARM9940T只有MPU&nbsp;,不是一个完整的MMU。<br />这一条很重要,MMU单元是大型操作系统必需的硬件支持,如LINUX;WINCE等。这就是说,ARM7一般只能运行小型的实时系统如UCOS-II,eCOS等,而ARM9无此限制,一般的操作系统都可以移植。其实即使ARM720T能支持LINUX;WINCE等系统,也鲜有人用,因为以ARM7的运行速度跑这种大型操作系统,实在有点吃力。再者两者的应用领域明显不同,也无此必要。<br />4.&nbsp;&nbsp;ARM7比ARM9提供了更好的性能-功耗比。它包含了THUMB指令集快速乘法指令和ICE调试技术的内核。<br />5.&nbsp;在从ARM7到ARM9的平台转变过程中,有一件事情是非常值得庆幸的,即ARM9E能够完全地向后兼容ARM7上的软件;并且开发人员面对的编程模型和架构基础也保持一致。<br />在来说一下初学者是选ARM7还是ARM9。<br />明确目的<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;学习为应用。你学ARM准备用在什么地方,如果是一般性控制系统或仅仅用来替换8获16位机,ARM7显然是首选;但如果用在网络通信或大型的音视频处理等,则ARM9较合适。<br />自身基础<br />&nbsp;&nbsp;&nbsp;学习ARM的一般有三类人:<br />一是计算机专业的<br />这类人对操作系统等软件知识了解较多,而对硬件知识知之甚少,显然这类人学ARM的话还是做软件好,可以基于LINUX;WINCE等操作系统的ARM9更能符合这类人的要求,当然也有很多计算机专业的人从事ARM7系统的应用软件编写的。但是搞底层的就很少了。<br />二是电子类专业的<br />这类人的硬件基础了相对较好,相反操作系统,数据库等软件知识则差强人意。因此人多电子专业的人员都熟悉单片机,用单片编写点小程序还不在话下,但要用ARM做较大型的软件则有点力不从心。<br />尤其是LINUX;WINCE这种操作系统不是三两个月能轻松搞定的。建议这类人员如无特别需要还是从ARM7和小型操作系统学起。够用就好,不要盲目追求高端。有一点要注意并不是从事ARM9的就比ARM7工资高,反而ARM7的就业机会比ARM9多,这很好理解,好比金字塔,越往顶肯越小。<br />三是软硬件基础都不太好的<br />这类人员有确实需要的,也有赶时髦的,如无大的学习决心还是参加培训的好。当然也可曲线救国,搞懂单片机后,ARM7就不难了。<br />最后说一点关于开发板的,初学者买个开发板确实很有必要,但也要选择合适的,初学者合适的就是,资料齐全,有配套教程和学习指导,再加上较及时的技术支持。目前能做到的很少,开发板这东西不是说哪家公司有名气,售后就好,很多大公司一般不理个人买家的问题的,我感觉多半是运气,运气好了也许能碰到一家售后好的。<br />好了到这结束,一家之言!欢迎大家交流,群84905036
ayb_ice 发表于 2009-5-2 16:14 | 显示全部楼层

说的很真实

  
gateway 发表于 2009-5-2 17:54 | 显示全部楼层

如果学习的话,直接选ARM9吧。

&nbsp;&nbsp;&nbsp;&nbsp;建议初学者直接跳过ARM7。<br />&nbsp;&nbsp;&nbsp;&nbsp;免得到时候学会ARM7后又要学ARM9。感觉一直在入门。开发板一块接一块的买。<br />&nbsp;&nbsp;&nbsp;&nbsp;学会ARM9后,翻翻ARM7的书就熟悉ARM7了。
 楼主| mcu118 发表于 2009-5-3 12:05 | 显示全部楼层

gangxiang

ARM9的话,大多是学习了操作系统,以后的应用也相当依赖操作系统,不会关注具体的技术细节。大多就是写写应用层程序。如果学ARM9的人,能从底层搞起,而又成功的话,差不多能成牛人。
漂亮阿姨 发表于 2009-5-4 14:34 | 显示全部楼层

为什么不提ARM的Cortex系列

我也是初学者。据我所知,Cortex早就把ARM7和ARM9取代了,ST公司的STM32系列也上市一年多了,我在淘宝买的芯片也不过20元。Cortex-M3的结构和指令比ARM7简洁一个量级,性能相当于ARM9。Cortex-M3芯片更容易学习,编程也特别简单。据说更简单和强悍的Cortex-M0芯片也要问世了,大家要与时俱进哦。
szembed 发表于 2009-5-4 14:41 | 显示全部楼层

不要慌,沉着,冷静!

不要慌,沉着,冷静!<br /><br />谁先冷静,谁就能够成功!<br />
 楼主| mcu118 发表于 2009-5-4 16:31 | 显示全部楼层

回复6楼的

&nbsp;Cortex-M3性能相当于ARM9????<br />受教了。<br />
zuoyi001 发表于 2009-5-5 14:28 | 显示全部楼层

很有感触!!!

很有感触!!!
Fe_ARM 发表于 2009-5-5 20:25 | 显示全部楼层

作为初学者,从ARM几都无所谓了

作为初学者,从ARM几都无所谓了,关键是要有恒习和有一个技术支持较好的实验平台,这对初学者来说是最重要的
linzhixin 发表于 2009-5-7 11:15 | 显示全部楼层

建议直接上ARM9.

这个还是因人而异的.不过还是有同感的,对楼主的发言<br /><br />www.armonline.net.cn
jzdata 发表于 2009-5-7 11:26 | 显示全部楼层

欢迎交流

  
plage 发表于 2009-5-7 16:32 | 显示全部楼层

问个小问题

<br />&nbsp;&nbsp;&nbsp;&nbsp;ARM7或是ARM9的应用开发,比如做一个简单的键盘程序或是通信协议,&nbsp;也需要跑操作系统吗?
 楼主| mcu118 发表于 2009-5-7 18:45 | 显示全部楼层

物尽其用

楼上的:做一个简单的键盘程序或是通信协议,需要用得上ARM7或是ARM9吗?
plage 发表于 2009-5-7 20:39 | 显示全部楼层

谢谢mcu118

<br />&nbsp;&nbsp;&nbsp;&nbsp;是打算入手学ARM7的通信协议。&nbsp;因为刚接触ARM,满眼看到的都是ARM跑操作系统。&nbsp;是不是ARM的开发都要跑操作系统的?
 楼主| mcu118 发表于 2009-5-7 22:08 | 显示全部楼层

arm

arm7也可以看成是超级单片机,上不上操作系统完全是看你的需要,arm9的不上操作系统的话,它的那么多功能,确实不太好实现。比如linux,wince自带的众多驱动,你不可能什么都自己从头写吧。
plage 发表于 2009-5-7 22:18 | 显示全部楼层

xiexie ~~

<br />&nbsp;&nbsp;&nbsp;&nbsp;很谢谢mcu118,我从网上看到,ARM7因为没有MMU,跑不了大的操作系统如linux之类的。&nbsp;如果要用其实现一个通信协议,不用操作系统可以实现么?
larm1 发表于 2009-5-10 13:00 | 显示全部楼层

售后服务很重要

说的对,买一个开发板售后服务很重要,特别是刚入门的时候,否则会把你搞的精疲力尽。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

9

主题

22

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部