基于PowerPC处理器MPC8541E的嵌入式Linux系统开发.pdf
《基于PowerPC处理器MPC8541E的嵌入式Linux系统开发.pdf》由会员分享,可在线阅读,更多相关《基于PowerPC处理器MPC8541E的嵌入式Linux系统开发.pdf(9页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、http:/ -1-基于基于 PowerPC 处理器处理器 MPC8541E 的嵌入式的嵌入式 Linux 系统开发系统开发 方先康 北京邮电大学计算机科学与技术学院,北京(100876)E-mail: 摘摘 要:要:介绍了嵌入式 PowerPC 处理器芯片 MPC8541E 的主要特征。着重阐述了如何在PowerPC 处理器(以 MPC8541E 为例)上开发嵌入式 Linux 系统,主要包括编译环境开发、目标系统配置、调试环境建立、系统引导模块 U-BOOT 修改、内核裁减与移植以及文件系统分类等。Linux 系统对于 PowerPC 处理器具有良好的支持性能。基于 PowerPC 处理器
2、的嵌入式 Linux 系统提供了一个小体积、低功耗、具有丰富接口的开发平台,为软件的应用开发打下了坚实基础。关键词:关键词:PowerPC 处理器;MPC8541E;嵌入式系统;linux;U-Boot 中图分类号:中图分类号:TP393.01 1.引言引言 在网络和服务器方面,对于I/O的处理能力有很高的要求,如高端安全gateway/VPN/IPSec等,然而随着业务的增多,使得处理量超过服务器所能承受的范围,因此需要性能高,功耗低的产品来更新换代。因此我们为一款网络安全产品开发了系统平台,其核心采用 Freescale 公司的嵌入式 PowerPC 处理器 MPC8541E,软件方面采用
3、嵌入式 linux 作为操作系统,实现了快速通信与高吞吐率的数据处理。这个系统平台具有体积小、功耗低、性能高等特点。本文内容是主要基于 U-boot 引导装载程序和 Linux 操作系统,针对编译环境开发、目标系统配置、调试环境建立、系统引导模块 U-BOOT 修改、内核裁减与移植以及文件系统建立等问题提出解决办法。2.MPC8541E 构架与系统硬件平台简介构架与系统硬件平台简介 MPC8541E 处理器是飞思卡尔半导体(Freescale semiconductor)推出了一款以其高效能e500 PowerPC 系统化芯片(SoC)平台为基础且具有整合式安全引擎与双 on-chip PCI
4、 接口的PowerQUICC III通讯处理器。MPC8541E拥有一个64-bit 333MHz DDR SDRAM内存控制器、双 Gigabit Ethernet 控制器、双 10/100 Fast Ethernet 控制器、一个四信道 DMA 控制器、双异步收发器(DUART)、一个逻辑总线控制器、两个 I2C 控制器及一个 SPI。MPC8541E 也包含了可设为一个 64 位 PCI 或两个 32 位 PCI 的控制器。系统硬件平台选用了主频为 833M 的MPC8541E,提供了 32M 的 data flash 用于存放内核镜像文件、文件系统、应用程序和备份数据,256M DDR
5、333 SDRAM 用作内存,512 KB 的 bootrom flash 用于存放启动代码,此外还有 JTAG 支持等。因为实际需要,我们的系统利用 Intel 82546 网络芯片扩展出两个千兆网口,并提供了另外一个 32 位 PCI 插槽。此解决方案的指导思想就是既做到高性能,又做到经济有效,同时具备良好的扩展性。3.基于基于 MPC8541E 的嵌入式的嵌入式 linux 系统开发系统开发 3.1 编译环境的建立编译环境的建立 通常主机与目标板的 CPU 都不相同,需要进行交叉编译。在本项目中使用了 GNU GCC 工具链。GNU GCC 的 PowerPC 版本需要交叉编译,所有源代
6、码可以从 FSF 的 FTP 站点http:/ -2-ftp:/ftp.gun.org/gnu/或它的镜像去下载。整个建立过程如下:1.下载源文件、补丁和建立编译的目录 2.建立内核头文件 3.建立二进制工具(binutils)4.建立初始编译器(bootstrap gcc)5.建立 c 库(glibc)6.建立全套编译器(full gcc)完成之后,为便于管理,我放置于/opt/powerpc-linux-gnu 目录下,如果存在多种的交叉编译环境,为避免频繁切换交叉编译变量,建议建立 powerpc 的专用开发用户,我使用 ppc作为用户名,并且建立修改开发用户主目录下的.bashrc v
7、im home/ppc/.bashrc 添加如下内容:export ARCH=ppc export PATH=/opt/powerpc-linux-gnu/bin:$PATH export CROSS_COMPILE=powerpc-linux-gnu-3.2 调试环境的建立调试环境的建立 在嵌入式系统中,一般没有显示器等输出设备,而且由于目标板资源有限,不容易在目标系统上进行直接调试,所以一般都需要采用交叉编译远程调试的方法,保证调试顺利进行。在最初的调试阶段(调试 cache,MMU,TLB,DRAM 等),可以使用 USB TAP 仿真器进行调试,直至串口调通,能打印出信息。此时依靠串口
8、打印信息可以代替仿真器的大部分工作。在调试完 U-boot 的网口驱动之后,可以进行 kernel 与 ramdisk 文件的下载,对 linux 系统进行调试。调试环境基本结构框图如下:图 1 调试环境基本结构框图 http:/ -3-3.3 目标系统资源分配目标系统资源分配 对于系统平台来说,建立良好的内存映射表是系统成功运行的基本保证。具体内存资源映射情况见下表:表 1 内存空间映射表 片选 存储控制器 内存范围 LCS0 GPCM 0 xFFF80000-0 xFFFFFFFF LCS1 GPCM 0 xFC000000-0 xFDFFFFFF 内部 PCI1 memory space
9、 0 x80000000-0 x9FFFFFFF 内部 PCI2 memory space 0 xC0000000-0 xDFFFFFFF 内部 CCSBR 0 xE0000000-0 xE00FFFFF 内部 PCI I/O space 0 xE2000000-0 xE2FFFFFF 3.4 引导引导 Linux 系统的系统的 bootloader(U-Boot)3.4.1 U-boot U-BOOT 是 DENX 软件中心依照 GPL(General Public License)发布的系统引导模块,支持多种处理器,如 ARM 系列、PowerPC 系列、MIPS 系列、X86 系列等。根
10、据自己的目标系统修改编辑 U-BOOT 包下的源文件,进行移植,最后编译 U-BOOT 后生成二进制文件,用于引导系统。U-boot 的源文件可从 u-boot 官方网站http:/ 获得。由于 U-boot 提供了很好的结构框架,故我们选择了 CPU 和板上资源与我们最为相似的 MPC8555CDS 板的支持包,在此基础上进行开发。3.4.2 新建项目文件新建项目文件 新建我们的项目文件,步骤如下:1.选择 CPU 和板上资源与我们最为相似的 MPC8555CDS 板,复制 MPC8555CDS 的源文件夹,重命名为 Sec8541;2.编辑 Makefile,添加 Sec8541_conf
11、ig:unconfig ./mkconfig$(:_config=)ppc mpc85xx Sec8541 3.#cd u-boot#make Sec8541_config#make 如能正确编译生成 U-boot,则准备下一步开发 3.4.3 移植移植 U-boot 这里是最重要的步骤,就是根据硬件的情况来修改相关的参数。如果对主板的硬件情况不是很了解,则需要耐心地看硬件资料和原理图,主要修改的地方有:include/configs/sec8541.h http:/ -4-由于处于开发调试阶段,我们需要使用 tsec 通过网络下载镜像文件,根据布线情况,需要修改:#define TSEC1_
12、PHY_ADDR 8#define TSEC2_PHY_ADDR 9 配置 Flash 基址信息:#define CFG_FLASH_BASE 0 xfff80000 /*Bootrom 512 KB*/#define CFG_FLASH2_BASE 0 xfc000000 配置 DDR 控制器信息:#define CFG_BR0_PRELIM 0 xfff80801#define CFG_BR1_PRELIM 0 xfc001001#define CFG_OR0_PRELIM 0 xfff86ec1#define CFG_OR1_PRELIM 0 xfe006e61 还有其它配置:#defi
13、ne CONFIG_BOOTCOMMAND CONFIG_RAMBOOTCOMMAND#define CONFIG_BAUDRATE 115200#define CONFIG_IPADDR 10.50.10.90#define CONFIG_HOSTNAME unknown#define CONFIG_ROOTPATH /nfsroot#define CONFIG_BOOTFILE uImage#define CONFIG_SERVERIP 10.50.10.91#define CONFIG_GATEWAYIP 10.50.10.91#define CONFIG_NETMASK 255.255
14、.255.0#define CONFIG_RAMBOOTCOMMAND setenv bootargs root=/dev/ram rw console=$consoledev,$baudrate$othbootargs;tftp$ramdiskaddr$ramdiskfile;tftp$loadaddr$bootfile;bootm$loadaddr$ramdiskaddr Board/sec8541/flash.c flash 驱动程序的编写完全依赖于 Spansion S29GL256N 的数据手册,数据手册重要部分如下所示:http:/ -5-图 2 flash 命令字操作流程图 因此
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 PowerPC 处理器 MPC8541E 嵌入式 Linux 系统 开发
限制150内