用户名: 密码: 免费注册 免费试用 简体中文 | ENGLISH
中国·芯片交易在线  
www.ic112.com
IC72论坛
广告服务
网页制作
用户帮助
首页 供应信息 求购信息 库存查询 新闻中心 展会资讯 IC厂商 技术资料 自由区域
当前位置:首页>> 技术资料 >> 正文
基于MPC8250的嵌入式Linux系统开发技术
时间:2007/8/11 10:16:00  作者:  来源:ic72  浏览人数:1026
 
 

  引 言

  我们开发了某型飞机外场维护系统的一个网络终端通讯平台,其硬件核心采用Motorola公司的嵌入式PowerPC处理器MPC8250,软件方面采用嵌入式linux作为操作系统,实现了飞机外场维护与飞机故障诊断系统的安全、快速通信。这个系统平台具有体积小、功耗低、性能高等特点。

  MPC8250构架与系统硬件平台简介

  PowerPC是Linux较早开始支持的处理器之一。PowerPC处理器芯片MPC8250基于PowerQUICC(Quad Integrated CommunicationsController)II 结构,是面向高性能、低功耗、小体积的通信设备而开发的处理器。其内部集成了一个高性能嵌入式G2 内核、一个灵活的系统集成单元SIU和许多控制领域的常用外围通信组件(组成通信处理模块CPM,CommunicationsProcessor Module),可用于许多方面,尤其是在通讯和网络系统方面。G2内核频率在150-200MHz之间,CPM、PCI最高频率为133MHz,外部频率为66MHz,可同时处理高达 
128个全双工时分复用逻辑通道。

  根据目标系统的不同,系统硬件平台可以引出所需的MPC8250的外部通讯接口。我们的系统提供了8M的flash用于存放内核镜像文件、文件系统、应用程序和备份数据,64MSDRAM用作内存,521KB 的flash用于存放启动代码,此外还有RS232串口、10/100M以太网口以及JTAG支持等。

  基于MPC8250的嵌入式linux系统开发

  编译环境的定制

  通常主机与目标板的CPU都不相同,需要进行交叉编译。能够进行交叉编译的工具很多,一般使用GNU C,它包括gcc、g++编译器,glibc、newlib 等C库,binutils 以及其他一系列开发工具。不同的开发平台需要不同的交叉编译工具。这里我们选择德国denx软件中心提供的一套用于PowerPC嵌入式linux移植的开发编译环境ELDK3.0(Embedded LinuxDevelopmentKit)。

  在主机上安装完毕后,修改bash_profile配置文件的路径和交叉编译环境,具体如下:

  PATH=$PATH:$HOME /bin:/opt/afeu/usr/bin:/opt/afeu/bin:/usr/bin

  CROSS_COMPILE=ppc_82xx

  EXPORT PATH CROSS_COMPILE

  目标系统资源分配

  嵌入式linux系统一般没有硬盘设备,存储空间十分有限。这就要求在Linux移植之前,需要对系统硬件地址精心分配,充分合理地利用。根据前面介绍的系统硬件平台,这里给出目标设备的地址分配,如表1所示。

      表1 目标设备的地址分配

ic72新闻中心

      调试环境的建立

  在嵌入式系统中一般没有显示器等输出设备,不利于在目标系统上进行调试。为了调试目标系统,我们通过JTAG仿真器BDI2000来跟踪调试目标机上的代码。其调试环境如图1所示。

ic72新闻中心

图1 系统调试环境

  其中网卡1#和目标机直接相连,用来下载内核镜像,NFS文件共享等。网卡2#连接到BDI2000上,再通过JTAG口连接到目标机上。串口用于命令传输、接收返回信息等。

  Linux系统引导模块U-Boot

  U-BOOT是denx软件中心依照GPL(General PubliCLicense)发布的系统引导模块,支持多种处理器,如ARM系列、PowerPC系列、MIPS 系列、X86系列等。编译U-BOOT-1.1.0后生成可执行文件,然后根据自己的目标系统修改编辑U-BOOT包下的文件,进行移植(这里需要说明的是,由于找不到MPC8250的支持包,而它和TQM8260内核相差不大,所以下面采用8260ads 的支持包,同样兼容)如:

  修改目标系统配置文件./include/configs/MPC8260ADS.h中的寄存器值、SDRAM 控制器参数、串口参数等;

  修改目标板定义文件./board/mpc8260ads/mpc8260ads.C中的I/O 端口定义;

  修改BCSR 等;

  U-Boot在引导Linux内核启动时,向内核传递了一个命令行,内核根据这个命令行的参数来对系统进行相应设置。在linux内核启动时,必须要挂载一个根文件系统。根文件系统可以通过网络文件系统NFS 和本地文件系统LFS两种方式提供。

  (1)通过NFS引导Linux系统

  通过NFS 引导Linux,其bootargs设置如下:

  (2)通过LFS引导linux系统

  通过LFS引导linux,可将bootargs设置如下:

  setenv bootargs root="/dev/mtdblock1" rw

  ip=24.86.246.216: 24.86.246.100: 24.86.246.100: 255.255. 255.0:afeu: eth1: off

  内核裁减与移植

  (1)Linux内核裁减:嵌入式系统存储单元十分有限,精简内核显得尤为重要。内核裁减主要是去掉无用模块,增加所需模块,使之更符合目标系统。这主要包括平台类型(platformsupport)的选择,我们选择TQM8260;Memory Technology Device(MTD)选择内核对MTD和Flash的支持;Networking options选择内核对网络的支持;file systems 选择内核对文件系统的支持;MPC8260CPMoptions用于配置目标系统的一些通信设备。

  裁减完内核后需要对其重新进行编译,方法与通用linux编译基本无异,限于篇幅,不再赘述。

  (2)Linux内核移植:内核移植源码主要分部在Linux/include/arch/ppC下。根据目标系统,对与_res 变量相关的参数进行调试跟踪修改,其修改的关键代码如下:

  对于arch/ppc/8260_io/commproc.c,改宏定义为:#defineBRG_INT_CLK(16 * 1000000);

  在arch/ppc/8260_io/uart.C中设置波特率:bd->bi_baudrate=9600;

  在arch/ppc/kernel/m8260_setup.C中设置总线频率:bininfo->bi_busfreq=66;

  设置arch/ppc/kernel/m8260_setup.C中的系统重启地址为:

  startaddr=0xeff00100;

  此外,还需要修改MTD 设置,主要是修改drivers/mtd/maps/tqm8260.c文件中的分区定义(和目标系统地址分配有关)和目标系统的Flash 的配置,使其满足自己系统的要求。关于8M Flash的分区会在文件系统中叙述。

  修改完内核源码,反复调试无误后,镜像内核文件,并使用U-Boot通过tftp将内核镜像文件下载到目标板上。重新引导后,目标板linux即可成功启动。

  文件系统

  (1)文件系统的分类:根据物理位置文件系统一般可分为网络文件系统NFS和本地文件系统LFS。NFS 对于目标系统 
的要求一般不大,只需要提供网络接口传送文件;而LFS 对目标系统却要求苛刻,一般需要大容量的flash。在嵌入式系统中,NFS主要用来对LFS 进行调整,即先在主机上将文件系统做好,通过NFS 挂载,调试用户系统。通过NFS 和LFS两种方式引导linux系统的方法前面已有介绍,这里不再赘述。

  Linux支持的文件系统格式主要有CRAMFS(CompressedROMFile System)和JFFS(Journalling Flash File System)。其中前者是只读的,在启动时装载较快,可用来存储动态连接库、应用程序、初始化脚本等;后者可进行读写操作,其第2个版本即JFFS2,还较好地解决了诸如Flash 的空间、使用寿命和垃圾回收问题。

  (2)Flash分区:基于对CRAMFS和JFFS两种文件系统的上述分析,可以将flash划分为只读区和可读写区,这既有利于linux系统的正常启动,又利于文件的数据保护。其分区如表2所示。

  EDLK3.0提供的文件系统较大,而且很多对目标系统都没有用,需要对其进一步进行裁减。裁减之后需要完善文件系统,以最大可能地符合目标系统。最后需要将裁减完善后的文件系统挂载为根文件系统。

表2 flash 空间分配

ic72新闻中心

      结    论

  基于PowerPC处理器MPC8250嵌入式linux系统充分发挥了linux对网络和MPC8250等设备的强大支持功能。与传统的人工查阅故障诊断手册相比,该系统可与飞机故障诊断系统进行实时通讯,有利于故障的快速查询、维修方案的快速选定。

 
【相关文章】
·基于MPC8250的嵌入式Linux系统开发技术
·无线局域网在医院应用的安全性研究综述
·TMS320VC55x系列DSP的Flash引导方法研究
·实时操作系统μC/OS-II在MCF5272上的移植
·基于AD7714AD780的高精度数据采集系统
·基于SA605和AD9850的接收电路设计及应用
·DM9000A与基带信号处理平台的结合应用
·电力SCADA仿真系统的开发与应用
·SH69P42单片机在电磁炉控制中的应用
 
 
新闻搜索
 
新闻热点
基于红外超声光电编码器的室内移动小车定位系
基于闪烁存储器的TMS320VC5409DSP并行引导装载方法
非移动市场需求飙升,ARM预计2010年出货量超50亿片
一种快速响应的电容式湿度传感器感湿薄膜设计
利用特殊应用模拟开关改进便携式设计
无线传感器网络跨层通信协议的设计
基于GSM技术的汽车防盗系统的设计
热电阻在烟叶初烤炕房温度控制中的应用
高速数据转换系统对时钟和数据传输的性能要求
Zetex迷你晶体管功率达1.25W
友情连接
 关于我们  IC论坛  意见反馈  设置首页  广告服务  用户帮助  联系我们
copyright:(1998-2005) IC72 中国·芯片交易在线
(北京)联系电话:(010)82614113、82614123 传真:(010)82614123 客户服务:service@IC72.com 库存上载:IC72@IC72.com
在线MSN咨询:ic72sale8@hotmail.com 通信地址:北京市西城区西直门内大街2号大厦15层 邮政编码:100013
(深圳)联系方式: 在线MSN咨询:ic72sale6@hotmail.com 在线QQ咨询:191232636 通信地址:深圳市福田区振华路
注 册 号: 1101081318959(1-1)

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 0 1 2 3 4 5 6 7 8 9