You copied the Doc URL to your clipboard.

Generating the Arty A7 board support package

Before compiling the example software design that you are provided, a Board Support Package (BSP) is created using the Vivado Software Development Kit (SDK). The example software design includes files and directories that the BSP creates.

To generate a Cortex®‑M1 BSP for the Arty Artix 7 (A7) board:


  1. Open Vivado.
  2. Open the design found in V:/hardware/m1_for_arty_a7/m1_for_arty_a7/m1_for_arty_a7.xpr.
  3. If the original design has been modified, including changing the address map, then proceed and follow steps 4 and 5. If the hardware design is unchanged, proceed to step 6.
  4. Select Generate Block Diagram from the left-hand side pane and then select Generate. This directs Vivado to generate the file required files for synthesis, implementation, and simulation for the block diagram.
  5. Select File → Export Hardware. Set the Exported location to V:/software. The dialog box that opens prompts that an exported module for the file is already found. Click Yes to overwrite this file.

    Figure 6-1 Export Hardware

  6. Select File → Launch SDK. Set Exported location to V:/software and workspace to V:/software/m1_for_arty_a7/sdk_workspace. Click OK to proceed.

    Figure 6-2 Launch SDK

  7. Vivado SDK launches and automatically opens the hardware platform specification for the Arty A7 example design. The following image shows the memory map that is displayed. The memory map displayed aligns with the map described in Memory map.

    Figure 6-3 Memory map

    1. Confirm that under Xilinx → Repositories, the global repository list includes V:/vivado/Arm_sw_respository.
  8. Select File → New → Board Support Package.
  9. Set the design name to standalone_bsp_0.
  10. Click Finish.

    Figure 6-4 New Board Support Package Project

    1. On the Standalone tab, ensure that stdin and stdout are set to use axi_uartlite_0.


      The SDK does not read the stdin and stdout values unless they are changed. This is a known issue, and therefore, you must set stdin and stdout to none, and then set them back to axi_uartlite_0.

      Figure 6-5 Board Support Package Settings - standalone tab

    2. Click Finish. The SDK generates the required BSP files.
  11. The following directory structure now exists as V:/software/m1_for_arty_a7/sdk_workspace/standalone_bsp_0/CORTEX_M1_0/. The common Xilinx include files are in the /include directory. The driver files for the selected peripherals and the standalone BSP core files are in the /libscr directory.
  12. The xpseudo_asm_rcvt.h and xpseudo_asm_rcvt.c files must be manually copied from V:/vivado/Arm_sw_respository/Cortex/bsp/standalone_v6_7/src/arm/cortexm1/armcc to V:/software/m1_for_arty_a7/sdk_workspace/standalone_bsp_0/CORTEX_M1_0/include directory because of differences between the Vivado SDK and Arm Keil Microcontroller Development Kit (MDK).
The BSP is complete and is now ready fo use by the example software design for compilation.


The BSP header file, xparameters.h, is located in the V:\software\m1_for_arty_a7\sdk_workspace\standalone_bsp_0\CORTEX_M1_0\include. This header file includes definitions for all memory addresses and peripheral configurations. It is automatically generated from the hardware platform specification. To enable tightly coupled hardware and software configurations Arm recommends that you use the configuration definitions from this file.


If the xparameters.h file does not contain entries for STDIN_BASEADDRESS or STDOUT_BASEADDRESS, then the stdin and stdout locations are not correctly set. This results in no UART output. The standalone_bsp_0 directory should be removed, and the BSP regenerated.

Next Steps

You must now proceed to Building the example software design.
Was this page helpful? Yes No