基于MPC8247嵌入式電力交換系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
2.1.2 配置DHCP
主機(jī)系統(tǒng)需要設(shè)置DHCP服務(wù)器,用于目標(biāo)系統(tǒng)在采用BOOTP啟動(dòng)時(shí)獲取IP地址。設(shè)置之前首先要知道目標(biāo)系統(tǒng)的MAC地址,同時(shí)要保證主機(jī)系統(tǒng)安裝了DHCPD服務(wù)器。修改虛擬機(jī)中/etc/dhcpd.conf配置文件,然后用如下命令重新啟動(dòng)dhcpd服務(wù):
#/etc/init.d/dhcpd restart
同時(shí)啟動(dòng)dhcpd服務(wù),使主機(jī)每次啟動(dòng)時(shí)自動(dòng)啟動(dòng)該服務(wù)。
2.1.3 配置TFTP服務(wù)器
TFTP(簡單文件傳輸協(xié)議)服務(wù)器用于目標(biāo)系統(tǒng)從主機(jī)系統(tǒng)上獲取可執(zhí)行的代碼或內(nèi)核映象文件。
以超級用戶登錄主機(jī)系統(tǒng),編輯下面文件:
#vim/etc/xinetd.conf
去掉下面一行的注釋:
#tftp dgram udp wait root/usr/sbin/tcdp in.tftpd
根目錄下創(chuàng)建tftpboot目錄:
#mkdir tftpboot
將每次編譯好的目標(biāo)代碼拷貝到該目錄下,在系統(tǒng)服務(wù)中啟動(dòng)TFTPD服務(wù)(運(yùn)行#setup,在“System services”中選擇。)然后執(zhí)行:#service xinetd restart即可。
2.1.4 配置NFS
NFS主要是給目標(biāo)系統(tǒng)提供一個(gè)根文件系統(tǒng)(Root Filesystem)。
首先,編輯配置文件/etc/exporlts:
#vi exports
如果原來不存在,添加一行:
/home/com_target_master*(rw,no_root_squash)
“/home/com_target_master”是根文件系統(tǒng)所在的目錄,“*”允許主機(jī)所在網(wǎng)段所有機(jī)器訪問。和配置TFTP一樣,在系統(tǒng)服務(wù)中啟動(dòng)NFS服務(wù),重新啟動(dòng)系統(tǒng)或運(yùn)行:
#service nfs restart
2.2 目標(biāo)板FLASH資源分配
對于系統(tǒng)平臺來說,建立良好的FLASH分區(qū)是系統(tǒng)成功運(yùn)行的基本保證。具體FLASH資源分配如表1所示。本文引用地址:http://www.ex-cimer.com/article/148132.htm
3 嵌入式系統(tǒng)開發(fā)的實(shí)現(xiàn)過程
本文的軟件平臺是基于電力交換設(shè)備,DPN8000的開發(fā)環(huán)境為模型。搭建軟件層次模型如下:
3.1 Linux系統(tǒng)引導(dǎo)模塊uboot
U-Boot是德國DENX軟件中心依照GPL(General Public License)發(fā)布的系統(tǒng)引導(dǎo)模塊,支持多種處理器,如ARM系列、PowerPC系列、MIP S系列、X86系列等。根據(jù)自己的目標(biāo)系統(tǒng)修改編輯U-Boot包下的源文件,進(jìn)行移植,最后編譯U-Boot后生成二進(jìn)制文件,用于引導(dǎo)系統(tǒng)。
在U-Boot代碼中,主要有關(guān)的代碼設(shè)置在MYM(uboot)\cpu\mpc8260.c的代碼中實(shí)現(xiàn),但是該地址的定義在其平臺說明頭文件中。故增加一個(gè)mpc8247平臺——mpc8260ads,在$(u-boot)\include\config目錄下增加一個(gè)相應(yīng)平臺配置頭文件說明-mpc8260ads.h,將與硬件有關(guān)的配置放在此文件中。對應(yīng)SDRAM,F(xiàn)LASH等定義如下:
(1)SDRAM的地址設(shè)定
#define CFG_OR1 0xF0002900
#define CFG_PSDMR 0xc4322423
以上定義的為SDRAM的地址設(shè)定,由MPC8247片選CS1相關(guān)的寄存器設(shè)定。
(2)FLASH的地址設(shè)定
#define CFG_FLASH_BASE 0xfe000000
#define CFG_BR0_PRELIM
CFG_FLASH_BASE | 0x00001801
#define CFG_OR0_PRELIM
CFG_FLASH_BASE | 0x000008C2
以上定義的為FLASH的地址設(shè)定,由MPC8247片選CS0相關(guān)的寄存器設(shè)定。
(3)FPGA地址設(shè)定
#define CFG_FPGA_BASE 0xF4500000
#define CFG_BR3_PRELIM CFG_FPGA_BASE| 0x00001801
#define CFG_OR3_PRELIM 0xFFFF8010
以上定義的為FPGA的地址設(shè)定,由MPC8247片選CS0相關(guān)的寄存器設(shè)定。
修改完成后,通過make得到u-boot.bin文件。
3.2 Linux內(nèi)核的移植
由于嵌入式系統(tǒng)存儲資源有限,精簡內(nèi)核就顯得尤為重要。建立系統(tǒng)的新內(nèi)核,最主要的工作就是配置內(nèi)核參數(shù)配置內(nèi)核文件,進(jìn)入內(nèi)核釋放的目錄下執(zhí)行命令:#make menuconfig會(huì)生成新的.config文件。然后執(zhí)行#make uImage,生成新的uImage,將生成的內(nèi)核拷貝到tf tp目錄下即可。
使用tftp將內(nèi)核鏡像文件下載到目標(biāo)板上,重新引導(dǎo)后,目標(biāo)板即可成功啟動(dòng)。
評論