基于FPGA片上PowerPC在VxWorks下的千兆網(wǎng)通信
而在嵌入式系統(tǒng)設(shè)計(jì)中,BSP的開發(fā)是一項(xiàng)非常復(fù)雜而繁瑣的工作 ,Xilinx公司提供的EDK套件,可以在很大程度上減輕開發(fā)者的工作。EDK中的BSP生成器(BSPgen)可以根據(jù)不同的微處理器、外設(shè)和RTOS組合自動(dòng)產(chǎn)生用戶可裁剪的BSP。它包含了系統(tǒng)所必需的支持軟件,包括Boot代碼、設(shè)備驅(qū)動(dòng)和RTOS的初始化。利用BSPgen可以把Xilinx器件驅(qū)動(dòng)打包到BSP的子目錄下,并且把Xilinx器件驅(qū)動(dòng)與VxWorks及其Tornado集成開發(fā)環(huán)境無(wú)縫集成,充分減少開發(fā)周期。
但是,BSPgen生成的BSP只是一個(gè)固定的BSP模板,并不能正確的反應(yīng)RAM/ROM的存儲(chǔ)器映射,不支持用戶通過(guò)BSPgen流程自定義的核/驅(qū)動(dòng)等。因此還需要對(duì)BSPgen產(chǎn)生的BSP進(jìn)行修改裁剪。
對(duì)于BSP開發(fā)人員來(lái)講,借助EDK的BSPgen,還必要做以下幾項(xiàng)工作:
1)修改config.h 和Makefile中的RAM,ROM地址及串口速率
2)修改sysSerial.c,對(duì)串口進(jìn)行正確的設(shè)置
3)增加不能與VxWorks無(wú)縫集成的器件的驅(qū)動(dòng)文件
4)配置sysNet.c中的以太網(wǎng)參數(shù),設(shè)置MAC地址
5)根據(jù)EDK中的配置,禁止或使能Cache
6)修改sysLib.c,以顯示正確的信息
7)設(shè)置主機(jī)IP地址
經(jīng)過(guò)以上修改之后,將新的BSP放在Tornado的安裝目錄Tornado_roottargetconfig下,根據(jù)這個(gè)BSP,在Tornado集成環(huán)境下生成一個(gè)新的VxWorks工程,然后就可以進(jìn)行一般的嵌入式操作系統(tǒng)開發(fā)了。
EDK中RAM和ROM的地址映射如下表所示:
表一 RAM/ROM地址映射
根據(jù)表一修改 makefile 和config.h里的地址。sysNet.c 中通過(guò)以下語(yǔ)句定義了網(wǎng)絡(luò)的MAC地址,必須根據(jù)真實(shí)的MAC地址進(jìn)行修改,如本文的MAC地址:00:0A:35:01:88:25
static char XEmacMacAddr0[6] = { 0x6, 0x5, 0x4, 0x3, 0x2, 0x1 }; //修改前
static char XEmacMacAddr0[6] = { 0x00, 0x0A, 0x35, 0x01, 0x88, 0x25 }; //修改后
sysSerial.c對(duì)串口進(jìn)行初始化,因經(jīng)要正確的指定串口ID,sysLib.c中可以顯示vxWorks鏡像的信息,因此也要進(jìn)行相應(yīng)的修改。
通過(guò)對(duì)EDK下生成的BSP的修改,并在Tornado集成環(huán)境下生成正確的VxWorks鏡像后,可以將其下載到FPGA中。觀察串口的輸出是否正確,可以進(jìn)行相應(yīng)的調(diào)試工作,以確定BSP的移植是正確的。
評(píng)論