EDK problem!

J

John T.

Guest
Please does anyone have experience with EDK 3.2 for embedded design?
I am trying to make my microblaze processor to be interrupted when I push a
certain input button. I can make Timer-interrupt work, but I cant make and
outside stimuli to interrupt the processor. Anyone know how to do this?
I have added a interrupt-controller to the opb bus, and set its irq to the
same net as the Microblaze Interrupt.

John
 
"John T." <john@dat.com> wrote in message news:<bj1l57$plr$1@news.net.uni-c.dk>...
Please does anyone have experience with EDK 3.2 for embedded design?
I am trying to make my microblaze processor to be interrupted when I push a
certain input button. I can make Timer-interrupt work, but I cant make and
outside stimuli to interrupt the processor. Anyone know how to do this?
I have added a interrupt-controller to the opb bus, and set its irq to the
same net as the Microblaze Interrupt.

John
simple external ints should work as well (as timer ints), well
connecting a push-button directly to int net probably isnt the best
idea, there will always be some bouncing :(

just a note: if you have multiple interrupt sources then you have to
assign to them all different names and write those names with "&"
concatenated in the edit core dialog - this was something that did
take long time for me to understand (until I found that is in the IP
core manual, not INTC pdf but general IP cores document).

just check that the int lines are connected in the system.vhd file and
that the interrupt handler procedures are assigned correctly, then
when you enable int it should come?

antti
http://www.graphord.com/forum
 
"Antti Lukats" <antti@case2000.com> skrev i en meddelelse
news:80a3aea5.0309020440.3a8e4a23@posting.google.com...
"John T." <john@dat.com> wrote in message
news:<bj1l57$plr$1@news.net.uni-c.dk>...
Please does anyone have experience with EDK 3.2 for embedded design?
I am trying to make my microblaze processor to be interrupted when I
push a
certain input button. I can make Timer-interrupt work, but I cant make
and
outside stimuli to interrupt the processor. Anyone know how to do this?
I have added a interrupt-controller to the opb bus, and set its irq to
the
same net as the Microblaze Interrupt.

John

simple external ints should work as well (as timer ints), well
connecting a push-button directly to int net probably isnt the best
idea, there will always be some bouncing :(

just a note: if you have multiple interrupt sources then you have to
assign to them all different names and write those names with "&"
concatenated in the edit core dialog - this was something that did
take long time for me to understand (until I found that is in the IP
core manual, not INTC pdf but general IP cores document).

just check that the int lines are connected in the system.vhd file and
that the interrupt handler procedures are assigned correctly, then
when you enable int it should come?

antti
http://www.graphord.com/forum
Thanx for the reply. My question is more likely: Where, in what menu do you
set an external input to be an interrupt source??? Where do you declare the
name of the interrupt function??? With a timer you can do that by
right-clicking the timer and chose a name for the "timer interrupt handler
function".

Beset Regards
John
 
antti@case2000.com (Antti Lukats) wrote in message news:<80a3aea5.0309030231.1a98e839@posting.google.com>...
Thanx for the reply. My question is more likely: Where, in what menu do you
set an external input to be an interrupt source??? Where do you declare the
name of the interrupt function??? With a timer you can do that by
right-clicking the timer and chose a name for the "timer interrupt handler
function".

uups, I didnt think
"I usually don't (think), and my wife says its total disaster when I do"
;)

I am afraid to get the int line out you need to define a real dummy
peripheral that simple routes the pin to interrupt controller.
then add this peripheral component, place the ports and connect.
in the vhdl of the component you only have one wire-connection

I should think sometimes sorry, you are right if there is no component
driving interrupt you can not assign int handler either

antti
Hi,
To set an external interrupt to be an interrupt source, there is no
mechanism available in the GUI currently. But, you could add the
following line to the MSS file after the version is declared :

PARAMETER VERSION = 2.0.0
PARAMETER HW_SPEC_FILE = system.mhs
PARAMETER INT_HANDLER = myint_handler, INT_PORT = myint_pin

This will configure microblaze to call "myint_handler" whenever the
external interrupt "myint_pin" interrupts microblaze. Also, this is
assuming that "myint_pin" is directly connected to the interrupt port
of microblaze without an interrupt controller.

Hope this helps
Sathya
 
"Sathya Thammanur" <sathyatm@yahoo.com> wrote in message
news:5ca58e96.0309040934.4be7d638@posting.google.com...
antti@case2000.com (Antti Lukats) wrote in message
news:<80a3aea5.0309030231.1a98e839@posting.google.com>...
Thanx for the reply. My question is more likely: Where, in what menu
do you
set an external input to be an interrupt source??? Where do you
declare the
name of the interrupt function??? With a timer you can do that by
right-clicking the timer and chose a name for the "timer interrupt
handler
function".

uups, I didnt think
"I usually don't (think), and my wife says its total disaster when I do"
;)

I am afraid to get the int line out you need to define a real dummy
peripheral that simple routes the pin to interrupt controller.
then add this peripheral component, place the ports and connect.
in the vhdl of the component you only have one wire-connection

I should think sometimes sorry, you are right if there is no component
driving interrupt you can not assign int handler either

antti

Hi,
To set an external interrupt to be an interrupt source, there is no
mechanism available in the GUI currently. But, you could add the
following line to the MSS file after the version is declared :

PARAMETER VERSION = 2.0.0
PARAMETER HW_SPEC_FILE = system.mhs
PARAMETER INT_HANDLER = myint_handler, INT_PORT = myint_pin

This will configure microblaze to call "myint_handler" whenever the
external interrupt "myint_pin" interrupts microblaze. Also, this is
assuming that "myint_pin" is directly connected to the interrupt port
of microblaze without an interrupt controller.

Hope this helps
Sathya
Thank you all. That helped me some, but I am still getting CRAZY!!!
Whenever I change something and tries to redraw the PBD window it just
change my changes back to the original and nothing happens!!! Could I
somehow switch this feature off in the EDK?

John
 
[snip]
Thank you all. That helped me some, but I am still getting CRAZY!!!
Whenever I change something and tries to redraw the PBD window it just
change my changes back to the original and nothing happens!!! Could I
somehow switch this feature off in the EDK?

John

John,

If you've got EDK 3.2 sp2 then you can turn this feature off by going to
"Options -> Preferences" then selecting the top button "Redraw schematic
layout to synchronize changes." The .pbd will still come up when you
open the project but I typically just close it and don't save changes.

Best regards,
Ryan Laity
Xilinx Applications
 
Thank you all. That helped me some, but I am still getting CRAZY!!!
Whenever I change something and tries to redraw the PBD window it just
change my changes back to the original and nothing happens!!! Could I
somehow switch this feature off in the EDK?
I found the PBD 200% useless, so doing all modifications in add/edit cores
dialog. After closing it I always say 'regenerate' it will redraw PBD
then I close PBD and say overwrite MHS

it works that way but agree is ANNOYING, no idea how to disable that
PBD update ...

antti
http:/www.graphprd.com/forum
 
EDK 3.2 did have synchronization problems. They have been solved in the
EDK 6.1i release
which should be out in about a month.

Steve

Antti Lukats wrote:

Thank you all. That helped me some, but I am still getting CRAZY!!!
Whenever I change something and tries to redraw the PBD window it just
change my changes back to the original and nothing happens!!! Could I
somehow switch this feature off in the EDK?



I found the PBD 200% useless, so doing all modifications in add/edit cores
dialog. After closing it I always say 'regenerate' it will redraw PBD
then I close PBD and say overwrite MHS

it works that way but agree is ANNOYING, no idea how to disable that
PBD update ...

antti
http:/www.graphprd.com/forum
 
John T. wrote:
Thanx for the reply. My question is more likely: Where, in what menu do you
set an external input to be an interrupt source??? Where do you declare the
name of the interrupt function??? With a timer you can do that by
right-clicking the timer and chose a name for the "timer interrupt handler
function".
In XPS you can open the system port properties dialog (rightclick on the
system overview and select Object properties). In this dialog you can
specify the class of an input signal I/O (empty), Clock or Interrupt.
When you select interrupt, you can add it to the Intr port of the
interrupt controller.

If you want to debounce the switch first, you probably have to write
your own peripheral. In that case you can indicate that the output port
of this peripheral is of Interrupt type.

Regards,

Rienk
 
Thanx for the reply. My question is more likely: Where, in what menu do you
set an external input to be an interrupt source??? Where do you declare the
name of the interrupt function??? With a timer you can do that by
right-clicking the timer and chose a name for the "timer interrupt handler
function".
uups, I didnt think
"I usually don't (think), and my wife says its total disaster when I do"
;)

I am afraid to get the int line out you need to define a real dummy
peripheral that simple routes the pin to interrupt controller.
then add this peripheral component, place the ports and connect.
in the vhdl of the component you only have one wire-connection

I should think sometimes sorry, you are right if there is no component
driving interrupt you can not assign int handler either

antti
 

Welcome to EDABoard.com

Sponsor

Back
Top