Skip to content

Add Arm-FVP launch configuration in templates#108

Draft
jthuangarm wants to merge 4 commits into
mainfrom
fvp-template
Draft

Add Arm-FVP launch configuration in templates#108
jthuangarm wants to merge 4 commits into
mainfrom
fvp-template

Conversation

@jthuangarm
Copy link
Copy Markdown

Note

This PR is still under development.
Please do not merge until this note is removed.

  • Add launch.json generation support for Arm-FVP.
  • Add the FVP GDBServer plugin argument using ${env:AVH_FVP_PLUGINS}.
  • Set the default Arm-FVP GDB server port to 10000, matching the default port used by the FVP GDBServer plugin.
  • Avoid generating a trailing empty "" argument in FVP launch.json and tasks.json configuration, because FVP treats it as an empty application path and fails during launch.

Currently, this launch configuration:

  • only supports singlecore-launch.
  • doesn't support auxiliaryGdb.

Comment thread templates/FVP.adapter.json Outdated
Comment thread templates/FVP.adapter.json
@jkrech
Copy link
Copy Markdown
Member

jkrech commented May 19, 2026

I think we require both the launch and attach variants for FVP

The gdbserver port can be configured via a plug-in parameter

--parameter GDBServer.port=7123

For multi-core a parameter can be configured to select the processor:

--parameter GDBServer.core_name=component.cpu0

@jthuangarm
Copy link
Copy Markdown
Author

jthuangarm commented May 20, 2026

Thanks for the feedback. I refactored the FVP template to reduce duplication, kept the port number using 3333 and added the singlecore-attach variant.

Notes:

  1. Reset
    monitor reset halt is not supported by the FVP GDBServer. I tested the RSP command maintenance packet R00, but the original plugin timed out because it did not reply to GDB after reset. I asked Codex to add the missing reply (e.g. a single line), build a test GDBServer.dll, and verified that reset works reliably. Therefore, I kept maintenance packet R00 in customResetCommands.

  2. Run and Attach
    I tested Load & Run Application followed by manual attach with the new FVP attach configuration. The attach flow works. One remaining issue is that the Load & Run Application / Load & Debug Application icons do not update after pressing Load & Run Application, which needs investigation.

@jthuangarm
Copy link
Copy Markdown
Author

Add a dummy entry for CMSIS Load to work around the problem described in the preceding second note. Here is the result:

 *  Executing task: echo Skipping CMSIS Load: images are loaded by the FVP model when CMSIS Run starts. 

Skipping CMSIS Load: images are loaded by the FVP model when CMSIS Run starts.
 *  Terminal will be reused by tasks, press any key to close it. 

 *  Executing task: C:\FVP\0.0+10356\conan_package_fastmodels_deliverable_binary_MDK-windows-x86\MDK_0.0_10356_Windows_x86\MDK_0.0_10356\bin\FVP_Corstone_SSE-300_Ethos-U55.exe -D --plugin C:\FVP\0.0+10356\conan_package_fastmodels_modellib-windows-x86-vs2019-rel\conan_package\plugins\Win64_VC2019\Release\GDBServer.dll -C GDBServer.port=3333 -f FVP/FVP_Corstone_SSE-300/fvp_config.txt -a out/Hello/CS300/Debug/AC6/Hello.hex 

Info: FVP_MPS3_Corstone_SSE_300: telnetterminal5: Listening for serial connection on port 5001
Info: FVP_MPS3_Corstone_SSE_300: telnetterminal1: Listening for serial connection on port 5003
Info: FVP_MPS3_Corstone_SSE_300: telnetterminal0: Listening for serial connection on port 5000
Info: FVP_MPS3_Corstone_SSE_300: telnetterminal2: Listening for serial connection on port 5002
GDBServer: Debug core: component.FVP_MPS3_Corstone_SSE_300.cpu0
GDBServer: Listening address="127.0.0.1" port=3333

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants