wiki:802.11/Usage/SDK

Version 9 (modified by murphpo, 8 years ago) (diff)

--

Using the 802.11 Reference Design: SDK

The first step in modifying the 802.11 Reference Design software is creating a workspace in the Xilinx SDK and importing the reference software projects. The steps below describe how to create an SDK workspace containing the full software design.

Creating the SDK Workspace

  1. Ensure your Xilinx tools match the version used to create the reference design (see the download page for the current versions)
  2. Ensure your local copy of the WARP edk_user_repository is up to date and in the repository search path of XPS (see edk_user_repository for details)
  3. Download the 802.11 Reference Design archive and expand .zip archive
    • Be sure the expanded archive path has no spaces; C:/work/w3_802.11/ works, C:/Documents and Settings/user/w3_802.11/ does not
    • The text below uses <xps_proj>/ as a placeholder for the XPS Project inside the expanded archive's EDK_Projects folder
  4. Launch Xilinx SDK and select <xps_proj>/SDK_Workspace as the active workspace
  5. Select Xilinx Tools -> Repositories. In Local Repositories click New, then select <xps_proj>/ and click OK. Be sure to select the root of the XPS project (the folder containing system.mhs, not the SDK_Workspace folder.
  6. Import the SDK projects provided by the reference design
    1. Select File -> Import
    2. Expand General -> Existing Projects into Workspace, click Next
    3. Click Browse and navigate to <xps_proj>/SDK_Workspace
    4. 8 projects will be listed:
      wlan_bsp_cpu_high
      wlan_bsp_cpu_low
      wlan_mac_high_ap
      wlan_mac_high_ibss
      wlan_mac_high_sta
      wlan_mac_low_dcf
      wlan_mac_low_nomac
      Mango_802.11_RefDes_vX.Y_hw_platform  <- the version number in this project name will change between releases
      
    5. Ensure all 8 projects are checked and click Finish
    6. In the SDK Project Explorer:
      1. For each CPU High project listed below, right-click the project name, select Change Referenced BSP, in the new dialog select wlan_bsp_cpu_high, then click OK
        • wlan_mac_high_ap
        • wlan_mac_high_ibss
        • wlan_mac_high_sta
      2. For each CPU Low project listed below, right-click the project name, select Change Referenced BSP, in the new dialog select wlan_bsp_cpu_low, then click OK
        • wlan_mac_low_dcf
        • wlan_mac_low_nomac
      3. Right click on each software project and select Clean Project
  7. The 5 software applications (AP, STA, IBSS, DCF and NoMAC) should now build to completion. Click once on each project in the SDK Project Explorer tab and check the console for the message elfcheck passed

Once you've created the SDK workspace you can begin modifying the reference C code. By default the SDK will automatically compile a software project when any of its source files are modified and saved. Watch the SDK console tab for compiler warnings/errors.

Using the Modified Design

When the SDK has successfully compiled the software projects for CPU High and CPU Low, you can use the updated design in hardware.

The output of the XPS hardware implementation flow is a bitstream named system.bit. This bitstream contains the full hardware design. In this design the initial values of the memory blocks used for instruction/data are all zero.

The SDK's Program FPGA tool (under the Xilinx Tools menu) implements the process of updating the memory blocks in system.bit with the software binary (the .elf file) generated by the SDK compiler/linker. The output of this flow is a new bistream named download.bit, ready to download to the FPGA.

The Program FPGA tool requires selection of one software binary per processor in the design. You must select a valid .elf file per CPU. If you select the default bootloop, the corresponding processor will be configured with a "do nothing forever" application, leading to a boot failure of the 802.11 design.

The image below shows the .elf selections to use the IBSS application in CPU High and DCF MAC in CPU Low:

After selecting valid .elf files click Program. This will generate the file download.bit in <SDK_Workspace>/Mango_802.11_RefDes_vXXX_hw_platform/. If you have a JTAG cable attached to your PC the tool will also attempt configuring your FPGA with the updated design. If no JTAG cable or FPGA is found, the tool will report "Program FPGA Failed". The download.bit file is still updated in this case and can be used to configure the FPGA later (via iMPACT, ChipScope, SD cards, etc).

If you want to generate a .bin file for use on SD cards, find the updated download.bit file as described above and follow the usual SD card config flow.

Updating C Source Code

The Reference Design SDK Workspace uses software projects with "virtual" source code folders. These virtual folders refer to actual folders containing the source code files. This structure allows multiple software projects to share common source code without duplicating files.

As of release v1.5 all C source code is stored in the svn_src folder at the root of the SDK_Workspace folder. The 7 software projects use virtual folders to refer to the application, framework, and common code in the svn_src folder. Thus, if you modify a file shared by multiple projects (such as wlan_mac_low.h) all software projects referring to that file will be updated automatically.

The svn_src folder in the reference design archive is not an SVN working copy. This is intentional, in hopes of avoiding accidental updates from known-good code (from a ref design archive) and in-progress code (from svn). However the organization of the svn_src folder mirrors that of the C code in the SVN repository at /ReferenceDesigns/w3_802.11/c. This facilitates replacing the C code with a copy exported from a specific revision from the SVN repository.