Visible to Intel only — GUID: tew1697418635441
Ixiasoft
1. About the RiscFree* IDE
2. Installation and Setup
3. Getting Started with RiscFree* IDE
4. Debug Setup for Nios® V Processor System
5. Debug Setup for Arm* Hard Processor System
6. Debugging with RiscFree* IDE
7. Debugging with Command-Line Interface
8. Ashling RiscFree* Integrated Development Environment (IDE) for Intel® FPGAs User Guide Archives
9. Document Revision History for the Ashling RiscFree* Integrated Development Environment (IDE) for Intel® FPGAs User Guide
A. Appendix
6.1. Debug Features in RiscFree* IDE
6.2. Processor System Debug
6.3. Heterogeneous Multicore Debug
6.4. Debugging µC/OS-II Application
6.5. Debugging FreeRTOS Application
6.6. Debugging Zephyr Application
6.7. Arm* HPS On-Chip Trace
6.8. Debugging the Arm* Linux Kernel
6.9. Debugging Target Software in an Intel® Simics Simulator Session
Visible to Intel only — GUID: tew1697418635441
Ixiasoft
6.8.2. Debugging the Arm* HPS Linux Kernel
Refer to the following steps to debug the Arm* HPS Linux Kernel:
- Boot Linux* on the Intel Agilex® development board using a Linux kernel ready for debugging.
- Go to File > Import > C/C++ Executable then click Next.
Figure 42. Selecting Import Wizard
- In the Import Executable window, click Browse… and select the vmlinux executable location on your computer. Click Next.
Figure 43. Importing C/C++ Executable Files
- Use Linux Kernel Debug for New project name. Select Ashling Heterogeneous Multicore Hardware Debug for Create a Launch Configuration, then click Finish.
Figure 44. Choosing Project
- The Debug Configurations window appears. Use the Auto-detect Scan Chain button, if you need to populate the device list in the Device tab in the launch configuration. Perform and repeat the following steps for all four Cortex-A53 cores.
Figure 45. Creating, Managing, and Running Configuration
- For the Linux debug session, check all the cores that Linux is running on as shown below.
Figure 46. Linux CoresNote: Intel recommends you specify a proper memory access attributes to avoid unwanted or illegal memory access during the debug session. For example, the memory access region configured for Intel Agilex® platform is:
set remotetimeout 10 set mem inaccessible-by-default on mem 0xffff000000000000 0xffff0003ffffffff rw mem 0xffff800000000000 0xffff802effffffff rw
Ensure you select the default path and then select aarch64-none-linux-gnu-gdb as the GDB Executable name. - Click Target Application tab. Click Add. The Browse Executable window appears. For Project, click Browse... and select the current project. For C/C++ Application, click Browse... and select vmlinux as the executable. Click OK.
Figure 47. Browse Executable Window
- After adding the executable, ensure you turn off Load image as the image is already loaded to the target.
Figure 48. Target Application Tab
- Click the Startup tab. Ensure the configuration is as shown below.
Figure 49. Startup Tab
- Go to OS Awareness tab. Turn on the OS Aware Debugging checkbox and select appropriate Linux kernel version.
Figure 50. OS Awareness Tab
- For the Linux debug session, check all the cores that Linux is running on as shown below.
- After you complete the configurations for all of the Cortex-A53 cores, click Apply then click Debug. The debugger connects to the Linux running on the board, then it stops the cores, and display the current code, as shown below.
Figure 51. idle.c tab
- Go to Linux > Processes > List Running Processes, and then the debugger shows the processes.
Figure 52. Linux Process
- Right-click a process in the list, then select the Watch option. The debugger opens the process in the Watch window. You can now inspect its properties.
Figure 53. Inspecting the Process Properties
The following figure shows an example of the Linux process properties.
Figure 54. Process Properties - Go to Linux > Modules > List Loaded Modules to show the list of modules. In the example below only one module was loaded:
Figure 55. Linux Modules
- Right-click a module in the list, then select the Watch option. You can inspect the module properties as shown in the figure below:
Figure 56. Module Properties