Chinaunix首页 | 论坛 | 博客
  • 博客访问: 328344
  • 博文数量: 93
  • 博客积分: 2515
  • 博客等级: 少校
  • 技术积分: 1025
  • 用 户 组: 普通用户
  • 注册时间: 2007-09-18 22:51
文章分类

全部博文(93)

文章存档

2010年(2)

2009年(26)

2008年(65)

我的朋友

分类:

2008-07-06 13:28:29

给ARM初学者的学习建议

今年想学学arm,网上看到此文,特贴之,自勉!

1.初识ARM

相信ARM初学者已经通过各方面的信息(尤其是因特网)对ARM或多或少有所了解。那么,看看您是否对以下我们所提出的概念有所了解:

(1)“ARM”到底指的是什么?(是一家公司?是一款芯片?是一种技术?)
(2)ARM处理器芯片如何分类?
(3)目前有哪些芯片厂商生产ARM处理器芯片?
(4)目前国内应用比较多的ARM处理器芯片有哪些?它们主要应用于哪些领域?

以上四个问题,用户可以通过在网上查找资料很快得出答案。我们之所以只提出问题,不给出答案,是希望用户能够亲自去查阅相关信息和资料,因为这也是ARM学习的一部分。我们希望用户能够与我们给出的学习建议进行一种互动,即我们提出问题,用户通过查找资料来找出答案,这样更有助于用户对知识的理解。

2.一开始就必须掌握ARM体系结构与汇编指令?

未必!我们身边的很多ARM初学者,一开始就抱着有关ARM体系结构的书籍开始苦读,更有甚者,在很多具体内容上钻牛角尖,把大量时间花在了ARM汇编指令上,几个月下来,进展不大,虽然也能知道一些ARM的相关概念,但离真正的具体应用相差甚远,很多初学者会感觉到,学完ARM体系结构后,对ARM的应用还是无从下手,一片茫然,有的甚至就因为这个原因,被挡在了ARM嵌入式开发领域的大门外,从此放弃了ARM嵌入式开发的学习。

请用户不要误解,我们并不是主张用户不看ARM体系结构的相关书籍,关键在于怎么看、看到什么程度。根据我们的经验,ARM初学者对于ARM体系结构的相关知识只需做到“了解”这一程度就可以了,对于ARM的汇编指令完全可以不用记忆,只要能看懂就可以(目前大部分基于ARM的产品开发都采用C语言,汇编语言的使用机会大大减少,只有在操作系统移植以及某些特殊应用中才会用到部分汇编指令)。随着初学者对ARM更深入地学习,有关ARM体系结构与汇编指令的知识以后可能会反复出现,遇到时再有针对性的重点看,相信会取得比较好的效果。

注意:有关ARM体系结构的文档请用户参看配套光盘“用户使用手册”文件夹中的“ARM7TDMI_en.pdf”文件,该文档为ARM公司的官方技术手册,虽然是英文版,但我们建议初学者一开始就养成查看英文手册的习惯,因为很多翻译的资料并不能保证完全翻译正确。

如果初学者对英文确实感到头痛,那也可以找几本ARM体系结构相关书籍来看,北京航空航天大学出版社出版了多本比较不错的ARM相关书籍,用户可以参考。

3.选择ARM的软件集成开发环境

目前,流行的ARM软件集成开发环境有ADS1.2、Keil uV3和IAR等。对于51单片机应用开发工程师来说,Keil开发环境应该应用得比较熟练,若采用Keil uV3进行ARM软件开发,应该可以快速上手。但是,我们并不推荐ARM初学者选择Keil uV3进行ARM软件开发,主要是基于以下2个原因:

(1)Keil uV3是第三方ARM软件集成开发环境,目前支持的ARM芯片种类还不多,所带的编译器也并不完善;
(2)由于Keil uV3为了方便用户的开发,提供了现成的ARM启动文件,换句话说,它屏蔽了ARM开发中的一个重要内容——启动代码的编写,而这一点对初学者来说应该是非常重要的内容。

IAR目前国内应用的人还不多,相关资料也不是很多,所以我们也不推荐初学者使用。

ADS1.2集成开发环境是ARM公司推出的ARM核微控制器集成开发工具。它支持ARM10之前的所有ARM系列微控制器,支持软件调试及JTAG硬件仿真调试,支持汇编、C、C++源程序;具有编译效率高、系统库功能强等特点;可以在Windows 98、Windows 2000、Windows XP以及RedHat Linux上运行。

本开发板配套的所有实验都是采用Wiggler板+H-JTAG调试代理软件,在ADS1.2集成开发环境下进行编写及调试的,非常方便。

基于以上原因,我们推荐ARM初学者使用ADS1.2集成开发环境进行ARM开发。关于ADS1.2集成开发环境的使用,初学者可以参看ADS1.2集成开发环境自带的用户手册。另外,向ARM初学者推荐一本关于ADS1.2集成开发环境使用的好书——ARM开发工具ADS原理与应用 赵星寒 刘涛著 北京航空航天大学出版社 2006年2月第一版。

4.收到开发板后,不要盲目下手做实验!

由于对ARM的神秘感以及初学者的好奇心理,很多ARM初学者在收到我们的开发板后,恨不得一口气就把所有的实验都做完,这样的做法我们坚决反对。由于初学者盲目下手做实验,可能很多实验都做不出正确的结果,甚至损坏开发板,因此我们建议初学者经过下面的几步来进行实验:

(1)收到开发板后请仔细检查所有配件是否齐全或损坏,若有问题,请及时联系我们;
(2)请认真阅读配套光盘中的“ARMSKY-LPC213X_214X教学实验开发板使用手册.pdf”文档,熟悉开发板的硬件资源;
(3)请认真阅读配套光盘中的“如何在ARMSKY-LPC213X_214X教学实验开发板上运行第一个实验程序.pdf”文档,以便在开发板上进行第一个实验。

经过以上三步,用户就应该能够在开发板上做出第一个实验了。接下来,用户可以依次将所有配套实验做一遍,看看都会出现哪些实验效果。

5.如何做好每一个配套实验,达到最好的学习效果?

开发板配套了60多个实验,几乎涵盖了213X/214X系列芯片的所有内部功能器件的使用。初学者如何充分利用这些配套实验进行学习,对于是否能真正掌握ARM嵌入式开发起着决定性作用。然而,很多初学者对这一点认识不足,很多都是把这些实验在开发板上做一遍就认为已经掌握了ARM开发,其实不然,只把这些实验在开发板上做一遍,顶多算是对实验结果进行了验证,根本没有达到掌握ARM开发的目的。因此,我们建议初学者按下面的步骤进行实验:

(1)将配套实验先在开发板上运行一遍,观察实验结果;

(2)仔细分析实验代码,至少需要结合以下两部分资料:
    A.  ARMSKY-LPC213X_214X教学实验开发板原理图.pdf(在配套光盘的“用户使用手册”文件夹中);
    B.  LPC213x User Manual.pdf或LPC214x User Manual.pdf(在配套光盘的“用户使用手册”文件夹中);

LPC213X/214X的每个内部功能器件都和一组特定的寄存器相关,要想完成该功能器件所能实现的功能,就必须对这些相关的寄存器进行设置,这些寄存器的详细说明,用户可以在LPC213x User Manual.pdf或LPC214x User Manual.pdf中查看。

(3)自己将实验代码重新写一遍(一个字一个字的敲入计算机,请一定不要复制我们提供的现成代码),然后在ADS1.2下进行调试;

(4)看看是否可以用另外的方法实现实验所要达到的效果,如果可以,可自己编写代码进行调试。

经过以上四步的练习,相信初学者可以很好的掌握LPC213X/214X片内功能器件的使用,对ARM开发流程也有了比较深刻的体会。

6.学ARM必搞嵌入式操作系统?

很多ARM初学者有一个错误的概念——学ARM必搞嵌入式操作系统。认为在ARM上跑嵌入式操作系统就代表技术先进、产品档次高的观点绝对是谬论。持这种观点的人一定是没有做过具体的产品开发。一个嵌入式产品是否需要跑嵌入式操作系统,是由很多因素决定的,例如,产品的功能需求、开发成本、开发周期等都是需要综合考虑的。

对于ARM初学者来说,前期我们并不建议使用嵌入式操作系统。当用户把所有配套实验都熟练掌握后,即对LPC213X/214X的内部功能器件可以做到熟练应用的程度后,可以考虑学习一个具体的嵌入式操作系统。

目前,流行的嵌入式操作系统非常多,例如,uC/OS-II、WinCe、Linux、VxWorks等。对于初学者,我们慎重地推荐源码公开的uC/OS-II嵌入式操作系统。uC/OS-II已经有很多产品成功使用的案例且得到了美国航空管理局的认证,北京航空航天大学出版社也出版了配套的专著。国内熟悉这个嵌入式操作系统的开发人员特别多,十分容易通过网站上的讨论社区得到帮助,更关键的是,初学者可以很容易地通过阅读源码达到彻底掌握嵌入式操作系统的目的。在熟练掌握了uC/OS-II后,用户已经从ARM初学者进入到了ARM应用开发工程师的行列。下一步可根据自己的知识背景、兴趣爱好和开发领域,再选择一个嵌入式操作系统(例如WinCE、Linux或VxWorks等)进行学习,彻底掌握ARM嵌入式系统开发。

7.如何检验学习成果

在经过一段时间的学习后,初学者一定想知道自己达到了一个怎样的程度,我们给初学者提供一个检查自己学习效果的方法:可以仿照我们的开发板,自己做一款类似的开发板出来。当然,没有必要完全按照我们的设计,您可以在自己设计的开发板中加入更多的功能,配套更多的实验。

8.充分利用网络资源,不耻下问!

我们已经进入了信息大爆炸的时代,很多知识都可以通过网络及时地获得。在学习的过程中遇到困难时,可以通过网络获得帮助,只要我们虚心好学,不耻下问(当然要注意在网络上寻求别人帮助的方式方法),一定会得到很多好心人的帮助,使自己每天都有所提高。

9.知识是永远学不完的——学海无涯、人生苦短

学习ARM嵌入式开发,尤其对于初学者而言,不应该过早地、过多地将精力用在嵌入式系统移植、Linux内核的研究和学习上,这些诱人的“热点”很容易使初学者迷失方向,进而忽视对基础知识的深入学习,到头来说得头头是道,可真的干起来却离实际的需求差得太远。知识是永远也学不完的——学海无涯、人生苦短!我们学习的目的是为了满足应用的需求。只要方法得当,掌握ARM嵌入式开发应用技术其实并不难。

10.知识改变命运——学好ARM就有机会,只要努力终将成功!
阅读(945) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~