Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
reference:zmod:zmodbaselibraryuserguide [2020/01/16 14:09]
Ana-Maria-Eliza Balas [2.2.2. Linux project demonstration]
reference:zmod:zmodbaselibraryuserguide [2020/01/20 18:35] (current)
Arthur Brown
Line 25: Line 25:
     * Communication with IP cores specific to each particular Zmod (see [[#​ip_core_related_functionality|IP Core Related Functionality]])\\ ​     * Communication with IP cores specific to each particular Zmod (see [[#​ip_core_related_functionality|IP Core Related Functionality]])\\ ​
 The Zmod Base Library implementation consists of a CPP class called [[#​zmod_class|ZMOD Class]] which is the base class for inherited classes used for each particular Zmod.\\ Also, the Zmod Base Library implementation contains two separate folders: Linux and baremetal. They implement the [[#​platform_abstraction_layer|Platform Abstraction Layer]]. The Zmod Base Library implementation consists of a CPP class called [[#​zmod_class|ZMOD Class]] which is the base class for inherited classes used for each particular Zmod.\\ Also, the Zmod Base Library implementation contains two separate folders: Linux and baremetal. They implement the [[#​platform_abstraction_layer|Platform Abstraction Layer]].
-\\ + 
 For details on the Zmod specific libraries see the following documents: For details on the Zmod specific libraries see the following documents:
   * [[:​reference:​zmod:​zmodadc:​zmodadc1410libraryuserguide|]] ​   * [[:​reference:​zmod:​zmodadc:​zmodadc1410libraryuserguide|]] ​
   * [[:​reference:​zmod:​zmoddac:​zmoddac1411libraryuserguide|]]   * [[:​reference:​zmod:​zmoddac:​zmoddac1411libraryuserguide|]]
 +
 +For details on the Zmod API, see the following document:
 +  * [[https://​digilent.s3-us-west-2.amazonaws.com/​Software/​Zmod_Documentation/​v2019.1-1/​index.html|Zmod Library API Documentation]]
  
 ---- ----
Line 76: Line 80:
   * Download the project demo with the below command:   * Download the project demo with the below command:
  
-<​code>​git clone --recursive ​git@github.com:Digilent/​Eclypse-Z7-SW.git -b zmod_adc_dac/​master</​code>​+<​code>​git clone --recursive ​https://github.com/Digilent/​Eclypse-Z7-SW.git -b zmod_adc_dac/​master</​code>​
    
 NOTE: If you choose to download the repository as ZIP, the folder **zmodlib** will not be populated and you will have to populate it manually. NOTE: If you choose to download the repository as ZIP, the folder **zmodlib** will not be populated and you will have to populate it manually.
Line 165: Line 169:
 ---- ----
 ==== 2.2.2. Linux project demonstration ==== ==== 2.2.2. Linux project demonstration ====
-For the Linux project demo, the operating system of the PC must be a Linux distro with Xilinx Vivado 2019.1 installed. \\+/* For the Linux project demo, the operating system of the PC must be a Linux distro with Xilinx Vivado 2019.1 installed. \\ */
 The ZmodADC1410_Demo_Linux and ZmodDAC1411_Demo_Linux are run from Xilinx SDK.\\ The ZmodADC1410_Demo_Linux and ZmodDAC1411_Demo_Linux are run from Xilinx SDK.\\
 +This step by step tutorial roughly follows the [[https://​xilinx-wiki.atlassian.net/​wiki/​spaces/​A/​pages/​18841623/​How+to+debug+Linux+Application+in+SDK+2019.1|How to debug Linux Application in SDK 2019.1]] by Xilinx, with some changes due to our Debian 10 rootfs. \\
 On the development board with the attached Zmod(s) the user must use the following Linux image: On the development board with the attached Zmod(s) the user must use the following Linux image:
    * [[https://​github.com/​Digilent/​Eclypse-Z7/​releases|Eclypse Z7 image]]    * [[https://​github.com/​Digilent/​Eclypse-Z7/​releases|Eclypse Z7 image]]
  
-<WRAP center round important ​60%> +<WRAP center round important ​70%> 
-Please follow the steps **2.2.1.1** ​to **2.2.1.3** in order to get the SDK workspace up and running.+Please follow the steps **2.2.1.1** ​through ​**2.2.1.3** in order to get the SDK workspace up and running. 
 +</​WRAP>​ 
 +<WRAP center round important 80%>
 The following steps are for the **Eclypse Z7** board. The following steps are for the **Eclypse Z7** board.
 +If a Zmod ADC is used, it should be attached to the Eclypse Z7's ZMOD A port. If a Zmod DAC is used, it should be attached to the Eclypse Z7's ZMOD B port.
 </​WRAP>​ </​WRAP>​
  
 === 2.2.2.1. Download the SD card image === === 2.2.2.1. Download the SD card image ===
-    *  Download the latest eclypse-debian-buster-armhf-rfs.img_X.X.zip image from [[https://​github.com/​Digilent/​Eclypse-Z7/​releases|here]] and extract it on your PC +    *  Download the latest eclypse-debian-buster-armhf-rfs.img_X.X.zip image from the Eclypse Z7 git repository'​s ​[[https://​github.com/​Digilent/​Eclypse-Z7/​releases|Releases]] page and extract it on your PC. 
-      * You need to expand the Assets section to see the files +      * You need to expand the Assets section to see the files. 
-    * Write the image to an SD card +    * Write the image to an SD card: 
-      * Linux: in a terminal window use the following command <​code>​dd if=/​path/​to/​extracted/​image/​eclypse-debian-buster-armhf-rfs.img of=/​dev/​(sdX or mmcblkX} ​ && sync</​code>​ +      * Linux: in a terminal window use the following command<​code>​dd if=/​path/​to/​extracted/​image/​eclypse-debian-buster-armhf-rfs.img of=/​dev/​(sdX or mmcblkX} ​ && sync</​code>​ 
-      * Windows: use [[https://​rufus.ie/​|Rufus]] or [[https://​sourceforge.net/​projects/​win32diskimager/​|Win32DiskImager]] +      * Windows: use [[https://​rufus.ie/​|Rufus]] or [[https://​sourceforge.net/​projects/​win32diskimager/​|Win32DiskImager]]. 
-    * Connect the board to your ethernet ​network +    * Connect the board to your Ethernet ​network. 
-    * Insert the SD card and boot  the board. On first boot, the rootfs partition will resize to fill the SD card then reboot. +    * Insert the SD card and boot the board. On first boot, the rootfs partition will resize to fill the SD card then reboot. 
-    * Open a Terminal and connect to the board via UART interface ​+    * Open a Terminal and connect to the board via its USB-UART interface ​(labeled PROG).  
 +    * Login with username: //eclypse// and password: //​eclypse//​.
  
 ---- ----
  
 <WRAP GROUP> <WRAP COLUMN HALF> <WRAP GROUP> <WRAP COLUMN HALF>
-=== 2.2.2.2. Add SYSROOT Environment Variable in the SDK ==== +=== 2.2.2.2. Add SYSROOT Environment Variable in SDK ==== 
-    *  Download the latest eclypse-debian-buster-armhf-sysroot_X.X.tar.gz sysroot from [[https://​github.com/​Digilent/​Eclypse-Z7/​releases|here]] and extract it on your PC (the location of the extracted folder will be later used as path for SYSROOT Environment Variable) +    *  Download the latest eclypse-debian-buster-armhf-sysroot_X.X.tar.gz sysroot from the Eclypse Z7 git repository'​s ​[[https://​github.com/​Digilent/​Eclypse-Z7/​releases|Releases]] page and extract it on your PC (the location of the extracted folder will be later used as the path for the SYSROOT Environment Variable) 
-**Note: You need to expand the Assets section from github to see the eclypse-debian-buster-armhf-sysroot_X.X.tar.gz file.** +**Note:** //You need to expand the Assets section from github to see the eclypse-debian-buster-armhf-sysroot_X.X.tar.gz file.// 
-    * In the SDK Project Explorer, right click on the application project you wish to run, then select ​“C/C++ Build Settings” +    * In the SDK Project Explorer, right click on the application project you wish to run, then click “C/C++ Build Settings” 
-    * In the “C/C++ Build” group, select “Environment” category +    * In the “C/C++ Build” group, select ​the “Environment” category 
-    * Add SYSROOT variable pointing to the location where eclypse-debian-buster-armhf-sysroot rootfs folder can be found. For example “/​home/​cosmin/​Documents/​eclypse-debian-buster-armhf-sysroot”+    * Add the SYSROOT variable pointing to the location where eclypse-debian-buster-armhf-sysroot rootfs folder can be found. For example “/​home/​cosmin/​Documents/​eclypse-debian-buster-armhf-sysroot”
     * Click on Ok and wait for the Project to build     * Click on Ok and wait for the Project to build
  
Line 204: Line 213:
 <WRAP GROUP> <WRAP COLUMN HALF> <WRAP GROUP> <WRAP COLUMN HALF>
 === 2.2.2.3. Find the Board IP address ==== === 2.2.2.3. Find the Board IP address ====
-    * In the UART Terminal ​of the board login with the username/​password eclypse:​eclypse  +    * In the UART Terminal ​connected to the board, log in with the username/​password ​combination ​eclypse:​eclypse  
-    * Run the command+    * Run the following ​command:
 <​code>​ip a</​code>​ <​code>​ip a</​code>​
     * Copy the IP address of the board, example 10.0.0.168     * Copy the IP address of the board, example 10.0.0.168
Line 218: Line 227:
 === 2.2.2.4. Establishing connection to the board ==== === 2.2.2.4. Establishing connection to the board ====
     * In the SDK Target Connections panel, open the Linux TCF Agent folder     * In the SDK Target Connections panel, open the Linux TCF Agent folder
-    * Right click on Linux Agent [default] and hit Edit +    * Right click on Linux Agent [default] and click Edit 
-    * Write the board IP address ​in to the Host section+    * Enter the board IP address ​into the Host section
     * Click Test Connection to make sure that SDK can communicate with the TCF-agent on the board     * Click Test Connection to make sure that SDK can communicate with the TCF-agent on the board
     * Click OK     * Click OK
Line 232: Line 241:
 === 2.2.1.5. Run the demo project === === 2.2.1.5. Run the demo project ===
  
-    * Run the demo applicationright-click on Project name -> Run as -> Launch on Hardware(System Debugger)+    * To run the demo applicationright-click on Project name -> Run as -> Launch on Hardware(System Debugger)
  
 </​WRAP>​ <WRAP COLUMN HALF> </​WRAP>​ <WRAP COLUMN HALF>