{$cluname}

科伟奇论坛 » 技术人生 » 关于我对初学ARM的理解


‹‹上一主题 | 下一主题›› 查看 2837
发表一个新帖子 发表回复

标题 关于我对初学ARM的理解 在百度搜索本主题 [ 搜 ] [ 打印 ] [ 推荐 ] [收藏帖子] [ 收藏到新浪VIVI] [ 订阅 ]

秋水梦 (附小一年级)
楼主   [点击复制本网址] [ 字体: ] [ 编辑 ] [ 报告 ] [评分]
Rank:1
Rank:1
UID 124
帖子 7
积分 17 点
金币 32 枚
魅力 13 度
注册 2009年12月17日
关于我对初学ARM的理解
总是听人问‘初学ARM怎么学啊’,‘我是该学ARM7还是ARM9啊’等这样的语言。
     以下仅仅写出本人的一点小小的体会,有不对的地方,还望大家见谅和理解,毕竟我也是初学者,呵呵!!!
     从现代产品的使用量来讲:
     ARM7占有的分量肯定要远远超过ARM9,ARM11等。就好像现在的单片机一样,用的肯定
不比ARM少吧,貌似51单片机用的还是很多的一样的道理。从这个角度来讲学习ARM7还是有必要的。
    从难易程度来讲:
   我认为如果是裸机使用的话,难易程度是一样的,为什么这么说呢,ARM9比ARM7多了一个MMU,也就是内存管理单元
这样我们可以方便快速的对指令和数据CACHE进行管理,从而提高代码运行的速度和质量。但是如果仅仅是裸机运行,你可以不需要
管理内存,因为一般时候就根本不需要(貌似FAT系统的时候你可以用,这样对FAT文件系统的操作会快,我做的FAT16系统没用到)
。ARM9,ARM7有很多相同点,那三星的S3C44B0和S3C2440来说吧。你要引导系统,你需要启动代码(关于启动代码包含了什么这里先
不做论述),然后你要使用该CPU,你要熟悉该CPU的内部资源,你可能会从最原始的CPU时钟开始,进而学习IO口的操作等等,这里无非就是S3C2440
比S3C44B0多了LCD控制器,多了SD卡控制器(我记得44B0没有),多了IIS音频接口,多了摄像头接口等。所以说你如果从这两个芯片来选择的话,就看你
现在的产品需要什么资源来选择了。如果是自学的话,要学ARM7我建议先不选择S3C44B0,选择LPC的是个不错的选择(后面介绍原因)
    从可移植的操作系统来选择
        ARM7由于没有MMU,所以只能移植诸如UCOSII、UCLINUX之类的操作系统,ARM9则可以移植现在流行的所有的操作系统,但是UCOSII、UCLINU占用的
系统资源相对较少,而且当你熟悉了UCOSII的系统以后,还可以移植到单片机上面,进而实现单片机的多任务操作。所以还要看你项目的需要了。个人学的话看
爱好了。
       我建议如果个人学习的话,就从ARM7学习,虽然我是从ARM9学习(实际上没学下多少),但我现在觉得个人学习从ARM7学习不错。那么选用什么CPU比较合适呢
我觉得选择LPC系列的不错,比如LPC2103 LPC2220等等。无非资源的不同。那么为什么要选用这些呢?首先这个ARM7网上资源比较丰富,再次,我们都知道ARM系列处理器都需要启动代码的,而LPC的ARM7系列,很多产品固化了启动代码,可以方便的使用串口或者ISP下载,比较适合长久以来用单片机开发的工作人员。学起来比较顺手,
当然它的主频高达75MHZ,比普通单片机当然是快很多了。最主要的是现在很多产品还是用ARM7系列来做的。
       你也可以用ARM9来做,像很多人说的一样,用ARM9不用操作系统那是浪费了。但我们的产品不需要用系统,或者说不需要多任务同时处理怎么办。那你可以选择ARM7啊,有人可能会说ARM7没有摄像头接口,这里的摄像头接口是CAMMER接口,而不是USB摄像头,很多ARM7有USB接口,我们可以选择USB摄像头啊。
       既然如此,ARM9肯定也有不少的人来学习了。那么涉及的东西就比较多了。刚开始需要有东西来引导你的操作系统,这个东西叫做BOOTLOAD,很多人刚开始就像弄明白这个BOOTLOAD到底是如何作出来的,最后又是如何来引导操作系统的。我就做了这些工作。最后花费了不少时间。还有很多问题没弄明白呢。然后就是比如你要学习LINUX操作系统,这个时候肯定有人想知道内核是如何移植出来的,文件系统是如何制作出来的,这花费的时间我估计不会太少吧。有天分的几个月弄的比较熟悉的话,我觉得已经很厉害了。主要很多人也没这么多时间天天来做这个事情啊。
       经过上面的步骤以后,一个平台算是搭建起来了。下来就要编写驱动程序或者自己的应用程序了,这就涉及到了LINUX下的程序设计了,高级的有涉及到网络编程,QT图形界面等等。这都不是你说学就能一下子学会的。
      上面的工作确实有点多了,所以有很多人专门学习移植,有的人专门做驱动程序设计,有的人专门做QT图形界面,所以产生了很多分工。
      笔者最近做一个项目正好用到了ARM9 S3C2440,用的是裸机包含了摄像头,LCD,USB等一些的运用,目前还暂时处于无操作系统状态,并一边熟悉LINUX下编程呢。
因为对我自己而言,移植浪费了不少的时间,主要是目前网络流行的移植文章所用的NOR FLASH NAND FLASH我和他们的都有所区别,所以一下子移植不成功。所以建议选用大多数人用的板子是完全可以的。
 综上所述,我认为如果你自己在家要自己学习,先从ARM7肯定不是什么错误,当然从ARM9学习也未尝不可啊。只要坚持就能学会的。
    




此用户离线!
共计在线时长30分钟2009/12/17 15:48:53
[ 资料 ] [ 短信 ] [ 好友 ] [ 文集 ] [ 引用 ] [ 回复 ] 点击返回顶部

« 首页1 »1/共1页


查看积分策略说明快速回复你的内容
快捷回复标题 (选填) 快捷插入表情图标
验 证 码  点击获取验证码
快捷回复内容

自动复制

Powered by TEAM 2.0.5 Release - ACC © 2005 Team5 Studio All rights reserved