Jump to content
  • 0

Stuck in SDK


Kris Persyn

Question

6 answers to this question

Recommended Posts

Hi Kris,

Based on info you provided it could be many different things. For example, why are you using uart_rtl instead of UART1 or UART0? This could be a configurattion issue. Using interrupts for buttons is another tricky part which requires proper configuration not described in your post.

I would start with known path and upgrade gradually. In the past I tested the original Zybo with a trivial button-LED project and attached three files related to it. Try it if you want. The project requires Zybo board file and AXI configuration. SDK UART console is used for xil_printf.

Goo luck!

 

BTN_LED_DB.jpg

BTN_LED_c.txt Filter_vhd.txt

Link to comment
Share on other sites

Hi @Notarobot ,

 

Thanks for your reply. This is a 'known path' to me. I've used this template during schoolprojects on a zybo z7-10. Configuration of interrupts on hardware level is done by activating fabric interrupts. On software level I use ScuGicInterrupt_Init to correctly map them to a certain IR routine function.

3 hours ago, Notarobot said:

For example, why are you using uart_rtl instead of UART1 or UART0

I'm not sure what you are trying to point out with this.

ir1.PNG

ir2.PNG

ir3.PNG

Link to comment
Share on other sites

Hi, Kris,

I noticed uart_rtl line on your diagram and assumed that it was for xil_printf. It is easier to use standard UART connected to MIO which doesn't need PL blocks.

I recommend to search Avnet.com or Zedboard.org for Introduction to Zynq Lab 6 called "Adding Interrupts from the Custom PL Peripheral".  Also try to set Integrated Logic Analyzer (ILA). It is extremely useful to debigging.

 

Link to comment
Share on other sites

Kris,

Printing via xil_print is using STDIO by default and could reconfigured in Vivado and SDK. With little info you provided a lot left for guessing.

My last recommendation is to pay attention to a configuration of your build in SDK. The interrupt interrupt service routine (ISR) might not work if GCC compiler has optimization ON. To make it work the variable in the ISR should be declared volatile. Debug build usually has flag -O0 that optimization none.

Good luck!

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...