-
New features:
- The CMSIS View shows the board and device for the active target.
- The CMSIS View provides access to documentation for the board, device, and components.
- The Views and More Actions... menu available from the CMSIS View has now a Help entry. Click Help to open the CMSIS Solution documentation.
- The context help in the editor has been enhanced for csolution project files. Documentation links are provided when you move your mouse over the different elements.
-
Solved issues:
- The Create Solution view now presents the correct templates from packs.
- A full list of resolved issues is available on GitHub.
-
Known issues:
- The layers and templates displayed in the Create Solution view are only taken from installed CMSIS software packs.
- Software components from layers of inactive target types incorrectly display in the Software Components view in addition to the ones from the active target type.
- When installing a local software pack with
cpackget
, (a) an incorrect empty <timestamp> is created, and (b) the pack index is downloaded.
-
New features:
- This version of the extension is targeted for use with CMSIS-Toolbox 2.7.
- The CMSIS Solution Extension API version 2.0 is available on npm and gives access to all available boards and devices, their associated examples, and the ability to copy and build a selected example for use by other Visual Studio Code extensions.
- Improvements to the CMSIS Solution outline view include: book icons to open documentation for API header files, count badges on components, Add New Group buttons at the project level, and improved default collapse settings.
-
Solved issues:
- CMSIS solution projects using a
yaml
file extension are loaded correctly again. - To access recently published pack versions, you must run
cpackget update-index --sparse
: Now the pack index is automatically updated bycpackget
once a day. - If you are using CMSIS-Toolbox for the first time, you must manually initialize the CMSIS-Pack root directory with
cpackget init https://www.keil.com/pack/index.pidx
: Now the CMSIS-Pack root directory is initialized automatically if it does not exist yet. - After manually installing a CMSIS software pack, this version of the extension re-reads the package description files of the installed CMSIS software packs every time
cpackget
has added or removed a pack.
- CMSIS solution projects using a
-
Known issues:
- The layers and templates displayed in the Create Solution view are only taken from installed CMSIS software packs.
- Software components from layers of inactive target types incorrectly display in the Software Components view in addition to the ones from the active target type.
- The pack installer updates the pack index even when installing a local CMSIS software pack file.
-
New features:
- The CMSIS status bar has been enhanced with a busy indicator and shows error and warning messages from CMSIS-Toolbox.
- When the Use Web Services setting is enabled, the Create new solution view uses the internet database in addition to installed packs to display devices, boards, and examples.
- For components, the CMSIS view now supports access to documentation from packs.
-
Solved issues:
- Software components from layers or generators display in the Software Components view.
- In the Manage Solution view, the issues occurring when changing the context set configuration have now been solved.
- clangd now supports code completion, compile errors, and go-to-definition for all active contexts.
-
Known issues:
- When using this extension for the first time in combination with the Arm Environment Manager, development tools are pre-installed. While this is happening, "Loading..." displays, which is misleading. You can check how the download process is progressing in View > Output > Arm Tools category.
-
New features:
- This version of the extension integrates CMSIS-Toolbox 2.6 with CMake backend.
- The CMSIS Solution view has been improved based on Build Information Files.
- Interfaces with STM32CubeMX and MCUXpresso Config Tools added.
- Easy access to linker scripts, optional with Configuration Wizard annotations.
- Toolchain agnostic with support for Arm Compiler 6, GCC, IAR, and LLVM.
- Supports for software layers and device-agnostic reference applications.
- Dependency on Arm Environment Manager removed, allowing flexible integration with other VS Code extensions.
- clangd now supports code completion, compile errors, and go-to-definition across a whole project.
- Option that enables the
--pack
option to download missing software packs using cpackget added.
-
Known issues:
- The Arm Environment Manager takes a long time to load the first time you use it because all the default tool versions are downloaded and installed. You can check the installation progress in View > Output (Ctrl+Shift+U or Cmd+Shift+U). Select Arm Tools in the drop-down list.
- The Create new solution view only accesses web-based examples from public packs or published repositories. Examples from local packs do not display yet.
- You must manually download Device Family Packs and Board Support Packs using cpackget to start projects.
- Software components from layers or generators do not display in the Software Components view.
- To access recently published pack versions, you must run:
cpackget update-index --sparse
. - If you are using CMSIS-Toolbox for the first time, you must manually initialize the CMSIS-Pack root directory:
cpackget init https://www.keil.com/pack/index.pidx
.
- API extension:
- query boards and devices
- create csolution
- Sync with CMSIS-toolbox 2.5.0
- use 2.5.0 schemas
- call
cbuild setup
- Improvements to the μVision to csolution converter (uv2csolution 1.5.0):
- Converted project files require CMSIS-Toolbox 2.4.0 or higher.
- Fixed: conversion of μVision 5.40 projects using global generator CubeMX failing with "Errors: EOF".
- Fixed: components with unchecked "Include in target build" listed under components node.
- Fixes for new CMakeLists.txt generator
cbuild2cmake
in CMSIS-Toolbox 2.4.0 and higher:- Using "define-asm" node to set assembler specific defines.
- Removal of duplicated modules contributed by both
*.gpdsc
and*.uvprojx
file resulting in linker error about duplicated symbols.
Activate solution
prevented from opening CMSIS view.
- Show
open solution
command on the folders containing csolution files. - Compilation command file loaded from inside the out folder instead of tmp folder.
- Allow to override uv2csolution path using environment variables.
Open solution
renamed toActivate solution
- Create Solution Dialog: Replaced "Examples" dropdown with an TreeView including a search box
- Fixed an issue where .clangd was not created
- Improvements to the μVision to csolution converter:
- Evaluation of new optimization value "-Omax".
- Performing error handling before generating scatter file.
- Fixing "Enable all warnings" for AC6 incorrectly specifies -Weverything.
- Replacement of colon ':' characters in group names with undersore.
- Adding support for new optimization level "debug".
- Improvement of error and warning messages by removing XML tags and rephrasing them to make them more readable.
- Adding 'instances' node in csolution to support multiple instances of a component.
- Improve intellisense within header files.
- Dependency updates.
- Minor improvements.
- Component manager: Display solution name in packs filter dropdown
- Bugfix: changing the selected target in the context selection UI when there are no selected projects now updates the view correctly.
- Config Wizard: Option
<y>
added to change a symbol name
- Prefer csolution example projects from packs over µVision project examples.
- Open the correct directory after converting a µVision example project.
- Rename Clean command to Clean Output Directories.
- Extension API: added new createSolutionFromUri api to create a new csolution project from a uri project and solution directory.
- Component manager: when there is an error state caused by missing packs, show a button that installs the missing packs.
- Status bar: shows the currently selected contexts.
- Fix duplication of quick fix code actions.
- Update YAML schemas to Toolbox 2.3.0.
- Fix template files copied from the pack cache readonly.
- Disable telemetry by default for SSK and HSK licenses
- Sort boards in the create solution form.
- Show a help notification when the CMSIS Toolbox cannot be found.
- Fix vendor filtering of devices in the create solution form.
- Fix bug where
.clangd
files were not generating in some cases.
- Context selection: Refresh the view contents when source files are updated.
- Status bar: update icon to be the same as for context selection.
- Context selection: Display referenced projects, even if their source files are malformed.
- Context selection: add configuration UI for cprojects' run tasks and launch configurations.
- Create solution: There is now more of an indication that the board field is optional.
- Create solution: Automatically install packs when creating a new solution using the Create New Cmsis Solution.
- Component manager: Fix disappearing description when a component is selected.
- Added build, component class, components, files, layer, layers and software components icons to the solution outline view.
- Fix "clangd.applyFix already exists" errors when using the clangd extension.
- Improve clangd integration when using armclang. The compiler is queried for compiler specific defines to pass to the intellisense engine.
- Fix extension API build method so that it respects the given context argument.
- Add option to create files from user code templates provided by CMSIS software components. Click the plus icon next to a group in the solution view to get started.
- Active context: Editing "Run and Debug" options opens Arm Debugger editor for supported tasks and debug configurations.
- Add a new custom editor for configuration files based on CMSIS Configuration Wizard Annotations. Open this with the "Open Preview" button at the top of the editor for a header file.
- Update the getHardwareAndToolchainInfo extension API to return additional information of board id, board pack id and device id.
- Do not set --schema flag when building solutions. This was causing problems due to this issue: Open-CMSIS-Pack/devtools#1345.
- Fix updating the list of solutions in the workspace when the parent directory of a solution is deleted.
- Add editor links from solution files to referenced layer files, and from project files to layer files.
- Removed offerMicroVisionConversion setting. The extension no longer offers to convert µVision projects, so this setting is redundant.
- Update RTE files automatically when generating compile_commands.json. This fixes problems with intellisense when opening a csolution project for the first time.
- Remove deprecated cbuildPath and csolutionPath configuration properties. Use cmsisToolboxPath instead.
- Remove convertToCprj command. CPRJ files are still automatically generated when the csolution input files are changed. Also remove related autoGenerateCprj configuration property.
- Create Solutions: populate the solution name with a valid name when an example is chosen.
- Context selection: clicking run and debug edit links opens configuration files.
- Add new context selection UI, accessible from the cog icon in the solution view. This supports selecting a different build type for each project, and excluding projects from the build.
- Remove getBuildType, setBuildType, getTargetType, setTargetType, getProjectPath, setProject, and getCprjPath commands.
- Add getTargetPack command. This can be used in tasks.json and launch.json files to get the DFP CMSIS pack for the currently selected target.
- Automatically convert µVision examples downloaded with the new solution form to csolution.
- Component manager: helper text has been added to targets filter dropdown.
- Enable opening of the Software Components UI from the project level in the solution outline.
- Auto-select hardware in "create solution" UI if a development board is connected.
- Plus buttons next to groups in the outline view can be used to quickly add files to the group.
- Write converter output to a uv2csolution.log file when converting a µVision project to csolution.
- Create solution: if there is a workspace folder open, the solution location defaults to the parent directory of that folder.
- Add getBinaryFiles command.
- Shows a badge on the CMSIS icon before the view is opened for the first time.
- Automatically update PDSC manifests every week.
- Component manager: display pack install status.
- Component manager: Add project dropdown.
- Added icons to Create Solution and Software Components tabs.
- Fix parsing of component identifiers containing parentheses.
- Create solution form: fixed loading preview data when selecting the same hardware twice.
- Added run and debug configuration settings for solutions and projects
- Fixed loading components from layer files.
- Show informative message in Software Components webview when there is no solution.
- Improvements to the μVision to csolution converter:
- Consider CMSIS V6 by setting latest pack version prior to CMSIS v6 to fixed pack version "5.9.0" in CMSIS solution project
- Better handling of processor properties fpu, mve, trustzone, endianess and branch-protection
- Updating data in generated vcpkg-configuration.json file and avoid duplicating vcpkg entries
- Support multicore
- CMSIS csolution project is now generated if at least one target is faultless
- Improve warning and error messages
- Fixed: compile error when armmasm.exe is specified in uvprojx
- Add target and build type labels to the solution outline view.
- Create solution: add option to clear the selected board.
- Show an option to convert a µVision project in the context menu in the solution outline rather than display a toast notification to do this.
- Use resolved packs defined in the cbuild-pack file if it is present.
- "Open CMSIS Solution" will now open the extension side panel.
- Install missing packs pop up: button to open file has been swapped to a button that opens the problems panel.
- Add explorer context menu item for opening a solution.
- Solution view: move create solution action to context menu and add open solution action.
- Create solution: change the heading for the compiler selection.
- Component manager: software components are filtered to solution by default
- Create solution: improve generated .gitignore files.
- Create solution: generate default solution names.
- Create solution: add LLVM compiler to generated vcpkg file when it is selected.
- Create solution: constrain device hardware list by the mounted devices on the selected board.
- Only show output channels when they have content.
- Update YAML schemas to Toolbox 2.2.1.
- Fix line breaks in CMSIS Build Manager output channel.
- Create solution: can now select board-specific examples to use as a starting template for your application.
- Create solution: update the generated vcpkg-configuration.json to include the correct toolchain for the new solution.
- Disable icons for Build, Manage Software Components, Open Csolution File, Clean and Rebuild when there is no solution active.
- Updates the Manage Software Components icon.
- Component manager: add pack filtering capability.
- Create solution: add separate dropdown fields for boards and devices.
- Create solution: add target type field to set the name of the generated target type.
- Create solution: remove reference to device from generated project names.
- Create solution: remove checkbox controlling installation of missing packs. This is handled by default after creation.
- Create solution: remove feature flag.
- Add cmsis-csolution.getDeviceName command. This returns the CMSIS device name used by the current csolution context.
- The cdefault node present in the csolution file without a compiler sets the compiler to GCC.
- Create solution: only show toolchain options once a template is selected.
- Create solution: device name and vendor has moved from the generated cproject files to the target type.
- Create solution: show a loading spinner while loading hardware details.
- Create solution: sticky action buttons on small screens.
- Outline view: add action to clean the solution.
- The default build task now builds every project in the active solution.
- Improve reliability for intellisense support in header files.
- Add new options to the build task definition:
useContextSet
,contexts
,downloadPacks
andschemaCheck
.downloadPacks
defaults to true to automatically download missing packs during build. - Add search filtering on device families and sub families when selecting a target in create solution.
- Write build command line to terminal when building a solution.
- Outline view: add build and rebuild options for the solution.
- Outline view: stop displaying projects, layers, groups and files that don't belong to selected context.
- Outline view: ensure project node only contains layers referenced by the project.
- Outline view: stop displaying component files that aren't relevant for selected device.
- Add search filter to work for vendors when selecting a target in create solution.
- Add create new solution to the new file menu option.
- Add welcome screen to solution outline view if there are no solutions in the workspace.
- Fixed project file paths for generated csolutions on windows.
- Reduce activity on VS Code startup to improve load performance.
- Remove duplicate and template files from the solution outline view.
- Remove component versions from cproject file.
- Improved styling of dropdowns in the create solution form.
- Remove the ability to change component versions from the components table.
- Create solution csolution and cproject files updated to use .yml file extension
- Add cmsis-csolution.exclude setting for excluding files and folders in searches for csolution files.
- Show an error message in the create solution form when the processors cannot be determined for the target hardware.
- Simplify solution outline view: remove build types, target types, packs, and components not in the current context.
- Add Device Firmware Packs for all mounted devices on a board to newly created solutions.
- Add a main.c boiler plate file to newly created solutions.
- Improvements to the μVision to csolution converter:
- Remove the linker option --list and --import-cmse-lib-out, replaced by
$cmse-lib()$ - In the case user commands are specified in uvprojx converter displays warning to user to manually execute commands
- Consider the XML option
<CreateLib>
in uvprojx - Add link to document for how to manually migrate AC5 to AC6 project
- Remove the linker option --list and --import-cmse-lib-out, replaced by
- Added placeholder to hardware detail panel.
- Improve solution outline view performance.
- Move software components action to the Solution view.
- Fixed alignment the buttons at the bottom of the create solution webview
- Add a new configuration setting to set the path of the CMSIS Toolbox. Deprecates the cmsis-csolution.cbuildPath and cmsis-csolution.csolutionPath settings.
- Fix components table reloading when a component is selected or deselected.
- Fix loading csolution files with cdefault enabled.
- Improved display of debug interfaces in the hardware detail panel.
- Simplify component validation fix sets, which have common mandatory dependencies and a single one-of dependency.
- Fix getProjectPath and getCprjPath commands.
- Add CMSIS:CORE component to generated solutions.
- Add LLVM compiler option to create solution form.
- Fix hardware resolution when using unpublished packs.
- Fix cmsis-csolution.getBinaryFile command.
- Prioritise device over board when resolving hardware for a context. This resolves some issues with managing software components in solutions targeting NXP hardware.
- Simplify the create solution form.
- Remove the Create Solutions Preview
- Add compiler radio button selection options to the create solution panel.
- The solution view now correctly updates when the context is changed.
- Add a new
cmsis-csolution.getProcessorName
command. This returns the processor name for the current context, and can be used to simplify tasks.json and launch.json files. - Add directory selector to the Create Solution flow.
- Update document links to point to https://pack-content.cmsis.io/.
- Show API files in outline view.
- Identify config, template, and API files in the solution outline view.
- Clicking project and layer files in the solution view now expands the children instead of opening the file
- Add a checkbox that installs required packs when a solution is created
- Add getExamplesForBoard extension API for retrieving the list of examples from CMSIS Packs for specified device or board.
- Show component files in the solution outline view.
- Preserve scroll position and collapsed nodes when the Csolution view updates.
- Add support for converting µVision projects with C++ files.
- µVision converter now adds pack references in the cproject file, not the csolution file.
- Update Csolution schemas to 2.1.0.
- Add the error output to the popup that shows when a component fails to update
- Fix display of "misc" in the Csolution view to show a single entry for each compiler, and a single 'All' entry when the compiler is not specified.
- Fix an issue where the CMSIS pack root preference is not respected
- Check intellisense is enabled before registering the configuration.
- Add getHardwareAndToolchainInfo extension API for retrieving the selected device and toolchain for every context in a solution.
- Respect pack scope when resolving boards and devices.
- Software components table offers to clear the search filter when there are no results.
- Fix compilation for API types package.
- Add the "misc" option to "Layers in the solution view
- Add the "misc" options to the solution in the outline view.
- Add the "misc" option to "Target types" in the solution view
- Add the "misc" option to "Projects" in the solution view
- Remove coreTools.path and coreTools.address settings.
- Refresh intellisense config on compile_commands.json changes.
- Fix the solution view for packs when the vendor is not specified.
- Fix parsing for misc settings with a "for-compiler" value.
- Clarify documentation for settings.
- Update Csolution YAML schemas to version 2.0.0.
- Fix "add pack" button in the Software Components Validation panel.
- Fix C/C++ intellisense integration on Windows.
- Only generate tasks.json and launch.json files if µVision conversion succeeds.
- Support cdefault files.
- Support clang compiler.
- Improve performance of component listing and validation in the Software Components UI.
- Software Components UI now resolves a board if it only has one revision.
- Support intellisense via Microsoft C/C++ extension.
- Add clean extension API.
- μVision converter now supports microlib.
- Activate the vcpkg environment after converting µVision to csolution.
- Add components from layers to the Software Components UI.
- Fix resolving components when the processor node is used in layer files.
- Update RTE directory by default when building csolutions.
- Fix support for devcontainers.
- Fix display of selected components in the Software Components UI when there is only one build context.
- Only show packs containing compatible components in the Software Components validation panel.
- Offer to convert μVision projects to csolution.
- Add toolchain, update-rte and jobs properties to the build task.
- Improve vcpkg-configuration.json generated from μVision conversion.
- Fixed "rebuild" option in extension build API.
- Rename convert command to "Convert μVision project to csolution".
- Improvements to the μVision to csolution converter:
- Migrate to schema 2.0
- Do not generate backward slash in file paths. This fixes issues on non-Windows systems.
- Generate vcpkg-configuration.json in project folder where csolution file is located
- Return an error in case the μVision project uses AC5.
- Add support for loading components from layer files.
- Build command now builds csolution files directly without needing cprj conversion step first.
- Compilation database for intellisense is now generated from csolution files rather than cprj.
- Add extension API for converting a μVision project to csolution.
- Update Csolution schema to 2.0.0-dev2.
- Improved μVision to csolution converter, including support for scatter file generation.
- Add support for converting uvmpw projects to csolution.
- Add context menu item to convert uvprojx files to csolution.
- Add support for adding packs to project files.
- Bugfix: fix build task hanging when the build process exits with an error.
- Add support for working with local packs using a local repository stored in $CMSIS_PACK_ROOT/.Local/local_repository.pidx.
- Add new items to the outline view. This is no longer behind the experimental features setting.
- Remove cmsis-csolution.remoteWorkspaceRoot configuration.
- Add support for multi-folder workspaces.
- Remove cmsis-csolution.outputPath configuration. Use the output controls in the csolution file instead.
- Remove cmsis-csolution.solutionPattern configuration. Only files ending in .csolution.yml or .csolution.yaml are considered to be solutions.
- Update the extension API to correctly handle paths case-insensitively on Windows.
- Fix passing
projectFilePath
to themanageComponents
extension API.
- Add new csolution outline view to CMSIS panel that shows the structure, resources, and configuration of the solution. This is only shown when the "Experimental Features" setting is enabled.
- Extension API types are now available on NPM: @arm-software/vscode-cmsis-csolution
- Preserve comments and ordering when adding or removing components from cproject files.
- Show a notification when the active solution has missing packs.
- Add "Update PDSC manifests" command to load the latest CMSIS Pack data. Run this automatically on extension start.
- Fix highlighting missing packs when no version is specified.
- Fix loading packs from a pack cache initialised with cpackget.
- Add the origin CMSIS Pack to the component name tooltip in the Software Components view.
- Optimize for-contexts when writing components.
- Do not close Software Components UI when the csolution file is invalid.
- Add new default "All Targets" filter to the Software Components UI, showing components that are compatible with all of the solution's target types.
- Only activate the extension if the workspace contains a csolution.
- Remove unpublished PDSC manifests that were previously shipped with the extension.
- Fixed spurious validation errors that appeared for some components in the Software Components view.
- Fix getBinaryFile command not honoring the output-dirs configuration in the *.csolution.yml file.
- Remove project name from getBinaryFile command output to match CMSIS Toolbox 1.5.0.
- Fix resolution of components without explicit versions.
- Update getBinaryFile command for CMSIS Toolbox 1.5.0.
- Show a component as selected even if it is not selected in all build types.
- Show documentation for component classes in the Software Components table.
- Fix clicking the status bar entry.
- Prevent content overflow of component name in the Software Components table.
- Allow component classes to be collapsed in the Software Components table.
- Fix updating context webview in the background.
- Validation fixes requiring adding components are now grouped together in the Software Components view.
- Validation panel dropdown UI updated to show fix counts.
- Expand or select rows on click in the Software Components table.
- Show component group documentation in the Software Components table.
- Added problem panel & csolution file diagnostics for "pack not installed" errors.
- Added quickfix for "pack not installed" errors.
- Add command to install a solution's missing packs
cmsis-csolution.installMissingPacks
. - Improve performance of loading the list of devices for the Create Solution UI.
- Bugfix - applying fix sets to components that don't have variant, vendor, or version defined no longer fails.
- Add ability to select/deselect all components within a class or group in the software components view.
- Bugfix - correctly set build and target types to 'Undefined' when not set in solution file.
- Fix context view for solutions with no defined build or target types.
- Fix doc links in README.
- Fix docs publishing.
- Add resolution flow for components that have dependencies that are incompatible with the selected device/toolchain.
- Change name of undefined build or target types from Default to Undefined.
- Improve layout of Software Components view.
- Fix bug in component filtering where some components were being shown as available for incompatible devices.
- Fix bug in component resolution for partial references.
- Add component descriptions to components table.
- Improve performance of component validation.
- Handle partial component references in the manage components view.
- Add resolution flow for components that are not found in solution's packs - offer to add missing pack via validation panel.
- Filter validation errors of manage components by priority of importance.
- Prevent .clangd file from generating incorrectly at the root of the workspace.
- Clarify use of build type and target type in the create solutions UI.
- Manage components view no longer requires the experimental features flag.
- Fix converting MDK projects outside of the workspace (#4).
- Add refresh command to reload the active solution.
- Reload the Manage Components view when the cproject file is changed.
- Remove apply and revert buttons from Manage Components. Changes are now saved to the csolution immediately.
- Add rebuild option to cbuild task. This cleans output directories before building.
- Add rebuild command.
- Fix selection for empty component vendor, variant, version and bundle in manage components.
- Update csolution YAML schemas to 1.3.0.
- Filter manage components view by target type.
- Clearly separate fix options for validation errors in the manage components view.
- Improve missing dependency reporting in manage components view.
- Fixed switching project for solutions with nested cproject files.
- Improved performance for loading device list in the new solution view.
- Highlight rows with validation errors in the experimental manage components view.
- Support switching bundle for unselected cclasses in the experimental manage components view.
- Fixed revert components in experimental manage components view.
- Fixed vendor, version and variant dropdowns in experimental manage components view.
- Run csolution conversion when the configured output directory or csolution path changes.
- Add component validation to experimental manage components view.
- Respect the CMSIS_PACK_ROOT environment variable.
- Updated context view icon.
- Fixed new solution creation flow on Windows.
- Fixed display of device vendors in the create solution UI.
- Fixed issue with CMSIS tools not starting.
- Remove build action bar, this is now provided by the Keil Studio extension pack.
- Added stying for the Create Solution form and Manage Components webviews.
- Added 'Experimental Features' setting
- Fixed context webview updates when the csolution file is modified.
- Handle solutions with no build or target types.
- Truncate project display names.
- Show relative paths to solution files in the contexts webview.