I am really far behind with the blog writing for this course so I have summarised all the software labs into one blog. I have also completed the hardware labs so will try and a similar blog post for them out over the next couple of days...before we all run away to enjoy the festivities!
Overview of the SW Training
The SW training consisted of 11 labs, the labs covered the following:
Lab 1:
• Describes the (HDF) Hardware Definition File, explains what files it contains of and provides a brief description of what each file does
Lab 2:.
• Provides an initial introduction into Xilinx SDK
• Shows how to import the Hardware Platform
• Shows how to navigate around the hardware platform files
Lab 3:
• Teaches the user about the Board Support Package (BSP)
• Shows how to generate a BSP
• Shows how to navigate around the BSP files
• Shows how to navigate the libraries included in the BSP
Lab 4:
• Teaches the user about applications in SDK
• Shows how to create an application
• Shows how to navigate around the application files
• Shows how to import examples for the libraries being used
• Shows how the targeted memory can be changed using the linker script
Lab 5:
• Describes how to run and debug an application on hardware
• Shows how to run an application on the hardware
• Shows how to debug an application using breakpoints
Lab 6:
• Describes how to initialize the Processing System Unit (PSU) and the Platform Management Unit (PMU)
• Shows how to generate a First Stage Bootloader (FSBL) to initialize the PSU
• Shows how to adjust the compiler options
• Shows how to initialize the Platform Management Unit (PMU)
Lab 7:
• Teaches the user how to boot the hardware from an SD Card.
• Shows how to generate a boot image for a SD Card.
• Shows how to run the application from the SD Card.
Lab 8:
• Describes how to import and export projects between computers.
• Shows how to archive a project.
• Shows how to import a project.
Lab 9:
• Describes how to add an interrupt to an applications
• Provides the user with an application without an interrupt
• Talks the user through adding an interrupt to the code.
Lab 10:
• Teaches the user about using libraries
• Shows the user how to enable a library in the BSP.
• Gives the user an application using the library to run.
Lab 11:
• Teaches the user about using SPI to communicate with an external sensor.
• Shows how to create an application to talk to the LSM6DSL Click (A Click Mezzanine).
• Shows the user how to run the application on the hardware.
Issues found during the Software Labs
System hanging in Lab 7
I found that the system hung when I ran the Test_Peripherals application when booting from the SD Card. I ran the application multiple times and the hang always occurred during the psu_csudma test, the serial output is shown below.SD Card data in Lab 10
In Lab 10 we wrote temperature data to the SD Card. My application appeared to be running correctly, the data printed to the terminal was sensible and after I had stopped the application and checked the SD Card the XADC.CSV file was there.
However the data actually stored in the XADC.CSV file made no sense to me at all. I have included a couple of screenshots of it below:
I tried looking at the data on both Windows and Linux machines to ensure it wasn’t some form of incompatibility between them as well as re-running the application using a different SD Card, the outcome was the same.
Did anyone else encounter these issues? Did anyone manage to resolve them? I definitely get the feeling with this one I’m missing something obvious!
Thoughts on the Software Modules
I felt this set of training modules was very much based around teaching the user how to use the Xilinx SDK. As SDK is based on Eclipse this means anyone already familiar with Eclipse will probably find most of the modules fairly slow, however it still provides a very helpful introduction to the additional features added by Xilinx. It also appears ideal for anyone not familiar with Eclipse.
The Lab instructions were consistently very clear and easy to follow, just make sure you continue to think about what you are doing and don’t end up mindlessly following the instructions!
My favorite parts of this training were:
• Booting from the SD Card, there is just something satisfying about running applications by just powering the hardware!
• Adding the interrupts to the application in Lab 9. I felt it was the only time in the training we actually got to play with some code.