基于AT91RM9200的嵌入式ARM开发平台的实现

发布者:忠正最新更新时间:2011-06-17 关键字:AT91RM9200  嵌入式  ARM开发平台 手机看文章 扫描二维码
随时随地手机看文章
    嵌入式系统是以应用为中心,以计算机技术为基础,软硬件可以裁剪来适应系统对功能、可靠性、成本、体积、功耗要求严格的专用计算机体系。随着各种微处理器功能的完善以及软件上操作系统的支持,使得嵌入式系统有了完整的体系架构。
    在专用的嵌入式板上运行操作系统需要利用Bootloader来引导加载内核和系统程序。Bootloader主要实现初始化硬件设备、建立内存空间的映射图,从而把嵌入式硬件和嵌入式操作系统很好地衔接起来。
    U-Boot是当前比较流行、功能强大、比较有代表性的Bootloader,支持的处理器包括Powerarm(ARM7,ARM9,Srongarm,Xscale)、MIPS、X86、Motorola等系列。
    与目前常见的嵌入式操作系统如Vxworks,QNx,Windows CE,Palm Os等相比,嵌入式Linux操作系统以价格低廉、功能强大而且易于移植被广泛地使用到各种嵌入式设备当中。文中主要介绍了基于at91 rm9200的ARM硬件开发平台,以及U-Boot和Linux-2.6.20内核在此平台上的移植。
    AT91RM9200处理器,是由Atmel公司开发的基于ARM920T内核的微处理器,带有MMU,CPU时钟最高可达240 MHz,有着丰富的标准接口、EBI接口,内部集成了静态存储控制器、SDRAM控制器、Burst Flash控制器等。SDRAM采用两片hy57v651620b芯片,组成32 bit通道,大小一共16 MB,Flash采用Intel Js28f128芯片,容量为16 MB。网络芯片采用dm9161a。系统硬件平台的原理,如图1所示。

1 U-Boot移植
    对于AT91RM9200,系统上电时,通过检测BMS来选择系统的启动方式,如果BMS为高电平,则系统从片内ROM启动,如果BMS为低电平,则从片外的Flash启动。在没有移植U-Boot到Flash之前,只能选择片内ROM启动。片内启动时,AT91RM9200的ROM上电之后被映射到了0x0和0x100000处,在这两个地址处都可以访问ROM。AT91RM9200的ROM固化了一个Bootloarder程序,这个Bootloader主要完成一些相应的初始化工作,并且运行Xmodem协议等待接收Loader.bin映像。Loader.bin代码可以到Atmel官方网站下载,Loader.bin主要完成的任务是通过Xmodem协议将U-Boot.bin下载到内存中直接运行。U-Boot.bin在内存中跑起来之后就可以利用U-Boot的功能把Boot.bin和U-Boot.bin写到Flash中,从而实现片外Flash启动。其中Boot.bin主要实现的任务是把Flash中的U-Boot拷贝到内存中执行。
    U-Boot的源代码可以到官方网站下载。文中所用的版本是U-Boot-1.1.1,对AT91RM9200的芯片完全支持,由于具体硬件的不同,需要做一定的修改。支持AT91RM9200代码在BOARD/AT91RM9200 目录下面,主要有AT91RM9200DK.c,Flash.c,U-Boot.lds,Con-fig.mk几个文件。主要做的修改如下:
    (1)修改Config.mk中的Tex_base为0x20f00000,和前面的boot地址保持一致;

    (2)修改Flash.c文件,使其支持Intel JS28F128芯片。由于官方使用支持的是AMD Flash,需要在代码里添加对本系统芯片的支持。在U-Boot的代码中Strong ARM架构里的xm250,它的代码是支持Intel Flash的,可以参考相应代码实现移植;[page]

    (3)修改头文件 include/Configs/AT91RM9200dk.H,主要修改的是针对SDRAM以及Flash的参数配置:将phys_sdram设置成0x20000000,这个是SDRAM的起始地址,phys_flash_sdram_size设置为0x1000000,SDRAM容量为16 MB。对于Flash,需要修改的是:Flash起始地址设置为0x10000000(Flash挂在bank0上),phys_flash_size设置为0x1000000。扇区的总数cfg_max_flash_sect相应设置为128。
    最后在Linux里安装交叉编译器,笔者用的交叉编译器的版本是2.95.3,编译代码,生成U-Boot.bin文件。U-Boot启动后显示,如图2所示。

2 Linux2.6.20内核移植
2.1 Linux内核版本选择
    Linux内核版本更新速度非常块,现在最新的版本已发展到了2.6.26.3。与2.4内核相比,2.6内核稳定性更好、对于总线、文件系统、块设备支持、多媒体、网络安全性等方面都有了更好的支持,因此笔者选择移植功能和可靠性都比较欧成熟的Linux2.6.20版本到本系统中。Linux内核的源代码可在www.kernel.org网站上下载,Atmel官方网站上可以获取针对AT91RM9200的补丁2.6.20-AT91.patch.gz和Linux-2.6.20-exp.diff.Bz2。对Linux2.6.20源代码打上支持AT91RM9200处理器的补丁之后,内核就可以支持AT91RM9200处理器了。
2.2 交叉编译环境的建立
    采用的交叉编译工具为ARM-Linux-Gcc3.4.1,这是目前比较通用支持编译2.6内核的交叉编译器,完全支持编译2.6内核,在开发平台上将交叉编译器安装好,并配置好环境变量Path=$Path:/Usr/Local/Arm/3.4.1/Bin。
2.3 解决Machine Id问题
    在U-Boot的代码中,支持的AT91RM9200的Machine类型为25 1、262两种,这两种在Include/asm-arm/mach-types.h定义为mach_type_AT91RM9200和mach_type_AT91RM9200dk,在U-Boot中board/AT9 1 RM9200dk/AT91 RM9200dk.c中采用的是第一种,而在Linux2.6.20内核代码中arh/Arm/Math-AT91RM9200使用的类型却为AT91RM9200DK,也就是第2种。因此在启动的时候会出现Machine不匹配的问题,解决问题的办法就是更改U-Boot或者Linux内核的代码,使其Machine类型相匹配。
2.4 Nor Flash的地址安排
    笔者采用的Flash为16 MB NOR Flash,为了实现层次文件系统,需要增加NOR Flash MTD驱动支持,具体地址安排,如图3所示。

    在Dirvers/MTD/Maps/里增加AT91 RM9200.c文件,作为自己的分区代码,并且编译进内核。[page]

2.5 编译内核
    首先要修改内核内核目录下MAKEFILE文件,编译器修改为安装好的交叉编译器,即Arch?=ARM和Cross_Compile?=ARM-Linux-,然后运行命令make AT91RM9200DK_Defconfig,配置好内核。如果需要修改一些具体的配置,可以运行makeMenuconfig命令进入如下菜单进行配置。配置好内核之后运行make Image命令,编译生成内核镜像Vmlinux,最后用Mkimage工具生成Uimage。

2.6 制作Ramdisk文件系统
    Linux采用文件系统组织系统中的文件和设备,为设备和用户程序提供统一接口,因此Linux启动还需要有根文件系统。根文件系统的作用是存放各种工具、应用程序以及必须的库文件等。Ramdisk是通过计算机的内存用作设备来创建和挂在文件系统的一种驱动机制,它通常用于无盘系统。根文件系统通常包括一下目录内容:/Dev(设备目录);/Proe(Proe文件系统目录);/Etc(系统配置文件);/Sbin(系统程序的目录);/Bin(系统应用程序,通常由busybox来实现);/Lib(共享库文件);/Mnt(装在其它磁盘节点的目录);/Usr(附加应用程序的目录)。


3 结束语
    ARM9作为新一代处理器有着更高的性价比、更低的功耗、执行速度更快、性能更高、应用范围更加广泛的特点;Linux以其优越的性能、源代码的开放、容易移植等特点被应用于越来越多的领域当中。基于AT91RM9200微控制器的硬件嵌入式开发平台,可以根据具体需要,应用于嵌入式教学实验以及嵌入式产品开发等多种场合中,具有广阔的发展前景。

关键字:AT91RM9200  嵌入式  ARM开发平台 引用地址:基于AT91RM9200的嵌入式ARM开发平台的实现

上一篇:基于ARM9处理器S3C2440的GPS导航终端机的设计
下一篇:基于ARM Linux QT的掌上多媒体系统的设计和实现

推荐阅读最新更新时间:2024-03-16 12:37

基于ARM嵌入式系统与Internet网络技术实现设备的远程实时监测
目前国外对于大型光电望远镜系统所采用的观测站远程监控系统已经比较完善,但是国内还没得到很好的应用。本课题将设计一个观测站远程监控系统,把ARM- Linux嵌入式系统应用到该系统中,实现一个在线实时监测、控制于一体的低成本远程监控系统。随着嵌入式系统的发展越来越成熟,嵌入式处理技术很好地解决和实现了高低端系统的实时性、多任务性、大数据量处理的要求。嵌入式Internet技术的产生,使得设备可以轻而易举地接入Internet网络,实现设备上网和设备的远程监控。短消息服务(SMS)已成为一种成熟的技术,其业务已为人们广泛使用和喜爱。由于GSM网络覆盖面广,可靠性高,采用无线网络远程监控也有很广阔的应用前景。 1、系统工作原理及硬件
[单片机]
基于<font color='red'>ARM</font><font color='red'>嵌入式</font>系统与Internet网络技术实现设备的远程实时监测
嵌入式技术到智慧系统,十大行业掀起技术革命(上)
最近一段时间,intel、微软、ARM、AMD、研华等企业一系列动作显示,嵌入式技术在各行业各业的应用已全面开花,并由点向面扩展,出现了新的革命机遇:分散在各个设备、各个部件的嵌入式系统将被整合成更大的智慧系统。在不同行业不同领域的智慧系统中,人、设备、信息将被汇聚、分析、整合,为人们的生活、生产以及消费创造出前所未有的全新体验,生产力也将随着大幅提高。以“智慧 创造 生产力”为主题,8月份在深圳、北京、上海、成都四地召开的第三届工业计算机及嵌入式系统展上,就将全面展现从嵌入式技术到智慧系统为各大行业带来的变革。 在筹备本届工业计算机及嵌入式系统展及同期的医疗电子技术大会、汽车电子嵌入式技术研讨会等活动过程中,通过与各展商、
[嵌入式]
多核与多执行绪的嵌入式系统解决方案
在嵌入式装置中建置多核心(包含同质或异质)以及多执行绪技术,的确能带来诸多效益,尤其是改进系统效能方面最为明显。 尽管RISC嵌入式技术所面临的挑战越来越多,但是在维持以往嵌入式软件资源兼容性的前提之下,能够改善其未来适用性,并且有效提升新系统的效能表现,使其不失为良好的解决方案。 应用决定多核或多绪 多核心与多执行绪在效能表现上有其帮助,但是效能与这些技术的内建其实并没有绝对关系,会造成这样的原因主要是应用环境的需求。以手机为例,整合于手机内的SoC芯片虽然是属于多核心架构的一环,但是手机采用的SoC芯片多为应用处理器,其整合的核心并非完全属于同性质架构,同质多核心在嵌入式系统实际应用上的案例其实非常少。 而多执行绪处理器
[嵌入式]
Intel Xscale PXA255嵌入式处理器与CF卡的
以导航设备存储系统应用为例,本文讨论了Intel Xscale PXA255嵌入式处理器与CF卡的硬件接口设计,并以读写CF卡扇区的程序为例,给出了CF卡软件编写的技巧。该设计为基于PXA255处理器的嵌入式系统提供了扩展存储空间的一种方法。 图1:CF卡结构框图 Intel Xscale PXA255处理器是新一代的嵌入式处理器,基于ARMv5TE体系结构的微处理器,性价比较高、功耗较低,适合于数字移动电话、个人数字助理、网络路由器等嵌入式系统的应用。在采用PXA255处理器开发诸如车载导航系统时,电子地图等海量地理信息数据需要一个容量大、体积小、性能优异的存储器。“Compact Flash”卡,简称CF卡,具
[单片机]
Intel Xscale PXA255<font color='red'>嵌入式</font>处理器与CF卡的
中兴新支点嵌入式操作系统出货2亿套
在OS系统领域,国产厂商终于有所突破——中兴高管吕钱浩表示中兴新支点嵌入式操作系统出货量已经超过两亿套。 据他所说,新支点嵌入式操作系统出货量每年的发货量在两千万套左右,目前已经在350公里时速的复兴号高铁上规模商用了。 据介绍,新支点是一款多场景、分布式、多协同、高效能、高可靠的嵌入式操作系统,符合欧标CGL5.0标准认证、荣获中国工业大奖、申请国内外上百项发明专利。 中兴表示,其支持嵌入式底层虚拟化、支持容器技术。提供高实时性、高稳定性、高安全性、高易用等特性,支持多核、多架构、多驱动。提供高度定制的技术服务,包括系统性能优化,驱动定制开发,驱动调优等。 目前广泛应用于通信行业、智能电力行业、智能汽车电子行业、
[嵌入式]
中兴新支点<font color='red'>嵌入式</font>操作系统出货2亿套
基于ARM9和嵌入式Linux系统的多功能综合通信控制系统的框架
本文介绍了基于ARM9硬件平台和嵌入式Linux系统的多功能综合通信控制系统的框架设计及各模块的功能。系统采用符合POSIX.1标准的C语言编写,实现了对下位机传送数据帧的采集、分析和存储,并能根据上位机的配置指令和数据传输指令分别对串口波特率、数据时间及手机短信号码等参数进行配置和存储数据的传输。 伴随着计算机技术的迅速发展,工业数据采集已由传统的测控 电路 发展为由微型计算机、接口电路、外部通用设备和工业生产对象等组成的现代数据采集与控制系统。但是以微型计算机为核心的数据采集系统也逐渐暴露出许多缺陷:体积大,不易携带;扩展性差、成本高等。因此,以嵌入式系统为平台的数据采集和控制系统应运而生,嵌入式数据采集系统具备可靠性
[单片机]
基于<font color='red'>ARM</font>9和<font color='red'>嵌入式</font>Linux系统的多功能综合通信控制系统的框架
基于开源微处理器OR1200的嵌入式SoC设计
RISC是一种执行较少类型计算机指令的微处理器,起源于80 年代的MIPS主机(即RISC 机),RISC机中采用的微处理器统称RISC处理器。这样一来,它能够以更快的速度执行操作(每秒执行更多百万条指令,即MIPS)。因为计算机执行每个指令类型都需要额外的晶体管和电路元件,计算机指令集越大就会使微处理器更复杂,执行操作也会更慢。RISC微处理器不仅精简了指令系统,采用超标量和超流水线结构;它们的指令数目只有几十条,却大大增强了并行处理能力。如:1987年Sun Microsystem公司推出的SPARC芯片就是一种超标量结构的RISC处理器。而SGI公司推出的MIPS处理器则采用超流水线结构,这些RISC处理器在构建并行精简指令
[电源管理]
基于开源微处理器OR1200的<font color='red'>嵌入式</font>SoC设计
基于ARM嵌入式微处理器的以太网应用
1 引言 随着微电子技术和计算机技术的发展,嵌入式技术得到广阔的发展空间,特别是进入20世纪90年代以来,嵌入式技术的发展和普及更为引人注目,已经成为现代工业控制、通信类和消费类产品发展的方向,在通信领域,众多网络设备如VOIP,WirelessLAN,ADSL等都包含有大量嵌入式技术的成份,广播电视在向数字化的趋势发展,DVB,DAB技术也逐渐在全面推广起来,个人消费类产品,如PDA、数码相机、MP3播放器等产品都离不开嵌入式技术的支持,嵌入式技术在ATM、可视电话、汽车的ABS等产品中也都有大量的应用,此外,军事领域之中也处处可见嵌入式技术的身影,如单兵信息终端,便携式保密机,战场指挥系统等,可以说,嵌入式系统已经渗透到人
[网络通信]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved