标题：ARM9开发板
ARM9内核
ARM9是英国ARM公司设计的32位的嵌入式处理器，主要包括ARM9TDMI、ARM968E-S、ARM946E-S 和 ARM926EJ-S系列处理器。ARM9™ 处理器系列为微控制器、DSP 和 Java 应用提供单处理器解决方案，从而减小芯片面积、降低复杂性和功耗，并加快产品上市速度[1]。下面以ARM926EJ-S系列为例，详细说明。  
ARM926 处理器
ARM926EJ-S™ 处理器具有如下特点：Jazelle® 技术得到增强的 32 位 RISC CPU、灵活的大小指令和数据缓存、紧密耦合内存 (TCM) 接口和内存管理单元 (MMU)。它还提供单独指令和数据 AMBA® AHB™ 接口，适合基于多层 AHB 的系统。ARM926EJ-S 处理器可执行 ARMv5TEJ 指令集，其中包括功能得到增强的 16 x 32 位乘法器，可进行单周期 MAC 运算，以及 16 位定点 DSP 指令，可增强多个信号处理应用程序的性能并支持 Thumb® 技术。
ARM926EJ-S 处理器为入门级处理器，支持 各种操作系统，如 Linux、Windows CE 和 Symbian。ARM926EJ-S 处理器是最流行的 ARM 处理器之一，是众多应用的理想之选。
ARM926EJ-S 处理器具有以下一些功能：ARM9开发板-安赛卓尔电子科技(7张)Java 加速DSP 扩展可选浮点单元灵活的本地内存系统，其缓存可与卓越的紧密耦合内存 (TCM) 集成保持与 ARM7TDMI® 处理器的二进制兼容
业界标准
迄今已售出 50 多亿台 ARM9 处理器
ARM926EJ-S 处理器已授权于全球 100 多家硅片供应商，并不断在众多产品和应用中得到成功部署。
通过提供稳定而可靠的性能，该处理器为设计人员提供了低风险解决方案，并加快了产品上市速度[2]。应用范围
ARM926EJ-S 可用于众多先进的数字产品：
产品类型 应用
消费品 智能手机、PDA、机顶盒、PMP、电子玩具、数码相机、数码摄像机等
联网 无线局域网、802.11、蓝牙、Firewire、SCSI、2.5G/3G 基带等
汽车 电力火车、ABS、车身系统、导航、信息娱乐等
嵌入式 USB 控制器、蓝牙控制器、医用扫描仪等
存储 硬盘控制器、固态驱动器等
为实现产品的迅速上市，抢占市场先机，许多厂商没有底层的开发人员，或者开发工作量大，就采购第三方嵌入式主板厂商的开发板作为产品的主板。安赛卓尔电子科技推出的一系列ARM926EJ-S内核的ARM9开发板已在工业控制、医疗电子、节能环保、智能交通、能源节能、电力系统、通讯系统、纺织行业、数控行业、汽车电子、工业触摸屏控制系统、机器人视觉、媒体处理无线应用、数字家电、车载设备、通信设备、网络终端等环境恶劣场合广泛应用，赢得国内多家应用厂商的好评，与国内多家公司和厂家建立战略合作伙伴关系[3]。
基本概念
Arm嵌入式开发板，ARM开发板，从概念上来讲，与软件外包非常类似（软件外包是指软件外包提供商为了集中精力从事核心竞争力业务,降低项目成本,同时提高项目实施的质量,将自己的软件项目中的全部或部分工作发包给合适的软件企业去完成）。
像嵌入式产品的硬件、引导代码、驱动程序、文件系统、协议层、基本应用软件这些方面，都是电子产品的公共和通用部分，并不是产品能够形成差异化的关键技术，在这个讲求分工合作的时代，如果是这部分的工作量比较大，或者是厂商没有相关的开发人员的时候，就能够选择由第三方完成这些软件开发的工作，加快产品研发的进程，实现产品的迅速上市，抢占市场先机。　那么，作为“发包方”的开发板用户，选择开发板的时候，实际上选择的不仅是一个硬件板子、开发板提供的源代码等资源，而是选择一个合作伙伴，一个为用户提供软硬件服务的合作伙伴。与软件外包这种合作方式类似，用户和供应商之间的合作更多是软件方面的合作，需要用户和供应商之间根据产品的具体需求进行充分沟通，供应商要根据用户的需求不断地调用人员进行配合。像我们在支持客户进行产品开发的过程中，遇到的比如更改文件系统、串口测试、64M Flash换成128M Flash等问题，大多情况都是要通过软件方式来解决的，这就形成了嵌入式行业供应商的售后支持和客户研发的高度互动性。　也就是说，嵌入式开发板是用户软件外包的载体，相对于传统的软件外包业务，开发板实际上能够为用户提供硬件实物和软件服务两方面的价值。　目前，在嵌入式行业中，除了嵌入式开发板，外包的形式也趋向多样化，用户能够根据自己的产品需要，向供应商提出定制要求，由供应商提供硬件设计和驱动移植等方面的服务；有可能电子厂商会自己设计硬件，由嵌入式系统厂商帮助其完成系统的移植、驱动的完善工作。从行业链上的作用来看，嵌入式系统厂商能够采用灵活的服务方式，利用自己的技术优势帮助电子产品厂商缩短产品开发周期、节省设计资源方面的投资，促进电子产品厂商的快速发展。
嵌入式linux与ARM开发板的入门建议
[4]第一，学习基本的单片机编程。 　
对于学硬件的人而言，必须先对硬件的基本使用方法有感性的认识，更必须深刻认识该硬件的控制方式，如果一开始就学linux系统、学移植那么只会马上就陷入一个很深的漩涡。我在刚刚开始学ARM的时候是选择ARM7（主要是当时ARM9还很贵），学ARM7的时候还是保持着学51单片机的思维，使用ADS 去编程，第一个实验就是控制 led。学过一段时间ARM的人都会笑这样很笨，实际上也不是，我倒是觉得有这个过程会好很多，因为无论做多复杂的系统最终都会落实到这些最底层的硬件控制，因此对这些硬件的控制有了感性的认识就好很多了 学习单片机的编程的同时要好好理解这个硬件的构架、控制原理，这些我称他为理解硬件。所谓的理解硬件就是说，理解这个硬件是怎么组织这么多资源的，这些资源又是怎么由cpu、由编程进行控制的。比如说，s3c2410中有AD转换器，有GPIO（通用IO口），还有nandflash控制器，这些东西都有一些寄存器来控制，这些寄存器都有一个地址，那么这些地址是什么意思？又怎么通过寄存器来控制这些外围设备的运转？还有，norflash内部的每一个单元在这个芯片的内存中都有一个相应的地址单元，那么这些地址与刚刚说的寄存器地址又有什么关系？他们是一样的吗？而与 norflash相对应的nandflash内部的储存单元并不是线性排放的，那么s3c2410怎么将nandflash的地址映射在内存空间上进行使用？或者简单地说应该怎么用nandflash？再有，使用ADS进对ARM9行编程时都需要使用到一个初始化的汇编文件，这个文件究竟有什么用？他里面的代码是什么意思？不要这个可以吗？诸如此类都是对硬件的理解，理解了这些东西就对硬件有很深的理解了，这对以后更深一步的学习将有很大的帮助，如果跳过这一步，我相信越往后学越会觉得迷茫，越觉得这写东西深不可测。因为，你的根基没打好。 　
第二，使用linux系统进行一些基本的实验。 　
在买一套板子的时候一般会提供一些linux的试验例程，好好做一段时间这个吧，这个过程也是很有意义的，也是为进一步的学习积累感性认识，你能想象一个从没有使用过linux系统的人能学好linux的编程吗？好好按照手册上的例程做一做里面的实验，虽然有点娃娃学走路，有点弱智，但是我想很多高手都会经历这个过程。 在这方面我们深蓝科技目前没有计划提供相应的例程，主要是开发板的提供商会提供很丰富的例程，我们不做重复工作，只提供他们没有的、最有价值的东西给大家。 　
第三，研究完整的linux系统的的运行过程。 　
所谓完整的linux系统包括哪些部分呢？ 三部分：bootloader、linux kernel（linux内核）、rootfile（根文件系统）。 那么这3部分是怎么相互协作来构成这个系统的呢？各自有什么用呢？三者有什么联系？怎么联系？系统的执行流程又是怎么样的呢？搞清楚这个问题你对整个系统的运行就很清楚了，对于下一步制作这个linux系统就打下了另一个重要的根基。介绍这方面的资料网上可以挖掘到几吨，自己好好研究吧。 　
第四，开始做系统移植。 　
上面说到完整的linux有3部分，而且你也知道了他们之间的关系和作用，那么现在你要做的便是自己动手学会制作这些东西。 当然我不可能叫你编写这些代码，这不实现。事实上这个3者都能在网下载到相应的源代码，但是这个源代码不可能下载编译后就能在你的系统上运行，需要很多的修改，直到他能运行在你的板子上，这个修改的过程就叫移植。在进行移植的过程中你要学的东西很多，要懂的相关知识也很多，等你完成了这个过程你会发现你已经算是一个初出茅庐的高手了。 在这个过程中如果你很有研究精神的话你必然会想到看源代码。很多书介绍你怎么阅读linux源代码，我不提倡无目的地去看linux源代码，用许三多的话说，这没有意义。等你在做移植的时候你觉得你必须去看源代码时再去找基本好书看看，这里我推荐一本好书倪继利的《linux内核的分析与编程》，这是一本针对linux-2.6.11内核的书，说得很深，建议先提高自己的C语言编程水平再去看。 至于每个部分的移植网上也可以找到好多吨的资料，自己研究研究吧，不过要提醒的是，很多介绍自己经验的东西都或多或少有所保留，你按照他说的去做总有一些问题，但是他不会告诉你怎么解决，这时就要靠自己，如果自己都靠不住就找我一起研究研究吧，我也不能保证能解决你的问题，因为我未必遇到过你的问题，不过我相信能给你一点建议，也许有助你解决问题。 这一步的最终目的是，从源代码的官方主页上（都是外国的，悲哀）下载标准的源代码包，然后进行修改，最终运行在板子上。 盗用阿基米德的一句话：“给我一根网线，我能将linux搞定”。 　
第五，研究linux驱动程序的编写。 　
移植系统并不是最终的目的，最终的目的是开发产品，做项目，这些都要进行驱动程序的开发。Linux的驱动程序可以说是五花八门，linux2.4和 linux2.6的编写有相当大的区别，就是同为linux2.6但是不同版本间的驱动程序也有区别，因此编写linux的驱动程序变都不是那么容易的事情，对于最新版本的驱动程序的编写甚至还没有足够的参考资料。那么我的建议就是使用、移植一个不算很新的版本内核，这样到时学驱动的编程就有足够的资料了。 这部分的推荐书籍可以参考另一篇文章《推荐几本学习嵌入式linux的书籍》。 第六，研究应用程序的编写。 做作品做项目除了编写驱动程序，最后还要编写应用程序。现在的趋势是图形应用程序的开发，而图形应用程序中用得最多的还是qt/e函数库。我一直就使用这个函数库来开发自己的应用程序，不过我希望你能使用国产的MiniGUI函数库。盗用周杰伦的广告词就是“支持国产，支持MiniGUI”。 MiniGUI的编程比较相似Windows下的VC编程，比较容易上手，效果应该说是相当不错的，我曾使用过来开发ARM7的程序。记住，问题是学习的最好机会