Hello. I am trying to use one of the imported examples (xspi_intr_example.c) from within SDK (found link in system.mss in SDK). I want to use this "interrupt" example (I presume "intr" means "interrupt") to figure out how to use interrupts with MicroBlaze and SDK.
No Interrupt Port Externals
When I imported it, I got a compiler error regarding a missing header file: #include "xscugic.h". I found a copy of this file, and others linked to it (.c and .h files). Multiple copies with different versions are shown. I don't know which one to pick so I chose the set of files with the highest revision value shown.
However, when I manually enter this file it created more errors regarding missing files and undefined constants. I tried manually adding them in, but they created more of this problem.
It seems to me that I'm doing this incorrectly. This code was automatically generated, so I believe it messed up because my older Bitstream didn't have an "Interrupt" port setup (hence No Interrupt Port). I believe that we should never have to manually add these driver files; is this correct?
Added Interrupt Port Externals
So now I've I added "external" ports to the Interrupt signals on the MicroBlaze, but I honestly don't know what I'm doing here (please see attached). It validates ok, so I tried to generate a bitstream, but it failed. Below are the first 2 error messages. I do not understand the fine details of these messages, but it appears related to these Interrupt port externals that I just added. The error message indicates to alter the contents of a "tcl" file, which I find difficult without proper documentation showing how.
This design synthesized fine before these editions, so this error is limited to the interrupt pin I want to add.
Constraint File
I do not have the interrupt pin setup in my constraint file, so I think this is part of the problem (possibly the cause of the problem itself). Can someone shown me a sample Constraint file for an interrupt pin?
Interrupt Setup Example/Instructions in Vivado
Could someone please point out how to setup an interrupt within Vivado so that I can get this "xspi_intr_example.c" code working? I am not sure what Vivado wants to make the Interrupt work.
Thank you, Richard V
Vivado Error messages (with Interrupt ports as shown in PDF):
ERROR: [DRC 23-20] Rule violation (NSTD-1) Unspecified I/O Standard - 3 out of 52 logical ports use I/O standard (IOSTANDARD) value 'DEFAULT', instead of a user assigned specific value. This may cause I/O contention or incompatibility with the board power or connectivity affecting performance, signal integrity or in extreme cases cause damage to the device or the components to which it is connected. To correct this violation, specify all I/O standards. This design will fail to generate a bitstream unless all logical ports have a user specified I/O standard value defined. To allow bitstream creation with unspecified I/O standard values (not recommended), use this command: set_property SEVERITY {Warning} [get_drc_checks NSTD-1]. NOTE: When using the Vivado Runs infrastructure (e.g. launch_runs Tcl command), add this command to a .tcl file and add that file as a pre-hook for write_bitstream step for the implementation run. Problem ports: Interrupt_Ack_1[0:1], Interrupt_1.
ERROR: [DRC 23-20] Rule violation (UCIO-1) Unconstrained Logical Port - 3 out of 52 logical ports have no user assigned specific location constraint (LOC). This may cause I/O contention or incompatibility with the board power or connectivity affecting performance, signal integrity or in extreme cases cause damage to the device or the components to which it is connected. To correct this violation, specify all pin locations. This design will fail to generate a bitstream unless all logical ports have a user specified site LOC constraint defined. To allow bitstream creation with unspecified pin locations (not recommended), use this command: set_property SEVERITY {Warning} [get_drc_checks UCIO-1]. NOTE: When using the Vivado Runs infrastructure (e.g. launch_runs Tcl command), add this command to a .tcl file and add that file as a pre-hook for write_bitstream step for the implementation run. Problem ports: Interrupt_Ack_1[0:1], Interrupt_1.
Question
RichardV
Hello. I am trying to use one of the imported examples (xspi_intr_example.c) from within SDK (found link in system.mss in SDK). I want to use this "interrupt" example (I presume "intr" means "interrupt") to figure out how to use interrupts with MicroBlaze and SDK.
No Interrupt Port Externals
When I imported it, I got a compiler error regarding a missing header file: #include "xscugic.h". I found a copy of this file, and others linked to it (.c and .h files). Multiple copies with different versions are shown. I don't know which one to pick so I chose the set of files with the highest revision value shown.
However, when I manually enter this file it created more errors regarding missing files and undefined constants. I tried manually adding them in, but they created more of this problem.
It seems to me that I'm doing this incorrectly. This code was automatically generated, so I believe it messed up because my older Bitstream didn't have an "Interrupt" port setup (hence No Interrupt Port). I believe that we should never have to manually add these driver files; is this correct?
Added Interrupt Port Externals
So now I've I added "external" ports to the Interrupt signals on the MicroBlaze, but I honestly don't know what I'm doing here (please see attached). It validates ok, so I tried to generate a bitstream, but it failed. Below are the first 2 error messages. I do not understand the fine details of these messages, but it appears related to these Interrupt port externals that I just added. The error message indicates to alter the contents of a "tcl" file, which I find difficult without proper documentation showing how.
This design synthesized fine before these editions, so this error is limited to the interrupt pin I want to add.
Constraint File
I do not have the interrupt pin setup in my constraint file, so I think this is part of the problem (possibly the cause of the problem itself). Can someone shown me a sample Constraint file for an interrupt pin?
Interrupt Setup Example/Instructions in Vivado
Could someone please point out how to setup an interrupt within Vivado so that I can get this "xspi_intr_example.c" code working? I am not sure what Vivado wants to make the Interrupt work.
Thank you, Richard V
Vivado Error messages (with Interrupt ports as shown in PDF):
ERROR: [DRC 23-20] Rule violation (NSTD-1) Unspecified I/O Standard - 3 out of 52 logical ports use I/O standard (IOSTANDARD) value 'DEFAULT', instead of a user assigned specific value. This may cause I/O contention or incompatibility with the board power or connectivity affecting performance, signal integrity or in extreme cases cause damage to the device or the components to which it is connected. To correct this violation, specify all I/O standards. This design will fail to generate a bitstream unless all logical ports have a user specified I/O standard value defined. To allow bitstream creation with unspecified I/O standard values (not recommended), use this command: set_property SEVERITY {Warning} [get_drc_checks NSTD-1]. NOTE: When using the Vivado Runs infrastructure (e.g. launch_runs Tcl command), add this command to a .tcl file and add that file as a pre-hook for write_bitstream step for the implementation run. Problem ports: Interrupt_Ack_1[0:1], Interrupt_1.
ERROR: [DRC 23-20] Rule violation (UCIO-1) Unconstrained Logical Port - 3 out of 52 logical ports have no user assigned specific location constraint (LOC). This may cause I/O contention or incompatibility with the board power or connectivity affecting performance, signal integrity or in extreme cases cause damage to the device or the components to which it is connected. To correct this violation, specify all pin locations. This design will fail to generate a bitstream unless all logical ports have a user specified site LOC constraint defined. To allow bitstream creation with unspecified pin locations (not recommended), use this command: set_property SEVERITY {Warning} [get_drc_checks UCIO-1]. NOTE: When using the Vivado Runs infrastructure (e.g. launch_runs Tcl command), add this command to a .tcl file and add that file as a pre-hook for write_bitstream step for the implementation run. Problem ports: Interrupt_Ack_1[0:1], Interrupt_1.
design_spi_oled.pdf
Link to comment
Share on other sites
4 answers to this question
Recommended Posts
Archived
This topic is now archived and is closed to further replies.