Releases: analogdevicesinc/VSCode-Maxim
v1.7.1 - EOL
Compatability
Tested with
- Visual Studio Code v1.94.2
- vscode-cpptools v1.22.10
- cortex-debug v1.12.1
This will be the final release of the VSCode-Maxim project.
This project has been merged into CodeFusion Studio, now available as an official VS Code extension here.
Existing users will find the settings and features familiar with an improved UX.
v1.7.0
Compatability
Tested with
- Visual Studio Code v1.86.1
- vscode-cpptools v1.18.5
- cortex-debug v1.12.1
The MSDK has been updated with these project files and all examples have been populated.
Change Notes
Remove Component Dependencies
Dependencies on other MSDK installer components have been removed for the VSCode-Maxim component. This allows users to uninstall them without also removing the VSCode-Maxim component (resolves analogdevicesinc/msdk#786).
Increase Remote Timeout for Flash Tasks
The .vscode/flash.gdb
scripts now run set remotetimeout 10
to increase the GDB remote timeout.
This should fix error Remote replied unexpectedly to 'vMustReplyEmpty':
on some machines (primarily found on linux).
License Update
Update licensing to Apache 2.0
J-Link Support
J-Link support has been improved. Projects should now work with Segger J-Link debuggers out of the box after changing the OpenOCD interface file to jlink.cfg
.
"M4_OCD_interface_file":"jlink.cfg"
Updating the VSCode-Maxim component to at least v1.7.0 will install the jlink.cfg
file automatically. Otherwise, it is available in the release .zip and should be placed at $MAXIM_PATH/Tools/OpenOCD/scripts/interface/jlink.cfg
.
v1.6.2
Compatability
Tested with
- Visual Studio Code v1.83.0
- vscode-cpptools v1.17.5
- cortex-debug v1.12.1
The MSDK has been updated with these v1.6.2 project files, and all examples have been populated.
Change Notes
Support for Native Make Binaries on Windows
The primary feature of this release is the settings.json
change to support native Make binaries Windows for Windows. See the MSDK October Release Notes for more details.
--- a/.vscode/settings-old.json
+++ b/.vscode/settings.json
@@ -1,6 +1,6 @@
{
"terminal.integrated.env.windows": {
- "Path":"${config:OCD_path};${config:ARM_GCC_path}/bin;${config:xPack_GCC_path}/bin;${config:Make_path};${env:PATH}",
+ "Path":"${config:OCD_path};${config:ARM_GCC_path}/bin;${config:xPack_GCC_path}/bin;${config:MSYS_path}/usr/bin;${config:Make_path};${env:PATH}",
"MAXIM_PATH":"${config:MAXIM_PATH}"
},
"terminal.integrated.defaultProfile.windows": "Command Prompt",
@@ -33,7 +33,8 @@
"OCD_path":"${config:MAXIM_PATH}/Tools/OpenOCD",
"ARM_GCC_path":"${config:MAXIM_PATH}/Tools/GNUTools/${config:v_Arm_GCC}",
"xPack_GCC_path":"${config:MAXIM_PATH}/Tools/xPack/riscv-none-elf-gcc/${config:v_xPack_GCC}",
- "Make_path":"${config:MAXIM_PATH}/Tools/MSYS2/usr/bin",
+ "Make_path":"${config:MAXIM_PATH}/Tools/GNUTools/Make",
+ "MSYS_path":"${config:MAXIM_PATH}/Tools/MSYS2",
"C_Cpp.default.includePath": [
"${workspaceFolder}",
RISC-V Debug Launch Profiles Update
RISC-V launch profiles GDB (RISC-V)
have been updated to use the latest riscv-none-elf-gdb
instead of the now deprecated riscv-none-embed-gdb
.
--- a/MaximSDK/Inject/.vscode/launch.json
+++ b/MaximSDK/Inject/.vscode/launch.json
@@ -91,15 +91,15 @@
"externalConsole": false,
"MIMode": "gdb",
"linux": {
- "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-embed-gdb",
+ "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-elf-gdb",
"debugServerPath": "${config:OCD_path}/openocd",
},
"windows": {
- "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-embed-gdb.exe",
+ "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-elf-gdb.exe",
"debugServerPath": "${config:OCD_path}/openocd.exe",
},
"osx": {
- "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-embed-gdb",
+ "miDebuggerPath": "${config:xPack_GCC_path}/bin/riscv-none-elf-gdb",
"debugServerPath": "${config:OCD_path}/bin/openocd",
},
"logging": {
v1.6.1
Compatability
Tested with
- Visual Studio Code v1.78.0
- vscode-cpptools v1.14.5
- cortex-debug v1.10.0
The MSDK has been updated with these v1.6.1 project files, and all examples have been populated.
Change Notes
Intellisense Improvements
The VS Code project files now "force include" a project_defines
header file in settings.json.
"C_Cpp.default.forcedInclude": [
"${workspaceFolder}/build/project_defines.h"
]
This file is generated by the updated MSDK build system as of the June 2023 MSDK release, and it will be placed in the build folder. (see gcc.mk for implementation details).
This new feature allows the intellisense engine to detect compiler definitions that originate purely from the build system or compiler itself. Previously, these had to be manually added, and VS Code would sometimes assume os-specific compiler flags. Now, the intellisense engine will match the compiled project 1:1.
It should be noted that the updated definitions will only happen after a build has completed.
Explicitly Source ~/.zshrc on MacOS
build
, clean
, and clean-periph
have been modified in tasks.json to explicitly source ~/.zshrc
before running make commands. This is a workaround to microsoft/vscode#186244.
See "Completing the Installation on MacOS" for MacOS setup instructions. This change ensures that the modifications to ~/.zshrc suggested by the Homebrew install instructions for Make v4+ work for VS Code's tasks. As a side effect, zsh is now the only supported shell for the MSDK. This aligns with Apple's decision to move towards zsh as the default shell.
Update RISCV toolchain
The VS Code project files now come configured for the xPack riscv-none-elf-gcc
toolchain v12.2.0-3.1 for RISCV projects, which is available in the MSDK as of the June 2023 release.
Fix Duplicate Array Entries
Some projects had duplicate array entries for include and browse paths. These have now been removed.
Fix Mismatched BOARD Settings
Some projects are listed as pre-configured for specific Board Support Packages. In some cases, the "board"
setting in VS Code did not match the BSP enforced by the build system. The project generator has been updated so that all project settings should match the correct BSP out of the box.
v1.6.0
Compatability
Tested with
- Visual Studio Code v1.75.1
- vscode-cpptools v1.14.5
- cortex-debug v1.10.0
The MSDK has been updated with these v1.6.0 project files, and all examples have been populated.
Change Notes
Cortex-Debug Support
Improved debugging and peripheral browsing has been added for Arm-core debugging with the addition of an official cortex-debug launch profile.
To use this new profile, first install the cortex-debug extension. Then, select the new profile from the launch profile dropdown.
Documentation Migration
- The VSCode-Maxim User Guide has now become a part of the official MSDK User Guide. Documentation will continue to be consolidated into the MSDK User Guide.
- The wiki info has moved to the MSDK User Guide.
Improvements to Parallel Build Output
- Build tasks now drive Makefiles properly for parallel builds with the addition of the
--output-sync
option. Previously, any errors in the build output ran the risk of mangling the terminal output as the parallel build threads attempted to write to the same console, forcing non-parallel recompilation to see the build error. Parallel builds should now be nice and clean. Ex:
v1.5.0
** Tested with **
- Visual Studio Code v1.72.2
- vscode-cpptols v1.11.4
The MSDK has been updated with these v1.5.0 project files, and all examples have been populated.
Change Notes
-
We now have a Wiki
-
The readme has been cleaned up, and some info has moved to the new wiki.
-
Makefile and build system improvements (see Build Configuration for documentation):
- Projects will now auto-detect source code on
VPATH
. - Added a project.mk to each project easy project-specific customization
- Improved and documented the available configuration variables.
- Added SBT integration and set signed builds as default for secure microcontrollers
- Streamlined library integration with new library toggle switches
- Configuration variables now behave more consistency across command-line, environment variables, and IDEs
- Fixed bug that was causing setting
LINKERFILE
to fail whenMAXIM_PATH
was set on MSYS2 - Builds now print binary size and info on completion
- Projects will now auto-detect source code on
-
Debugger improvements:
- Set the program counter to the Reset_Handler on reset. This improves reset consistency and allows for debugging standard .elf files on secure microcontrollers for development.
-
Build
task now runsmake
instead ofmake all
. This allows projects to override the default make goal if needed (including SBT). -
Add Segger J-Link debugger support. See this wiki page.
-
Update readme and UG
v1.5.0-beta
Beta release for v1.5.0
These project files have not been pushed out to the SDK yet, but the beta is made available for early adopters.
See the attached assets for v1.5.0-beta project templates, and the new J-Link project template.
Change Notes
-
We now have a Wiki!
-
The readme has been cleaned up a bit, and some info has moved to the new wiki.
-
Add Segger J-Link debugger support. See this wiki page.
-
Improve reset and flashing compatibility with secure microcontrollers. It's now possible to flash and debug projects on secure micros, effectively bypassing the bootloader for development. Wiki page to come, but this should just work out of the box - no special configuration required.
-
Massive upgrade of the Makefile system. See
Makefile
andproject.mk
for more details. Some notable features:- Auto-detection of source code (no more
SRCS += ...
required) - Streamlined library integration with new library toggle switches
- Improved documentation of "API" variables with easy
project.mk
access-point
- Auto-detection of source code (no more
-
Update readme and UG
v1.4.3
Tested with
- Visual Studio Code v1.69.2
- vscode-cpptools extension v1.11.4
Change Notes
- Add "flash & run" utility task
- Fix bug in OpenOCD utility task searching the wrong directory
- Add "flash erase" utility task
- Update readme
Supported Microcontrollers:
- MAX32520
- MAX32570
- MAX32572
- MAX32650
- MAX32655
- MAX32660
- MAX32665
- MAX32670
- MAX32672
- MAX32675
- MAX32680
- MAX32690
- MAX78000
- MAX78002
v1.4.2
Tested with
- Visual Studio Code v1.66.2
- vscode-cpptools extension v1.9.7
Change Notes
- Improve debugger documentation in readme
- Add note to readme to only use forward slashes
/
inMAXIM_PATH
- Fix bug in RISC-V launch profile pointing to wrong toolchain
Supported Microcontrollers:
- MAX32520
- MAX32570
- MAX32650
- MAX32655
- MAX32660
- MAX32665
- MAX32670
- MAX32672
- MAX32675
- MAX32680
- MAX32690
- MAX78000
- MAX78002
v1.4.1
Tested with
- Visual Studio Code v1.66.2
- vscode-cpptools extension v1.9.7
Change Notes
- Use "cmd" as the default terminal on Windows. This fixes a bug on Windows that causes the "flash" build task to fail. If you experience an error similar to the one below after running "flash" ensure that you have the default terminal profile set to "command prompt", not "powershell". As of v1.4.1 this will be the default setting on Windows in the VSCode-Maxim project files. Powershell parses the flash task incorrectly and should not be used.
Excess command line arguments ignored. (MAXxxxx.cfg)
C:/MaximSDK/Tools/OpenOCD: Is a directory.
C:\Users\Jake.Carter\codespace\Hello_World/cmsis-dap.cfg: No such file or directory.
The target architecture is set to "armv7e-m".
Missing argument 0 in user function.
The terminal process "C:\WINDOWS\System32\WindowsPowerShell\v1.0\powershell.exe -Command arm-none-eabi-gdb --cd="C:\Users\Jake.Carter\codespace\Hello_World" --se="build/Hello_World.elf" --symbols=build/Hello_World.elf -ix="C:\Users\Jake.Carter\codespace\Hello_World/.vscode/flash.gdb" --ex="flash_m4 C:/MaximSDK/Tools/OpenOCD cmsis-dap.cfg MAX78002.cfg" --batch" terminated with exit code: 1.
- Update readme
Supported Microcontrollers:
- MAX32520
- MAX32570
- MAX32650
- MAX32655
- MAX32660
- MAX32665
- MAX32670
- MAX32672
- MAX32675
- MAX32680
- MAX32690
- MAX78000
- MAX78002