A CFS workspace is the top-level container that organizes one or more projects targeting an Analog Devices microcontroller or DSP. Each workspace is described by aDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/analogdevicesinc/codefusion-studio/llms.txt
Use this file to discover all available pages before exploring further.
.cfsworkspace file — a JSON document that records the selected SoC, board, package, and a Projects array that captures per-core configuration such as firmware platform, plugin ID, build system, and Zephyr version. Opening a workspace in CodeFusion Studio automatically loads the System Planner Configuration Tools dashboard so you can begin configuring pins, clocks, memory, and peripherals straight away.
What is a CFS workspace?
Single-core workspace
A workspace built around a single processor core — for example, the ARM Cortex-M4F on a MAX32690. Ideal for straightforward MSDK or Zephyr projects.
Multi-core workspace
A workspace that includes multiple cores, such as the CM4 and RISC-V cores found on the MAX32690. Each core gets its own project entry and code generation plugin.
Template workspace
Created from a pre-defined ADI workspace plugin that ships with recommended defaults — firmware platform, KConfig flags, CMake arguments, and board name all pre-populated.
Manually configured workspace
Built step-by-step through the Workspace Creation Wizard, letting you choose exactly which cores to enable, which code generation plugin to use, and all platform options.
Create a new workspace
New workspaces are created with the Workspace Creation Wizard inside VS Code.Launch the Wizard
Select a processor
Choose a processor from the list. You can type a partial name to filter the options.
Choose a creation method
After selecting the processor and board you will be presented with two options:- Select a workspace template
- Manually configure the workspace
Choose a pre-defined SoC template that comes with ADI-recommended configuration options. Templates are provided by workspace plugins and appear in the wizard automatically. Both single-core and multi-core templates are available.
Complete workspace setup
Enter workspace name
Enter a workspace name using only letters, numbers, underscores, dashes, and periods. Spaces and other special characters are not permitted.
Set location
Use the default location or uncheck the box to choose a different directory. You can also type a path manually or use the Browse button.
Trust the workspace
If prompted with Do you trust the authors of the files in this workspace?, click Yes, I trust the authors to continue.
If generation fails, error messages will guide you to resolve issues before trying again.
Open an existing workspace
- Open a workspace file
- Open a folder
If the project contains a
*.code-workspace file:On some systems, files starting with
. are hidden by default.Copy workspace settings
You can create a new workspace based on the settings of an existing workspace by clicking Configure Workspace in the CodeFusion Studio interface. This opens the wizard pre-filled from the selected.cfsworkspace file. You can then modify options such as processor selection, board configuration, core settings, and firmware platform without starting from scratch.
Migrate an existing project to System Planner
Older.cfsconfig files are not compatible with the new System Planner format. To enable System Planner in an existing project, you must create a new workspace using the latest format.
Save a copy of the original config
Save a local copy of the original
.cfsconfig file from your existing project.Create a new workspace
Create a new workspace using the Workspace Creation Wizard.
Open the original config in a text editor
In VS Code, right-click the original
.cfsconfig file, select Open with, then choose Text Editor.Compare configs
Compare the new
.cfsconfig file to your saved original and identify any missing top-level fields.Reconfigure in System Planner
Use System Planner to update configurations as needed:
- Allocate and configure peripherals
- Assign and configure pins
- Configure clocks
- Allocate and partition memory
- View registers
Multi-core workspaces
On devices such as the MAX32690, the SoC contains both an ARM Cortex-M4F (CM4) and a RISC-V (RV) core. A CFS workspace can target both cores simultaneously. Each core gets its own entry in the Projects array of the .cfsworkspace file, with independent plugin, firmware platform, and platform configuration settings.
In the System Planner, the Workspace Projects table lists all enabled cores and lets you track peripheral allocation, pin assignments, and memory partitions independently for each.
TrustZone workspaces
Arm® TrustZone® is a hardware-based security technology available on Cortex-M33 cores. CodeFusion Studio supports TrustZone on the MAX32657 and MAX32658 devices, allowing you to create independent secure and non-secure execution environments in a single workspace.- Secure environment — runs trusted code and protects sensitive assets such as secure boot, cryptographic libraries, or key storage.
- Non-secure environment — runs code that does not require isolation, such as the main application, drivers, and general-purpose user code.
Create a TrustZone-enabled workspace
Select a compatible device
In the Workspace Creation Wizard, select a MAX32657 or MAX32658 device and choose a board.
Workspace file format
Each workspace is represented on disk by a.cfsworkspace JSON file. This file is the authoritative record of the workspace and is read by both the VS Code extension and the cfsutil CLI.
Minimal workspace file
Populated multi-core workspace (MAX32690)
The following example shows a workspace targeting the MAX32690 with a Zephyr-based CM4 project and an MSDK-based RISC-V project:Key workspace file fields
Key workspace file fields
| Field | Description |
|---|---|
Copyright | License/copyright notice for the workspace file. |
DataModelVersion | The schema version used to parse this file. |
Soc | The target SoC identifier, for example MAX32690. |
WorkspacePluginId | ID of the workspace plugin used to create the workspace (empty for manually configured workspaces). |
Board | The board name, for example AD-APARD32690-SL. |
Package | The SoC package variant, for example WLP or TQFN. |
Projects | Array of per-core project configurations. |
Projects[].Id | Unique identifier for this core partition entry. |
Projects[].CoreId | Core identifier, for example CM4 or RV. |
Projects[].IsPrimary | Marks the mandatory primary core. |
Projects[].PluginId | The code generation plugin used for this core. |
Projects[].FirmwarePlatform | Platform tag: zephyr, msdk, etc. |
Projects[].PlatformConfig | Plugin-specific options such as board name, Zephyr version, and build system. |
WorkspacePluginVersion | Version of the workspace plugin (empty for manually configured workspaces). |
WorkspaceName | The workspace name as entered in the Workspace Creation Wizard. |
Location | Filesystem path to the workspace directory. |