基于MPC8247嵌入式电力交换系统的设计与实现
2.1.2 配置DHCP
主机系统需要设置DHCP服务器,用于目标系统在采用BOOTP启动时获取IP地址。设置之前首先要知道目标系统的MAC地址,同时要保证主机系统安装了DHCPD服务器。修改虚拟机中/etc/dhcpd.conf配置文件,然后用如下命令重新启动dhcpd服务:
#/etc/init.d/dhcpd restart
同时启动dhcpd服务,使主机每次启动时自动启动该服务。
2.1.3 配置TFTP服务器
TFTP(简单文件传输协议)服务器用于目标系统从主机系统上获取可执行的代码或内核映象文件。
以超级用户登录主机系统,编辑下面文件:
#vim/etc/xinetd.conf
去掉下面一行的注释:
#tftp dgram udp wait root/usr/sbin/tcdp in.tftpd
根目录下创建tftpboot目录:
#mkdir tftpboot
将每次编译好的目标代码拷贝到该目录下,在系统服务中启动TFTPD服务(运行#setup,在“System services”中选择。)然后执行:#service xinetd restart即可。
2.1.4 配置NFS
NFS主要是给目标系统提供一个根文件系统(Root Filesystem)。
首先,编辑配置文件/etc/exporlts:
#vi exports
如果原来不存在,添加一行:
/home/com_target_master*(rw,no_root_squash)
“/home/com_target_master”是根文件系统所在的目录,“*”允许主机所在网段所有机器访问。和配置TFTP一样,在系统服务中启动NFS服务,重新启动系统或运行:
#service nfs restart
2.2 目标板FLASH资源分配
对于系统平台来说,建立良好的FLASH分区是系统成功运行的基本保证。具体FLASH资源分配如表1所示。本文引用地址:https://www.eepw.com.cn/article/148132.htm
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将内核镜像文件下载到目标板上,重新引导后,目标板即可成功启动。
评论