Skip to content

[E2E]: Create CMSIS Solution from Reference Application with FVP #353

Description

@mguzmanm

Summary

Add a dedicated end-to-end test that verifies creating a CMSIS solution from a Reference Application targeting a Virtual Hardware Board, configuring it to use an Arm FVP, then building and running the solution on the configured FVP.

User Goal

As an Embedded Developer, I want to create a new CMSIS solution using a reference application and FVPs so that I can build and run the application on virtual hardware.

Workflows

Workflow 1: Create Solution from Reference Application with FVP

Preconditions

  • VS Code is installed.
  • The CMSIS Solution extension is installed and activated.
  • CMSIS-Toolbox is installed and configured.
  • Required CMSIS packs are installed or can be downloaded.
  • At least one Virtual Hardware Board is available.
  • At least one compatible Reference Application is available for the selected board.
  • The corresponding FVP for the selected board is installed and accessible from the local machine.
  • Any required Virtual Hardware license or runtime prerequisites are satisfied (if applicable).

Steps

  1. Open the Create Solution wizard from the CMSIS extension.
  2. Select the board V2M-MPS3-SSE-300-FVP.
  3. Under the Reference Applications category, select the Blinky example.
  4. Select the solution base folder.
  5. Click Create.
  6. Open the generated Blinky.csolution.yml file located in the Blinky project folder (./Blinky.csolution.yml).
  7. Under the packs: node, add:
    - pack: ARM::AVH_FVP
  8. "Configure Solution" view will be opened. Click on "OK" button
  9. Open "Manage Solution Settings" view.
    9.1 Select Debug Adapter "Arm-FVP"
    9.2 Select model "FVP_Corstone_SSE-300"
    9.3 Set the Config File to ./board/Corstone-300/fvp_config.txt by browsing to the file in the project folder.
    9.4 Set the Misc field to --simlimit 25.
    9.5 Save (CRTL + S)
  10. Click on "Arm Tools"
    10.1 Select "Configure Arm Tools Environment"
    10.2 Select "Arm Virtual Hardware for Cortex®-M based on Fast Models"
    10.3 Select version "11.31.28"
  11. Save changes in vcpkg-configuration.json file
  12. Build the solution.
  13. Verify that the build completes successfully and generates:
    • ./out/Blinky+SSE-300-MPS3.cbuild-run.yml
    • ./out/Blinky/SSE-300-MPS3/Debug/Blinky.axf
    • ./out/Blinky/SSE-300-MPS3/Debug/Blinky.hex
  14. Run the application using Load and Run Application (Play button).
  15. Verify that the CMSIS extension launches the configured FVP and loads the generated image.

Acceptance criteria:

  • The terminal executes FVP_Corstone_SSE-300.
  • The command includes board/Corstone-300/fvp_config.txt.
  • The command includes --simlimit 25.
  • The command loads out/Blinky/SSE-300-MPS3/Debug/Blinky.hex.
  • The terminal output contains Blinky example.

Note:
The current FVP run may terminate with a Python/VSI cleanup error after the expected application output is produced. The E2E test should treat Blinky example as the functional success signal and should not require exit code 0 until the FVP/Python cleanup issue is fixed.

Expected Results

  • The selected Virtual Hardware Board is accepted.
  • Compatible Reference Applications are listed for selection.
  • The solution is generated without errors.
  • A valid .csolution.yml file is created.
  • The generated solution contains the correct:
    • Board
    • Device
    • Context
    • Pack references
  • The solution is discovered by the CMSIS Explorer.
  • The solution builds successfully.
  • A valid .cbuild-run.yml file is generated for the selected Virtual Hardware target.
  • When the Load and Run Application (Play) button is clicked:
    • the selected FVP launches successfully;
    • the generated executable is loaded onto the virtual target;
    • the application starts executing.

Postconditions

  • A new CMSIS solution exists in the selected location.
  • The solution is based on the chosen Reference Application.
  • The solution targets the selected Virtual Hardware Board.
  • The project is ready for configuration, build, and run using either Virtual Hardware.

Automation Notes

  • Suitable for End-to-End (E2E) automation.
  • Requires a deterministic Reference Application and Virtual Hardware Board pair.
  • The required Fast Model/FVP must be pre-installed on the test environment.
  • Build verification can be fully automated.
  • Run verification should confirm that the Virtual Hardware process starts successfully and loads the generated executable.
  • Debug verification should confirm that a debug session can be established with the Virtual Hardware target.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Fields

No fields configured for issues without a type.

Projects

Status
In progress

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions