Ashling* RiscFree* Integrated Development Environment (IDE) for Intel® FPGAs User Guide

ID 730783
Date 12/14/2023
Public
Document Table of Contents

7.4. ARM HPS Core Example

The following example shows how to run Ashling* GDBServer at port 12345 on Intel Agilex® 7 FPGA F-Series Transceiver-SOC Development Kit (Production 1 P-Tiles and E-Tiles) GHRD (DK-SI-AGF014EA) with Ashling Sample Project.
  1. Locate the Ashling Sample Project for Intel Agilex® 7 SoC Development Kit in <Intel Quartus Prime installation directory>/riscfree/examples/agilex/agilex-a53-sum.zip.
    $ jtagconfig.exe -d
    1) Agilex SI/SoC Dev Kit on 10.107.209.0:3560 [3-1.4.1]
       (JTAG Server Version 22.1.0 Build 174 03/30/2022 SC Pro Edition)
      6BA00477   S10HPS/AGILEX_HPS/N5X_HPS (IR=4)
      C341A0DD   AGFB014R24A(.|R1|R2)/.. (IR=10)
      031830DD   10M16S(A|C|L) (IR=10)
    
      Captured DR after reset = (6BA00477C341A0DD031830DD) [96]
      Captured IR after reset = (100555) [24]
      Captured Bypass after reset = (0) [3]
      Captured Bypass chain = (0) [3]
      JTAG clock speed auto-adjustment is enabled. To disable, set JtagClockAutoAdjust parameter to 0
      JTAG clock speed 24 MHz
    
  2. On the first terminal or command prompt, start the Ashling* GDBServer. For the rest of the walkthrough, this terminal is called as Ashling* GDBServer.
    $ ash-arm-gdb-server.exe --device 6BA00477 \
    --auto-detect true --probe-type usb-blaster-2 \
    --core-number 0 --jtag-frequency auto-adjust \
    --gdb-port 12345
    
    Ashling GDB Server for ARM (ash-arm-gdb-server).
    v23.3.2, 01-Sep-2023, (c)Ashling Microsystems Ltd 2023.
    
    Checking for an active debug connection using the selected debug probe (SN: 16777217):
    Connected to target device with IDCODE 0x6ba00477 using USB-Blaster-2 via JTAG at adaptive speed.
    Waiting for debugger connection on port 12345 for core 0.
    Press 'Q' to Quit.
    
  3. On another terminal or command prompt, start the GDB and connect to port 12345. For the rest of the walkthrough, this second terminal is called as GDB.
    $ aarch64-none-elf-gdb.exe agilex-a53-sum.elf 
    
    GNU gdb (GDB) 13.1
    Copyright (C) 2023 Free Software Foundation, Inc.
    License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
    This is free software: you are free to change and redistribute it.
    There is NO WARRANTY, to the extent permitted by law.
    Type "show copying" and "show warranty" for details.
    This GDB was configured as "--host=x86_64-pc-linux-gnu --target=aarch64-none-elf".
    Type "show configuration" for configuration details.
    For bug reporting instructions, please see:
    <https://www.gnu.org/software/gdb/bugs/>.
    Find the GDB manual and other documentation resources online at:
        <http://www.gnu.org/software/gdb/documentation/>.
    
    For help, type "help".
    Type "apropos word" to search for commands related to "word"...
    Reading symbols from agilex-a53-sum.elf...
    
    (gdb) target remote:12345
    Remote debugging using :12345
    0x00000000ffe00000 in ?? ()
    

    Upon success, the Ashling* GDBServer responds with the following messages.

    Got a debugger connection from 127.0.0.1 on port 12345.
  4. With GDB connected to the Ashling* GDBServer, you can start debugging the Arm* HPS core application ELF in the GDB.
    (gdb) load
    Loading section .text, size 0x718 lma 0x7fe00300
    Loading section .init, size 0x34 lma 0x7fe00a18
    Loading section .fini, size 0x34 lma 0x7fe00a4c
    Loading section .rodata, size 0x58 lma 0x7fe00a80
    Loading section .eh_frame, size 0x4 lma 0x7fe00ad8
    Loading section .data, size 0x758 lma 0x7fe00ae0
    Loading section .init_array, size 0x8 lma 0x7fe01238
    Loading section .fini_array, size 0x8 lma 0x7fe01240
    Start address 0x000000007fe00468, load size 3908
    Transfer rate: 592 bytes/sec, 488 bytes/write.
    
    (gdb) b main
    Breakpoint 1 at 0x7fe004ec: file ../main.c, line 32. 
    (gdb) continue
    Continuing.
    
    Breakpoint 1, main () at ../main.c:32
    
  5. To quit the GDB, use the exit command, and answer y to detach from the processor.
    (gdb) exit
    A debugging session is active.
    
            Inferior 1 [Remote target] will be detached.
    
    Quit anyway? (y or n) y
    Detaching from program: agilex-a53-sum.elf, Remote target
    Ending remote debugging.
    [Inferior 1 (Remote target) detached]
    
  6. Upon quitting GDB, the Ashling* GDBServer responds with the following messages. Continue to quit the Ashling* GDBServer by pressing Q.
    Debugger disconnected, closed connection to 127.0.0.1 on port 12345.
    Q
    Quitting...