08-07-2019 04:03 PM
I've finally gotten my petalinux image up and running on my pynq development board. I want to understand linux and the xilinx tools so I'm using petalinux not the larger software stack from the pynq team. I want to learn the fundamentals of zynq/linux and application development as an fpga guy so I'm trying to stick to these tools and tackle the fundamentals.
Now that I have a platform I wanted to ask for advice regarding approaches to developing applications. I want to develop a simple driver to blink IO leds on the board. These leds are connected to PL pins and accessed via a standard gpio block in the BD in vivado. This io block is called the axi io block. It also gets a peripheral address in the address editor tab in vivado.
My goal is to read and write to these gpio registers to blink the LEDs. Now that I have a serial port and an ssh connection with the zynq up and running I'm wondering what some of the best approaches to application and driver (.ko file I believe) development is.
1. What approaches are populare? Should I develop the code on the zynq and compile the .ko files on the zynq?
2. Should I use the xilinx sdk to develop my application code and drivers? If this an option do you connect to the zynq with the sdk while developing?
3. Is there documentation that walks through some examples of developing code for a zynq platform?
4. In general what are some of the best approaches to debugging applications like I'm trying to write?
Thanks for any guidance!
08-08-2019 07:41 AM
08-08-2019 05:14 PM
Thanks for the post. I've read through that and gleaned a little bit. I will just keep poking around trying things.
08-13-2019 01:44 PM
I do have another questions on this topic. I see that you can develop applications using the sdk over ssh and run/debug the applications on the zynq chip which is great. This seems to only apply to user space though. What if I want to write and compile a driver (kernal driver) to interface to say, my custom verilog IP core? What is a good approach to developing kernal drivers. Should they be developed off zynq on my workstation and uploaded to the zynq over and over while developing or should I add gcc and the required libraries etc... to my linux image and build/develop the kernel drivers on the actual zynq chip?
I hope that questions makes sense - basically what is the best approach to writing a linux driver.