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
- Open the Create Solution wizard from the CMSIS extension.
- Select the board V2M-MPS3-SSE-300-FVP.
- Under the Reference Applications category, select the Blinky example.
- Select the solution base folder.
- Click Create.
- Open the generated Blinky.csolution.yml file located in the Blinky project folder (./Blinky.csolution.yml).
- Under the
packs: node, add:
- "Configure Solution" view will be opened. Click on "OK" button
- 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)
- 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"
- Save changes in vcpkg-configuration.json file
- Build the solution.
- 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
- Run the application using Load and Run Application (Play button).
- 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.
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
Steps
packs:node, add: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.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"
Acceptance criteria:
FVP_Corstone_SSE-300.board/Corstone-300/fvp_config.txt.--simlimit 25.out/Blinky/SSE-300-MPS3/Debug/Blinky.hex.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 exampleas the functional success signal and should not require exit code 0 until the FVP/Python cleanup issue is fixed.Expected Results
.csolution.ymlfile is created..cbuild-run.ymlfile is generated for the selected Virtual Hardware target.Postconditions
Automation Notes