原创 关于我对初学ARM的理解

2009-11-6 15:05 2938 7 9 分类: MCU/ 嵌入式

                                                     <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />


                                             关于我对初学ARM的理解


                                                   作者:kgq398


     总是听人问初学ARM怎么学啊我是该学ARM7还是ARM9等这样的语言。


     以下仅仅写出本人的一点小小的体会,有不对的地方,还望大家见谅和理解,毕竟我也是初学者,呵呵!!!


     从现代产品的使用量来讲:


     ARM7占有的分量肯定要远远超过ARM9,ARM11等。就好像现在的单片机一样,用的肯定


不比ARM少吧,貌似51单片机用的还是很多的一样的道理。从这个角度来讲学习ARM7还是有必要的。


    从难易程度来讲:


    我认为如果是裸机使用的话,难易程度是一样的,为什么这么说呢,ARM9ARM7多了一个MMU,也就是内存管理单元


这样我们可以方便快速的对指令和数据CACHE进行管理,从而提高代码运行的速度和质量。但是如果仅仅是裸机运行,你可以不需要


管理内存,因为一般时候就根本不需要(貌似FAT系统的时候你可以用,这样对FAT文件系统的操作会快,我做的FAT16系统没用到)


ARM9,ARM7有很多相同点,那三星的S<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />3C44B0S3C2440来说吧。你要引导系统,你需要启动代码(关于启动代码包含了什么这里先


不做论述),然后你要使用该CPU,你要熟悉该CPU的内部资源,你可能会从最原始的CPU时钟开始,进而学习IO口的操作等等,这里无非就是S3C2440


S3C44B0多了LCD控制器,多了SD卡控制器(我记得44B0没有),多了IIS音频接口,多了摄像头接口等。所以说你如果从这两个芯片来选择的话,就看你


现在的产品需要什么资源来选择了。如果是自学的话,要学ARM7我建议先不选择S3C44B0,选择LPC的是个不错的选择(后面介绍原因)


    从可移植的操作系统来选择


        ARM7由于没有MMU,所以只能移植诸如UCOSIIUCLINUX之类的操作系统,ARM9则可以移植现在流行的所有的操作系统,但是UCOSIIUCLINU占用的


系统资源相对较少,而且当你熟悉了UCOSII的系统以后,还可以移植到单片机上面,进而实现单片机的多任务操作。所以还要看你项目的需要了。个人学的话看


爱好了。


       我建议如果个人学习的话,就从ARM7学习,虽然我是从ARM9学习(实际上没学下多少),但我现在觉得个人学习从ARM7学习不错。那么选用什么CPU比较合适呢


我觉得选择LPC系列的不错,比如LPC2103 LPC2220等等。无非资源的不同。那么为什么要选用这些呢?首先这个ARM7网上资源比较丰富,再次,我们都知道ARM系列处理器都需要启动代码的,而LPCARM7系列,很多产品固化了启动代码,可以方便的使用串口或者ISP下载,比较适合长久以来用单片机开发的工作人员。学起来比较顺手,


当然它的主频高达75MHZ,比普通单片机当然是快很多了。最主要的是现在很多产品还是用ARM7系列来做的。


       你也可以用ARM9来做,像很多人说的一样,用ARM9不用操作系统那是浪费了。但我们的产品不需要用系统,或者说不需要多任务同时处理怎么办。那你可以选择ARM7啊,有人可能会说ARM7没有摄像头接口,这里的摄像头接口是CAMMER接口,而不是USB摄像头,很多ARM7USB接口,我们可以选择USB摄像头啊。


       既然如此,ARM9肯定也有不少的人来学习了。那么涉及的东西就比较多了。刚开始需要有东西来引导你的操作系统,这个东西叫做BOOTLOAD,很多人刚开始就像弄明白这个BOOTLOAD到底是如何作出来的,最后又是如何来引导操作系统的。我就做了这些工作。最后花费了不少时间。还有很多问题没弄明白呢。然后就是比如你要学习LINUX操作系统,这个时候肯定有人想知道内核是如何移植出来的,文件系统是如何制作出来的,这花费的时间我估计不会太少吧。有天分的几个月弄的比较熟悉的话,我觉得已经很厉害了。主要很多人也没这么多时间天天来做这个事情啊。


       经过上面的步骤以后,一个平台算是搭建起来了。下来就要编写驱动程序或者自己的应用程序了,这就涉及到了LINUX下的程序设计了,高级的有涉及到网络编程,QT图形界面等等。这都不是你说学就能一下子学会的。


      上面的工作确实有点多了,所以有很多人专门学习移植,有的人专门做驱动程序设计,有的人专门做QT图形界面,所以产生了很多分工。


      笔者最近做一个项目正好用到了ARM9 S3C2440,用的是裸机包含了摄像头,LCDUSB等一些的运用,目前还暂时处于无操作系统状态,并一边熟悉LINUX下编程呢。


因为对我自己而言,移植浪费了不少的时间,主要是目前网络流行的移植文章所用的NOR FLASH NAND FLASH我和他们的都有所区别,所以一下子移植不成功。所以建议选用大多数人用的板子是完全可以的。


  综上所述,我认为如果你自己在家要自己学习,先从ARM7肯定不是什么错误,当然从ARM9学习也未尝不可啊。只要坚持就能学会的。


    


 

PARTNER CONTENT

文章评论2条评论)

登录后参与讨论

朱玉龙 2009-11-7 11:08

呵呵,飘过

用户1407067 2009-11-7 08:29

太有道理了.向你学习.
相关推荐阅读
用户809521 2010-04-19 16:01
STM32 ADC的规则通道和注入通道有什么区别
STM32的每个ADC模块通过内部的模拟多路开关,可以切换到不同的输入通道并进行转换。STM32特别地加入了多种成组转换的模式,可以由程序设置好之后,对多个模拟通道自动地进行逐个地采样转换。有2种划分...
用户809521 2010-04-17 11:31
什么事音频变压器以及作用
音频变压器有好几种,连接喇叭和功放之间的是我们经常使用的,最常见的有天花喇叭等公共广播喇叭.由于公共广播的音源距离喇叭较远,线路本身的电阻比较大,所以先用定压功放把音频信号以高压的方式传到连接喇叭的音...
用户809521 2010-04-10 08:59
ARM与嵌入式linux的入门建议
ARM与嵌入式linux的入门建议     由于很多人总问这个问题,所以这里做一个总结文档供大家参考。这里必须先说明,以下的步骤都是针对Linux系统的,并不面向WinCE。也许你会注意到,现在做嵌入...
用户809521 2010-03-27 11:26
555定时器的应用
 555定时器的应用  相信大家都知道555定时器,也知道他的功能很强大,由1片555定时器能实现很多功能.所以今天贴贴他的应用和经典电路,希望对初学者有帮助,当然高手也能温习下...NE555为8脚...
用户809521 2010-02-27 11:27
基于HSDL7001的红外通讯接口电路
基于HSDL7001的红外通讯接口电路(来自互联网)2009年07月08日 星期三 下午 10:08摘要:介绍了红外通讯技术及相关标准,简单描述了红外通讯系统的基本结构,并以Agilent HSDL7...
用户809521 2010-02-27 11:25
编码解码芯片PT2262/PT2272芯片原理
编码解码芯片PT2262/PT2272芯片原理2007年10月01日 星期一 上午 07:14编码解码芯片PT2262/PT2272芯片原理                   PT2262/2272...
我要评论
2
7
关闭 站长推荐上一条 /3 下一条