当前位置:首页 > 嵌入式 > 嵌入式软件
[导读]基于MPC8250的嵌入式Linux系统开发

引    言

  我们开发了某型飞机外场维护系统的一个网络终端通讯平台,其硬件核心采用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 目标设备的地址分配

目标设备的地址分配

调试环境的建立

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

系统调试环境

图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设置如下:
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 空间分配

flash 空间分配

结    论

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

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

我们知道 Flash 读时序里有五大子序列 CMD + ADDR + MODE + DUMMY + READ,前面的文章中痞子衡讲过《串行NOR Flash的Continuous read模式》,Continuous r...

关键字: CMD ADDR Flash

据业内信息,近日ADM的一份内部报告显示,ADM正在计划降低其锐龙 7000 CPU的生产计划。现阶段全球市场PC的低迷和销量下滑,再加上AM5平台整体反响不佳等等一系列原因导致ADM采取这一行动计划。

关键字: PC ADM 锐龙 7000 CPU

上海2022年10月11日 /美通社/ -- 日前,国际独立第三方检测、检验和认证机构德国莱茵TUV大中华区(简称"TUV莱茵")为宁波坚锋新材料有限公司...

关键字: 新材料 PC 可持续发展 ISO

你平时除了工作还会用电脑吗?近日分析机构Canalys发布了2022年第三季度全球PC出货量报告,台式机和笔记本电脑在第三季度的总出货量同比下降18%至6940万台。其中,笔记本电脑出货量受影响最大,同比下降19%至54...

关键字: PC 台式机 惠普 联想

Flash Memory 是一种非易失性的存储器。在嵌入式系统中通常用于存放系统、应用和数据等。在 PC 系统中,则主要用在固态硬盘以及主板 BIOS 中。

关键字: Flash 存储器 嵌入式系统

根据IDC全球个人计算设备季度追踪的初步结果,2022第三季度,全球PC发货量总计7420万台,传统PC市场继续下滑,需求降温和供应不平衡导致同比收缩15.0%。联想出货量1688万台,份额22.7%,比上年同期下降16...

关键字: 苹果 PC IDC 华硕

9月21日电,据巴伦金融周刊报道,全球个人电脑(PC)中央处理器(CPU)两大巨头英特尔与超微都坦承,当下PC市况比之前财报预期低潮的状况还更进一步恶化,超微更直言当前PC市场“一片混乱”,比原本财报预测的状况又恶化约1...

关键字: 英特尔 PC AMD

在吃完上一波居家办公、远程网课的红利之后,PC电脑再度遭遇至暗时刻。按照统计机构IDC的最新数据,预计今年PC出货量同比下滑12.8%,也就是从3.488亿台跌至3.053亿台,一年减少4350万台之多。

关键字: PC 电脑 销量

根据近日消费市场消息,今年的第二季度我国大陆地区PC(台式机、笔记本电脑和工作站)出货量1148.5万台,同比下降16%,其中台式机含台式工作站和笔记本电脑含移动工作站分别下降了26%和10%,同时,NAND Flash...

关键字: PC NAND Flash

8月23日消息,今年以来,由于PC市场需求下滑,导致OEM、ODM厂商的库存大幅上升,同时零售渠道的库存水位也于第二季度末攀升至新高,使得各OEM/ODM厂商的存货周转天数明显拉长,这也加剧了对于PC市场后续走向的疑虑。...

关键字: PC 联想 华硕

嵌入式软件

15715 篇文章

关注

发布文章

编辑精选

技术子站

关闭