element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • About Us
  • Community Hub
    Community Hub
    • What's New on element14
    • Feedback and Support
    • Benefits of Membership
    • Personal Blogs
    • Members Area
    • Achievement Levels
  • Learn
    Learn
    • Ask an Expert
    • eBooks
    • element14 presents
    • Learning Center
    • Tech Spotlight
    • STEM Academy
    • Webinars, Training and Events
    • Learning Groups
  • Technologies
    Technologies
    • 3D Printing
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Design Challenges
    • element14 presents Projects
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • Project Groups
  • Products
    Products
    • Arduino
    • Avnet Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • Store
    Store
    • Visit Your Store
    • Choose another store...
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
  • Settings
Path to Programmable 3
  • Challenges & Projects
  • Design Challenges
  • Path to Programmable 3
  • More
  • Cancel
Path to Programmable 3
Blog Blog 2 - Advancing through the Path to Programable 3 tutorials - (road clears a bit and more interesting activities are coming)
  • Blog
  • Forum
  • Documents
  • Leaderboard
  • Files
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Join Path to Programmable 3 to participate - click to join for free!
  • Share
  • More
  • Cancel
Group Actions
  • Group RSS
  • More
  • Cancel
Engagement
  • Author Author: ciorga
  • Date Created: 4 Jul 2023 10:41 PM Date Created
  • Views 413 views
  • Likes 8 likes
  • Comments 0 comments
  • Path to Programmable 3
  • minized
Related
Recommended

Blog 2 - Advancing through the Path to Programable 3 tutorials - (road clears a bit and more interesting activities are coming)

ciorga
ciorga
4 Jul 2023

This is my second blog post in a series that cover my experience going through the training courses of the Path to Programmable 3 challenge.  The first blog post, has covered the beginning of participating in this challenge and my learning experience from going through Lab0 to Lab 2.  Now I am starting Lab3. 

Lab3 was a little “boring” since it was mostly informative and did not create or run any project.  The main focus was on teaching how to generate a standalone BSP, which stands for board support package.  The BSP is a collection of libraries and drivers that make the lowest layer of the software application.

For me, with my limited knowledge of software, the instructions in Lab 3 were quite confusing.  I had two choices to go through this lab: Choice 1 was to fully understand every detail and concept, which required me to look for additional explanations on the Internet since the level of abstraction in the Lab instructions was above my level of understanding.  Choice 2 was to follow the Lab 3 steps without fully understanding the concepts only to get some kind of “rough” idea of what is going on.  I started with Choice 1 but gradually as going through the Lab instructions I ended up to switching to Choice 2

Experiment 1 started with creating a new folder for Lab 3 and coping the .xsa file from lab2 or from the solutions folder.  Next, the import to Eclipse Workspace or zip file did not work for me.  What I found in the folder was different than instructions and also there was no zip file in there.  Later in this training I figured out how to import a workspace, but that time on Lab3 the instructions were confusing and not detailed enough for me to be successful.  So I decided to work on Lab2 folder.

 image

The rest of Experiment 1 went smoothly as I could access the documentation, and I could reconfigure the UART stdin/stdout to ps7_uart_1.

 

 image

Experiment 2 has focused on exploring the newly generated BSP.  This part was fully informational, and it is good for a beginner like me to learn where to find information when needed.

I find the links in Vitis to drivers' documentation and for importing examples useful for developing projects.   

 

image 

That was pretty much all I have gained from Lab 3.

 

Lab 4 was a lot more interesting, as I started to build things by developing a new software application in Vitis.  The lab took me step by step to creating this new software application and through adding an example code for a “Hello World” application. 

 

At the time I went through the lab I was quite confused of the project structure in Vitis, confusion that got clarified later as I went through the successive labs 5 – 11.  One of the confusions I had was caused by not having a clear image of what “application project name” refers to compared to “system project mane”.  It looked like once I select a name for the application project that name is then automatically ported to system project and the word “_system” is automatically appended to the application project name.  I believe Lab 4 instructions could add a bit more details about this.

 image

The creation of the software application went through a few steps that also I would have liked to be more detailed in the Lab instructions.  Particularly I wanted to know why is each step necessary and how does it build the structure of the software application.  When there were multiple templates available, I would like to see a more detailed description of the templates to learn how to use them in future projects.

 

 image

I think the lab 4 instructions can benefit from a full revision.  Some of the wording in the instructions is far from the typical language used in teaching materials, like the example below:

 

 image

On the same topic, in Lab 4 at the “build the project” section there was no instruction on what to do if the step of building the software application fails.  The Lab instructions assumes that the application will build without error at all times.  Well, for me it didn’t build, and I would have liked to have some instructions on what to do if I get a build error.

image 

 

So I started to debug the error myself.  From the datalog it looks like there was something related to the “xparameters.h” file.  So I looked for that file but I didn’t see it in the examples folder:

 

image

Poking around I have found this comment about the xparameters.h file:  “The following constants map to the XPAR parameters created in the xprameters.h file.  They are defined here such that a user can easily change all the needed parameters in one place”. 

 

After some more effort for debugging this issue I decided to ask a question on Element 14 forum.  That was a great idea as in a short time I have received an answer with the solution to fixing this problem.  The forum on Element 14 is an awesome source of information and problem solving advice, and I would like to thank all participating members for your contributions.

 

image

And the reply that showed me how to solve the problem:

 

image

The project could be built then without errors:

 image

The rest of Lab 4 went on smoothly without any issue.  Following the instructions, I have created two software applications using the available templates, one for memory test and one for peripheral test.  In the end I also learned how to identify the application code size and how to modify the linker script to change the target memory location.

This concludes my experience working on Lab 4 and the second blog post in this series.  I will come back with additional blog posts as I advance more through the Path to Programmable 3 tutorials.  Until then, all best wishes to the readers and the rest of participants!

 

  • Sign in to reply
element14 Community

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2025 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

ICP 备案号 10220084.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube