Skip to content

1.1.0 Release Notes

Source

CodeFusion Studio source can be found on GitHub under tag V1.1.0

About this release

CodeFusion Studio 1.1.0 introduces major enhancements for multi-core development, including multi-core project management, heterogeneous multi-core debugging, and powerful resource partitioning tools.

What's new

Tools

  • System Planner: A new centralized interface for accessing configuration tools and managing workspace resources, including cores, peripherals, clocks, pins, and memory partitions.
  • Memory Allocation – Define and manage memory partitions per core to optimize resource distribution across multi-core SoCs.
  • Peripheral Allocation– Assign and configure peripheral blocks per core directly within the System Planner.
  • Heterogeneous Multi-Core Debugging – Debug multiple cores in a single environment, eliminating the need for multiple IDEs.
  • Device Tree View: Enables hardware component review for Zephyr-based projects, improving visibility and configuration management.
  • Workspaces for Multi-Core Projects – Projects are now upgraded to workspaces, allowing one project per core for better organization and management. This ensures a streamlined development process across multiple cores in a unified workspace.
  • UX upgrades - Improved accessibility and usability for the Registers page and Pin Config page.
  • Context menu enhancements – With the move to multi-project per core workspaces, context-based action filtering has been introduced. Clicking on a project in the Context panel dynamically updates the Actions panel to display only relevant actions.
  • Catalog Manager – A background service that automatically syncs the SoC data model, ensuring up-to-date information on cores, boards, and other hardware configurations.
  • Plugin based project creation – A flexible, extensible plugin architecture that cleanly separates configuration from code generation, allowing developers to create plugins that align with internal standards.

Development platforms and tools

  • Support for Zephyr RTOS 4.1 Get started
  • Support for the Micro SDK (MSDK) Get started with MSDK
  • Support for Registers-only (bare-metal) – A reference plugin for advanced workflows that generates MMR-based code for use in custom toolchains.
  • Compiler and debug support available for Zephyr (ARM Cortex-M only) and MSDK (ARM Cortex-M and RISC-V) projects.

Supported versions

Component Version
Arm GNU Toolchain 14.2.Rel1
xPack GNU RISC-V Toolchain 14.2.0-3
Zephyr RTOS 4.1.0
Zephyr SDK 0.17.0

Host architecture support

CodeFusion Studio is supported on the following host operating systems:

  • Windows 10 or 11 (64-bit)
  • macOS (ARM64)
  • Ubuntu 22.04 and later (64-bit)

Target architecture support

Introduced support for the following processors:

Processor MSDK Zephyr Config Tools TESA
MAX32650 Yes Yes No Yes
MAX32660 Yes Yes No No
MAX32666 No Yes No No
MAX32675C Yes Yes No No

Known issues

  • CodeFusion Studio is not compatible with VS Code version 1.99. This is expected to be resolved in newer versions of VS Code. VS Code v1.98 is known to be compatible with CodeFusion Studio.

Project management issues

  • Zephyr supported for single-core configurations only
    • Allocating Zephyr firmware to a RISC‑V core is unsupported and can produce invalid DTS overlays or build failures. Additionally, combinations that include Zephyr on ARM Cortex‑M cores and MSDK or bare-metal on RISC‑V cores are also unsupported. Use Zephyr only on ARM Cortex‑M cores in standalone configurations.

Tools issues

  • Build failure when using conflicting timer modes (Zephyr projects)
    • Zephyr projects that configure multiple Timer (TMR) peripherals in different modes, for example TMR0 in PWM mode and TMR1 in Compare mode, fail to build with the error: multiple definition of 'Wrap_MXC_TMR_*. This is because the wrap_max32_tmr.h contains function definitions that are referenced by multiple drivers. The issue can be resolved by prefixing the function definitions in wrap_max32_tmr.h with static inline.
  • Peripheral configuration support
    • Peripheral configuration is currently supported for: ADC, I2C, SPI, Timers, UART, Watchdog Timers (WDT), and Real-Time Clocks (RTC). This also includes low-power variants such as LPTMR and LPUART.
  • Timer pin limitations
    • Some packages may not expose all timer signals on pins. For example, on the MAX32690 TQFN package, TMR2 and LPTMR1 have no exposed pins, which limits certain functionalities. These timers can still be used in modes that don’t require physical pins. When selecting modes, avoid selecting modes that require pins. These modes are not hidden in the UI.
  • Unsupported peripherals in Zephyr
    • Some peripherals are not supported in Zephyr. Enabling an unsupported peripheral results in a warning message peripheral is not currently supported in the Warnings section of the generated overlay file. Disable the unsupported peripheral and regenerate the code to resolve the warning. Refer to the generated overlay file for a complete list of unsupported peripherals.
  • Partition naming restrictions
    • Partition names created in the Memory Allocation tool must not start with a number, contain spaces, or include special characters (excluding _). Using an invalid partition name results in a parse error: expected '{', '=', or ';' during code generation.
  • MSDK Board_Init() interferes with peripheral allocation
    • CFS applies peripheral configuration from your .cfsconfig file through the PeripheralInit()function. In MSDK-based projects, the SDK also provides a Board_Init() function that runs before PeripheralInit() and may configure peripherals such as UARTs or LEDs. To ensure .csfconfig settings take full effect, override the SDK’s Board_Init() function by adding an empty version to a source file, such as main.c. This replaces the weak version defined by the SDK:
    int Board_Init(void)
{
    // Prevent MSDK from pre-configuring peripherals
    return 0;
}

Registers-only (bare-metal) plugin issues

The Registers-only (bare-metal) plugin is available when using the manual configuration option in the Workspace Creation Wizard. The generated code is intended for reference only. Build and debug support is not included, and the code may not obey all the constraints on ordering and timing required by the hardware. The following limitations are known:

  • Clock enable missing for peripherals assigned to non-primary core
    • Clock enable instructions are only emitted when the peripheral is assigned to the primary core.
  • Oscillator initialization not generated
    • Code generation emits code to configure the clock tree, but it does not generate code to initialize the oscillators. Manual setup is required.
  • Timer configuration in 32-bit mode is incomplete
    • When using timers in 32-bit mode, the generated code does not set the TMRb clock to match TMRa, as required by the hardware.

Debug issues

  • Segger JLink does not support all parts. See the following table for details. For a list of supported devices, see the Segger website.
Part Issue Alternatives
MAX32655FTHR No JTAG connector for direct JLink connection Use MAXPICO debugger instead
MAX32660EVSYS No JTAG connector for direct JLink connection Use MAXPICO debugger instead
MAX32662 Not supported Use MAXPICO debugger instead
MAX32666FTHR Serial output not available Use MAXPICO debugger instead
MAX32670EVKIT J-Link supported, but board does not expose SWD/JTAG pins Use MAXPICO debugger instead
MAX32690FTHR Serial output not available Use MAXPICO debugger if you need serial output
APARD32690 Serial output not available Use MAXPICO debugger if you need serial output
MAX78000FTHR Not supported Use MAXPICO debugger instead
  • Debug toolbar remains after stopping session
    • After pressing Stop following a Restart during a debug session, the debug toolbar may remain visible. To remove it, open the command palette and type Reload Window.
  • RISC-V debug session exits when modifying local variable during live debug with OpenOCD
    • Modifying a local variable's value through the Variables view during a RISC-V debug session with OpenOCD can cause the session to exit unexpectedly.

SDK issues

  • Maintenance Tool not supported on macOS 15 Sequoia
    • The Maintenance Tool does not currently work on macOS 15 Sequoia. To uninstall CodeFusion Studio on this platform, manually delete the CodeFusion Studio directory from the filesystem.