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
Personal Blogs
  • Community Hub
  • More
Personal Blogs
Legacy Personal Blogs Getting up and running with Arm Design Start, Generating the SW
  • Blog
  • Documents
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
  • Share
  • More
  • Cancel
Group Actions
  • Group RSS
  • More
  • Cancel
Engagement
  • Author Author: adamtaylorcengfiet
  • Date Created: 19 Dec 2018 2:50 PM Date Created
  • Views 3648 views
  • Likes 4 likes
  • Comments 3 comments
  • cortex®
  • xilinx_explore
  • arm m3
  • fpga
  • xilinx;
  • arm m1
Related
Recommended

Getting up and running with Arm Design Start, Generating the SW

adamtaylorcengfiet
adamtaylorcengfiet
19 Dec 2018

In my last blog we examined how we could get the Arm Design Start Cortex M3 up and running on out Arty A7-35T board using the example SW application provided. In this blog we are going to look at how we can create our own application software.

 

To do this we are going to use the following tools

  • Xilinx Vivado
  • Xilinx SDK
  • Arm KEIL
  • Terminal program such as PuTTY

 

For this example we will look at how we can build the M3 example on the Arty A7, although the process for a M1 is also the same.

 

The program for both the Cortex M3 and M1 is stored within the FPGA block RAM as such the outcome of this process will be an updated FPGA bit file.

 

Lets take a walk through how we create this bit file.

 

Following completion of the build (shown in the previous blog) we will be in a position to export the hardware description file.

 

image

We do this by selecting File->Project-> Export->Export Hardware

image

 

We need to export the hardware design to the root of the software directory, this is achieved by selecting the directory in the export hardware dialog as shown below. Note we should map the project directory to the V drive. As we will be coming back to Vivado to update the bit file we do not need to include this in our export.

 

 

image

 

With the design exported, the next step is to use Vivado to open Xilinx SDK. Again we can do this using File->Launch SDK

 

 

image

 

To correctly build the application, we need to tell SDK where the exported hardware location and the SDK workspace are located, these are not located locally to the project.

 

Point the Exported location to the location we have just exported the hardware

 

image

 

The workspace can be found in the path below.

 

image

 

With both of these correctly set, clicking OK will result in Xilinx SDK being opened, within this workspace you will see the hardware definition that was just exported

 

At this stage we should also check the SDK repositories are as expected, this should point to the following directory V:\vivado\Arm_sw_repository. We can check the repository is correct by selecting Xilinx->Repositories

 

image

Note the Global Repository

image

 

Just like we do for MicroBlaze and Arm A9, A53 and R5 developments, we need to create a Board Support Package. We can do this selecting File->New->Board Support Package

image

 

This will open the BSP creation dialog, leave the project name as the automatic name and click finish.

image

 

Clicking finish will open a BSP configuration dialog, double check on the standalone tab the stdin and stdout are connected to the AXI Uart Lite.

 

image

Clicking OK will now build the BSP, you may see some warning but if done correctly you will see no errors. The next stage is to generate the ELF file which includes this BSP and the Application. However to do so we will not be using Xilinx SDK.

 

Instead we will be using Arm KEIL however, before we do we need to copy two files into the BSP include directory.

 

These files are the xpseudo_asm_rvct.c and xpseudo_asm_rvct.h which are located within Arm SW Repository.

 

image

These files should be copied in to the BSP include directory

image

 

Before we start with the Arm KEIL software development, we need to ensure we have the following paths mapped correctly in our operating system Path

 

  • C:\Keil_v5\ARM\ARMCC\bin
  • C:\Xilinx\Vivado\2018.2\bin

 

With that completed, we are ready to open up the Arm KEIL software. We can find an Arm KEIL project under the directory software/m(3/1)_for_Arty_a7/Build_Keil double click on the m(3/1)_for_arty_a7.uvprojx and the program will open.

 

image

Once Arm KEIL is open, you will be able to see the files in the BSP under the Standalone folder and the main application under the Main folder.

image

To build the executable select the rebuild option.

 

This will generate a new elf and hex file, which will be seen under the Build_Keil directory names bram_a7.elf / hex these files are also copied over to our Vivado directory which is where we need to go back to now to generate the FPGA bit file.

 

 

image

Open a windows command terminal in the directory V:\hardware\m3_for_arty_a7\m3_for_arty_a7

 

You will notice the BRAM files are also under this directory as well

 

Within the command prompt run the script make_prog_files.bat this will run Vivado and update the contents of the BRAM which contain the Cortex application. This is a much faster process than rebuilding the entire bit file from scratch.

 

image

We are now ready to test our application, to do this we need to use Vivado and the hardware manager in Vivado.

 

Once the hardware manager is open select the Open Target -> Auto Connect option this will connect to the Arty A7

 

image

 

We can then select the bit file we just generated and program the FPGA, ensure you double check the timestamp on the file to ensure it is the latest one.

 

image

 

Once this bit file is downloaded you will see the in a terminal window the application start running on the Arty A7.

 

image

We are now ready to start adding in our own SW functionality and creating our own application, that is over to you!

  • Sign in to reply

Top Comments

  • DAB
    DAB over 6 years ago +1
    Nice detailed update. DAB
Parents
  • DAB
    DAB over 6 years ago

    Nice detailed update.

     

    DAB

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • More
    • Cancel
Comment
  • DAB
    DAB over 6 years ago

    Nice detailed update.

     

    DAB

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • More
    • Cancel
Children
No Data
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