• 0
johnnyO

missing xgio.h (again)

Question

This seems to be a really old "issue"... but i've run into the "missing' xgpio.h"  as well.... im using both sdk 2018.3 and Vivado 2018.3; it's a new/current install.  "Re-synching" doesn't seem to relove the problem... i've tried launching SDK from both inside and outside Vivado as well.... I've "regenerated" bit streams and "exported to hardware" until my eyeballs are falling out.  It's just not in the BSP.  As someone mentioned in an earlier post,  it seems that a library is "missing". 

 

If someone had a difinitive answer/thourht to the problem it would be much appreciated.  This problem seem to keep cropping up.

thanks.

JohnnyO

Share this post


Link to post
Share on other sites

8 answers to this question

Recommended Posts

  • 0

Hi @johnnyO,

Here is an older tutorial using the digilent board files and the on-board SW's, BTN's and LED's that should still work for the Zybo. Did you follow this tutorial for the board files? Could you regenerate the layout and attach a screen shot that shows the pins being used on the Zynq and Gpio IP.

thank you,

Jon

Share this post


Link to post
Share on other sites
  • 0

just got finished running the "older" tutorial with the "older" board files... no difference.  I have xgpiops.h, but not xgpio.h, in the BSP.  I'm attaching the IP diagram of the "older" tutorial... basically the same, but no intereupts.  any ideas/thoughts would be much appreciated.  

Thanks Mon... any help appreciated.

image.thumb.png.f8bcec2c5c55cdcda9e4036c593b97cd.pngimage.thumb.png.4dc3de349bb752d4bd21ef3c6728f331.png

Share this post


Link to post
Share on other sites
  • 0

i'm working the "problem" this morning... gettiing back engaged.

I've run the old tutorial with no difference.  the source code is still looking for xgpio.h.  From what i'm reading,k both .h files are necessary for the so the PL can communicate with the PS.

I'm also noticing that the board_files directory contains multiple zybo's.  Any ideas on which one to use ???

I have not run the install tcl  install procedure.  But will this morning.

thanks.

john

Share this post


Link to post
Share on other sites
  • 0

Hi @johnnyO,

Digilent has multiple versions of the Zybo. If you have one hdmi port and a VGA port then you have the original Zybo here. You should then select the Zybo in the board files when creating a project. If you have multiple hdmi ports and no VGA port then you have a Zybo-Z7 here. You should then select either the Zybo-Z7-20 or the Zybo-Z7-10 based on the version you have when you are creating a project. Here is a forum thread that discusses not having the GPIO library in the BSP and general ways to fix that issue.

thank you,

Jon

Share this post


Link to post
Share on other sites
  • 0

I too have hit this rather common problem, which I suspect many of us first time Zynq users run into.

The example project for using an axi_gpio block worked fine, the first time. It was only after further experiments with Vivado/SDK/Zynq that I ran into other newbie issues and in frustration did a fair amount of 'delete and start over' debugging.

Eventually I got into a state where xgpio.h was no longer visible in my SDK project even though it had been earlier. I could see xgpiops.h but don't go down that rabbit hole - that's for the gpio module connected directly to the PS world.

When you run File->New->Application Project from the SDK,  the GUI has a tab for “Target Hardware - Hardware Platform”, and there’s a pulldown menu from which to select from all of the platforms in your directory structure. If you’re lucky, the tool will have auto-filled this with the correct platform, which will be something like “projectname_wrapper_hw_platform_0”. That’s the platform exported from Vivado that has your axi_gpio in it.

Go in to the SDK app and in the Project Explorer list find the board support package directory for your project (likely called projectname_bsp), right click and select Board Support Package Settings.  It will pop up a screen that shows you the Target Hardware – Hardware Specification path. It should be pointing to your projectname_wrapper_hw_platform_0\system.hdf file.

But if, like me, you’ve hosed things up, it may very well be pointing to some other platform, like one for the Zedboard or whatever. If that’s the case, Re-generate BSP Source isn’t going to help you because you’re generating the wrong BSP that doesn’t contain an axi_gpio entity so doesn’t create the associated files.

I could find no way to retroactively change the  _bsp directory to point to the right file, and the problem was baked into the original SDK project so deleting _bsp/ and re-creating didn’t work. The only solution was to delete the original project too and go all the way back to File->New->Application Project and just make sure this time that the proper _wrapper_hw_platform was selected for the Target Hardware. Now when you re-generate BSP files it will generate the axi_gpio driver files you need.

Hope this helps at least one other person and earns me 50 karma points.

 

 

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now