基于MPC8247嵌入式电力交换系统的设计与实现
3 嵌入式系统开发的实现过程
本文的软件平台是基于电力交换设备,DPN8000的开发环境为模型。搭建软件层次模型如下:
3.1 Linux系统引导模块uboot
U-Boot是德国DENX软件中心依照GPL(General Public License)发布的系统引导模块,支持多种处理器,如ARM系列、PowerPC系列、MIP S系列、X86系列等。根据自己的目标系统修改编辑U-Boot包下的源文件,进行移植,最后编译U-Boot后生成二进制文件,用于引导系统。
在U-Boot代码中,主要有关的代码设置在MYM(uboot)\cpu\mpc8260.c的代码中实现,但是该地址的定义在其平台说明头文件中。故增加一个mpc8247平台——mpc8260ads,在$(u-boot)\include\config目录下增加一个相应平台配置头文件说明-mpc8260ads.h,将与硬件有关的配置放在此文件中。对应SDRAM,FLASH等定义如下:
(1)SDRAM的地址设定
#define CFG_OR1 0xF0002900
#define CFG_PSDMR 0xc4322423
以上定义的为SDRAM的地址设定,由MPC8247片选CS1相关的寄存器设定。
(2)FLASH的地址设定
#define CFG_FLASH_BASE 0xfe000000
#define CFG_BR0_PRELIM
CFG_FLASH_BASE | 0x00001801
#define CFG_OR0_PRELIM
CFG_FLASH_BASE | 0x000008C2
以上定义的为FLASH的地址设定,由MPC8247片选CS0相关的寄存器设定。
(3)FPGA地址设定
#define CFG_FPGA_BASE 0xF4500000
#define CFG_BR3_PRELIM CFG_FPGA_BASE| 0x00001801
#define CFG_OR3_PRELIM 0xFFFF8010
以上定义的为FPGA的地址设定,由MPC8247片选CS0相关的寄存器设定。
修改完成后,通过make得到u-boot.bin文件。
3.2 Linux内核的移植
由于嵌入式系统存储资源有限,精简内核就显得尤为重要。建立系统的新内核,最主要的工作就是配置内核参数配置内核文件,进入内核释放的目录下执行命令:#make menuconfig会生成新的.config文件。然后执行#make uImage,生成新的uImage,将生成的内核拷贝到tf tp目录下即可。
使用tftp将内核镜像文件下载到目标板上,重新引导后,目标板即可成功启动。
3.3 文件系统的制作
将得到Busybox版本进行解压,配置和编译就可以得到想要的文件系统。具体命令如下:
下载一个busybox-1.1.3.tar.gz
#tar xvzf busybox-1.1.3.tar.gz
#cd busybox-1.1.3
#make defeonfig
#make menuconfig
Busybox编译出一个单个的独立执行程序,就称为Busybox,它集成了非常多的命令工具,如果要使用某一命令,需要做一个软链接就可以了。在这个项目中,采用busybox来配置所需各类文件,具体方法参见busybox的手册。
3.4 SDK的移植过程
将拿到的sdk-xgs-robo-5.6.2.tar.gz的源码文件解压到/home/corn_work/目录下:
#ed/home/com_work
#tar-zxvf sdk-xgs-robo-5.6.2.tar.gz
3.4.1 设置环境变量
设置环境变量如下:
#export SDK=/home/com_work/sdk-xgs-robo-5.6.2
这样SDK的环境路径已经设好,进入make目录下,修改对应的Makefile.linux-bmw和Make.local文件,使这2个文件对应的内核,编译器路径和交换芯片类型是所需要的类型。
3.4.2 编译SDK
如果想重编译SDK,只需进入:/home/eom_work/sdk-xgs-robo-5.6.2/systems/linux/kernel/bmw目录下,执行#make clea n;make将生成的模块拷贝到对应文件系统的对应的目录下即可。
生成的模块如表2所示。
然后将用到的模块加载。执行过程如下:
#insmod linux-kernel-bde.o-f
#insmod linux-uk-proxy.o-f
#insmod linux-bcm-diag-full.o-f
#./bcm.user.proxy
3.5 ZebOS的移植过程
将拿到的ZebOS771.tar. gz的源码文件解压到/home/corn_work/目录下:
#cd/home/com_work
#tar-zxvf ZebOS771.tar.gz
3.5.1 建立环境变量
进入zebos目录下:
#cd/home/com_work/ZebOS771
建立set_export.sh文件源码如下:
修改完set_export.sh文件,执行:#source set_export.sh即可。
3.5.2 修改配置文件编译ZebOS
进入ZebOS目录下,主要修改的文件是config.sh,修改好自己要编译的模块,执行:#.config. sh进入platform/linux目录下:#cd platform/linux
#make clean;make all就好了。将platform/linux/bin目录下生成的bin文件拷贝到文件系统对应目录下,这样,就完成了整个系统的开发搭建。
4 结语
基于MPC8247嵌入式电力交换系统的设计,具有体积小、功耗低、性能高,丰富的应用接口等优点,随着大容量电力光交换设备DPN8000的现场应用,证实该系统充分发挥了对网络和配电等设备的强大支持功能。该平台系统在变电站工作环境比较恶劣的条件下有较好的适应性和强大的通信能力,提供了更高的转发速率,更大的吞吐率和更好的包处理能力,充分体现了其优异的性能。
- Linux嵌入式系统开发平台选型探讨(11-09)
- 嵌入式系统中文输入法的设计(03-02)
- 基于MPC755的嵌入式计算机系统设计(05-10)
- WinCE下光电编码器的驱动程序设计(04-12)
- 为什么嵌入式开发人员要使用FPGA(05-13)
- VxWorks几种常用的延时方法介绍(05-16)