9.1i EDK,FSL接口 – 在“xparameters.h”中未正确定义多个FSL外设实例-Altera-Intel社区-FPGA CPLD-ChipDebug

9.1i EDK,FSL接口 – 在“xparameters.h”中未正确定义多个FSL外设实例

问题描述

我有两个相同类型的FSL IP实例通过FSL连接到MicroBlaze,它们使用相同的软件接口驱动程序,但我只在“xparameters.h”文件中获得一组“定义”。

例如,有一个名为test的IP和两个名为test_0和test_1的实例连接到FSL接口0和1,但我只在“xparameters.h”文件中看到以下内容:

/ ******************* ***************** /

#define XPAR_FSL_TEST_0_OUTPUT_SLOT_ID 0

#define XPAR_FSL_TEST_0_INPUT_SLOT_ID 0

/ ******************* ***************** /

解决/修复方法

使用以下代码替换<edk_project> / drivers / <ip_name> / data / <ip_name> .tcl的内容:

proc生成{drv_handle} {

将“生成宏用于FSL外设访问…”

set iplist [xget_sw_iplist_for_driver $ drv_handle]

设置drv_name_handle [xget_sw_parameter_handle $ drv_handle“DRIVER_NAME”]

foreach ip_handle $ iplist {

set core_name [xget_value $ ip_handle“name”]

set file_name“xparameters.h”

set core_def_name [string toupper $ core_name]

把“核心名称:$ core_name”

if {[string compare -nocase“none”$ core_name]!= 0} {

设置conffile [xopen_include_file $ file_name]

设置mhs_handle [xget_handle $ ip_handle“parent”]

设置mfsl_name [xget_value $ ip_handle“BUS_INTERFACE”“MFSL”]

把“MFSL B:$ mfsl_name”

if {$ mfsl_name!=“”} {

把“MFSL $ mfsl_name”

set mfsl_slave [xget_hw_connected_busifs_handle $ mhs_handle $ mfsl_name“slave”]

设置mfsl_index [xget_value $ mfsl_slave“NAME”]

设置mfsl_index [string toupper $ mfsl_index]

set mfsl_index [string map {SFSL“”} $ mfsl_index]

put $ conffile“#define XPAR_FSL _ $ {core_def_name} _OUTPUT_SLOT_ID $ {mfsl_index}”

}

set sfsl_name [xget_value $ ip_handle“BUS_INTERFACE”“SFSL”]

if {$ sfsl_name!=“”} {

set sfsl_master [xget_hw_connected_busifs_handle $ mhs_handle $ sfsl_name“master”]

set sfsl_index [xget_value $ sfsl_master“NAME”]

set sfsl_index [string toupper $ sfsl_index]

set sfsl_index [string map {MFSL“”} $ sfsl_index]

put $ conffile“#define XPAR_FSL _ $ {core_def_name} _INPUT_SLOT_ID $ {sfsl_index}”

}

把$ conffile放入“”

投入$ conffile“/ ********************************************* ********************* /”

把$ conffile放入“”

关闭$ conffile

}

}

}

请登录后发表评论

    没有回复内容