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