博客首页 | 排行榜 |

pds123的博客

个人档案
博文分类
EDK工程中,IP兼容性问题处理方法  2010-05-09 13:29

EDK工具以及IP更新太快,IP的API经常会不兼容。

EDK的当前工程中system.mss文件如下:

#-------------------------------begin of system.mss-------------------------
 PARAMETER VERSION = 2.2.0
BEGIN OS
 PARAMETER OS_NAME = standalone
 PARAMETER OS_VER = 2.00.a
 PARAMETER PROC_INSTANCE = ppc440_0
 PARAMETER stdin = xps_uart_1
 PARAMETER stdout = xps_uart_1
END


BEGIN PROCESSOR
 PARAMETER DRIVER_NAME = cpu_ppc440
 PARAMETER DRIVER_VER = 1.01.a
 PARAMETER HW_INSTANCE = ppc440_0
 PARAMETER COMPILER = powerpc-eabi-gcc
 PARAMETER ARCHIVER = powerpc-eabi-ar
END


BEGIN DRIVER
 PARAMETER DRIVER_NAME = memcon
 PARAMETER DRIVER_VER = 1.00.a
 PARAMETER HW_INSTANCE = DDR2_SDRAM
END

BEGIN DRIVER
 PARAMETER DRIVER_NAME = generic
 PARAMETER DRIVER_VER = 1.00.a
 PARAMETER HW_INSTANCE = PCIe_Bridge
END

BEGIN DRIVER
 PARAMETER DRIVER_NAME = bram
 PARAMETER DRIVER_VER = 1.00.a
 PARAMETER HW_INSTANCE = xps_bram_if_cntlr_1
END

BEGIN DRIVER
 PARAMETER DRIVER_NAME = dmacentral
 PARAMETER DRIVER_VER = 1.12.a
 PARAMETER HW_INSTANCE = xps_central_dma_0
END

BEGIN DRIVER
 PARAMETER DRIVER_NAME = intc
 PARAMETER DRIVER_VER = 1.11.a
 PARAMETER HW_INSTANCE = xps_intc_0
END

BEGIN DRIVER
 PARAMETER DRIVER_NAME = uartlite
 PARAMETER DRIVER_VER = 1.14.a
 PARAMETER HW_INSTANCE = xps_uart_1
END

BEGIN DRIVER
 PARAMETER DRIVER_NAME = pcie
 PARAMETER DRIVER_VER = 1.00.a
 PARAMETER HW_INSTANCE = PCIe_Bridge
END
#-----------------------------the end of system.mss-------------------------------------

然而在software platform目录下的*.mss文件却和上述system.mss文件不一样。我的software platform下的*.mss文件时soft.mss。内容如下:

#-----------------------------the beginof soft.mss-------------------------------------


 PARAMETER VERSION = 2.2.0


BEGIN OS
 PARAMETER OS_NAME = standalone
 PARAMETER OS_VER = 2.00.a
 PARAMETER PROC_INSTANCE = ppc440_0
 PARAMETER stdin = xps_uart_1
 PARAMETER stdout = xps_uart_1
END


BEGIN PROCESSOR
 PARAMETER DRIVER_NAME = cpu_ppc440
 PARAMETER DRIVER_VER = 1.01.a
 PARAMETER HW_INSTANCE = ppc440_0
 PARAMETER COMPILER = powerpc-eabi-gcc
 PARAMETER ARCHIVER = powerpc-eabi-ar
END


BEGIN DRIVER
 PARAMETER DRIVER_NAME = memcon
 PARAMETER DRIVER_VER = 1.00.a
 PARAMETER HW_INSTANCE = DDR2_SDRAM
END

BEGIN DRIVER
 PARAMETER DRIVER_NAME = generic
 PARAMETER DRIVER_VER = 1.00.a
 PARAMETER HW_INSTANCE = PCIe_Bridge
END

BEGIN DRIVER
 PARAMETER DRIVER_NAME = bram
 PARAMETER DRIVER_VER = 1.00.a
 PARAMETER HW_INSTANCE = xps_bram_if_cntlr_1
END

BEGIN DRIVER
 PARAMETER DRIVER_NAME = dmacentral
 PARAMETER DRIVER_VER = 1.12.a
 PARAMETER HW_INSTANCE = xps_central_dma_0
END

BEGIN DRIVER
 PARAMETER DRIVER_NAME = intc
 PARAMETER DRIVER_VER = 1.11.a
 PARAMETER HW_INSTANCE = xps_intc_0
END

BEGIN DRIVER
 PARAMETER DRIVER_NAME = uartlite
 PARAMETER DRIVER_VER = 1.14.a
 PARAMETER HW_INSTANCE = xps_uart_1
END

#-----------------------------the end of soft.mss-------------------------------------
 

大家会发现soft.mss,要比system.mss的内容少很多。主要原因是在分析XPS中的IP时,发现用的不是最新的IP,所以没有将老的IP的模块描述加入到soft.mss中,所以会遇到老版本的程序编译会报错的问题。要解决这个问题,有两个办法。

1、一个是将工程目录下的PPC440(与cpu类型同名的文件)下的code、include、lib、libsrc拷贝到software platform的ppc440下。然后再次编译软件工程。(主意,是再第一次编译错误之后,再进行上述的覆盖操作,否则无效)。

2、另一个是,经过仔细看了software platform的makefile后发现的,每次都要检查soft.mss文件,所以我们可以直接编写*.mss文件,或者直接将system.mss拷贝到software platform目录下,并重命名为soft.mss。

上述两个方法都能够很容易解决IP不兼容的问题。

类别:默认 |
上一篇:xilinx SP605的PCIe接口在EDK中的使用方法--PCIE核的设置【北京工业大学 可信计算实验室 毛军捷】 | 下一篇:2010年4月25号、26号Spartan-6试用记录(北京工业大学 毛军捷)
以下网友评论只代表其个人观点,不代表本网站的观点或立场