microsoft / vscode-embedded-tools Goto Github PK
View Code? Open in Web Editor NEWOfficial issue tracking repository for Microsoft's Embedded Tools VS Code extension.
License: MIT License
Official issue tracking repository for Microsoft's Embedded Tools VS Code extension.
License: MIT License
We would like to extract the vcpkg artifacts support into its own VSCode extension and repo, so that other extensions can take a dependency on it easier and get vcpkg artifacts support.
Type: Bug Report
Describe the bug
To Reproduce
Steps to reproduce the behavior:
Expected behavior
Code sample and logs
launch.json
Screenshots
Additional context
Type: Feature Request
I have not tried the extension yet, but one missing feature I do not see in the presentation is the Memory Viewer (and I don't know extension of VSCode proposing this).
This would be a great feature to permit viewing/editing the memory. IDEs from almost all MCU vendors proposes this feature since a long time.
The Embedded Tools extension provides a register viewer for CMSIS-SVD files. I've opened svd file, but it has been treated as an ordinary XML. How can I activate alternative view for this file? I mean a sort of SVD editor: https://github.com/dmitrystu/svd_editor
Type: Bug Report
Describe the bug
The issue persists after disabling the extensions.
I followed this article to bootstrap my dev environment with vcpkg: https://devblogs.microsoft.com/cppblog/vcpkg-artifacts
First I tried to build the example project all in VS Code with the vcpkg environment activated like described in the article and this worked fine.
Then I changed the extension of main.c to main.cpp and I made a few C++ compatibility changes to the project. You can find the changes in my fork of the getting-started repo (https://github.com/Sn1cket/getting-started/tree/build_with_cpp)
In this state I am able to build the project when I run the following commands in a terminal:
vpckg activate
cmake --preset arm-gcc-cortex-m4
cmake --build --preset arm-gcc-cortex-m4
The problem starts when I try to do the same in VS Code. I am getting the following error when compiling the main.cpp file:
[build] C:\Users\<User>\AppData\Roaming\Code\User\globalStorage\ms-vscode.vscode-embedded-tools\vcpkg\root\downloads\artifacts\vcpkg-ce-default\compilers.arm.gcc\2020.10.0\bin\arm-none-eabi-g++.exe -DJSMN_HEADER -DNX_INCLUDE_USER_DEFINE_FILE -DSTM32F4 -DSTM32F412Rx -DTX_INCLUDE_USER_DEFINE_FILE -DUSE_HAL_DRIVER -IE:/dev/projects/vcpkg-playground/getting-started/MXChip/AZ3166/app/. -IE:/dev/projects/vcpkg-playground/getting-started/shared/lib/threadx/ports/cortex_m4/gnu/inc -IE:/dev/projects/vcpkg-playground/getting-started/MXChip/AZ3166/build/lib/threadx/custom_inc -IE:/dev/projects/vcpkg-playground/getting-started/shared/lib/netxduo/ports/cortex_m4/gnu/inc -IE:/dev/projects/vcpkg-playground/getting-started/shared/lib/netxduo/common/inc -IE:/dev/projects/vcpkg-playground/getting-started/shared/lib/netxduo/addons/auto_ip -IE:/dev/projects/vcpkg-playground/getting-started/shared/lib/netxduo/addons/azure_iot -IE:/dev/projects/vcpkg-playground/getting-started/shared/lib/netxduo/addons/BSD -IE:/dev/projects/vcpkg-playground/getting-started/shared/lib/netxduo/addons/cloud -IE:/dev/projects/vcpkg-playground/getting-started/shared/lib/netxduo/addons/dhcp -IE:/dev/projects/vcpkg-playground/getting-started/shared/lib/netxduo/addons/dns -IE:/dev/projects/vcpkg-playground/getting-started/shared/lib/netxduo/addons/ftp -IE:/dev/projects/vcpkg-playground/getting-started/shared/lib/netxduo/addons/http -IE:/dev/projects/vcpkg-playground/getting-started/shared/lib/netxduo/addons/lwm2m -IE:/dev/projects/vcpkg-playground/getting-started/shared/lib/netxduo/addons/mdns -IE:/dev/projects/vcpkg-playground/getting-started/shared/lib/netxduo/addons/mqtt -IE:/dev/projects/vcpkg-playground/getting-started/shared/lib/netxduo/addons/nat -IE:/dev/projects/vcpkg-playground/getting-started/shared/lib/netxduo/addons/pop3 -IE:/dev/projects/vcpkg-playground/getting-started/shared/lib/netxduo/addons/ppp -IE:/dev/projects/vcpkg-playground/getting-started/shared/lib/netxduo/addons/pppoe -IE:/dev/projects/vcpkg-playground/getting-started/shared/lib/netxduo/addons/ptp -IE:/dev/projects/vcpkg-playground/getting-started/shared/lib/netxduo/addons/smtp -IE:/dev/projects/vcpkg-playground/getting-started/shared/lib/netxduo/addons/snmp -IE:/dev/projects/vcpkg-playground/getting-started/shared/lib/netxduo/addons/sntp -IE:/dev/projects/vcpkg-playground/getting-started/shared/lib/netxduo/addons/telnet -IE:/dev/projects/vcpkg-playground/getting-started/shared/lib/netxduo/addons/tftp -IE:/dev/projects/vcpkg-playground/getting-started/shared/lib/netxduo/addons/web -IE:/dev/projects/vcpkg-playground/getting-started/shared/lib/netxduo/addons/websocket -IE:/dev/projects/vcpkg-playground/getting-started/shared/lib/netxduo/crypto_libraries/inc -IE:/dev/projects/vcpkg-playground/getting-started/shared/lib/netxduo/nx_secure/inc -IE:/dev/projects/vcpkg-playground/getting-started/shared/lib/netxduo/nx_secure/ports -IE:/dev/projects/vcpkg-playground/getting-started/MXChip/AZ3166/build/lib/netxduo/custom_inc -IE:/dev/projects/vcpkg-playground/getting-started/shared/lib/netxduo/addons/azure_iot/azure-sdk-for-c/sdk/inc -IE:/dev/projects/vcpkg-playground/getting-started/shared/lib/netxduo/addons/azure_iot/azure-sdk-for-c/sdk/tests/core/inc -IE:/dev/projects/vcpkg-playground/getting-started/shared/lib/netxduo/addons/azure_iot/azure_iot_security_module -IE:/dev/projects/vcpkg-playground/getting-started/shared/lib/netxduo/addons/azure_iot/azure_iot_security_module/inc -IE:/dev/projects/vcpkg-playground/getting-started/shared/lib/netxduo/addons/azure_iot/azure_iot_security_module/inc/configs/RTOS_BASE -IE:/dev/projects/vcpkg-playground/getting-started/shared/lib/netxduo/addons/azure_iot/azure_iot_security_module/iot-security-module-core/inc -IE:/dev/projects/vcpkg-playground/getting-started/MXChip/AZ3166/lib/stm32cubef4/Drivers/CMSIS/Device/ST/STM32F4xx/Include -IE:/dev/projects/vcpkg-playground/getting-started/MXChip/AZ3166/lib/stm32cubef4/Drivers/CMSIS/Include -IE:/dev/projects/vcpkg-playground/getting-started/MXChip/AZ3166/lib/stm32cubef4/Drivers/STM32F4xx_HAL_Driver/Inc -IE:/dev/projects/vcpkg-playground/getting-started/MXChip/AZ3166/lib/stm32cubef4/config -IE:/dev/projects/vcpkg-playground/getting-started/MXChip/AZ3166/lib/mxchip_bsp/stm_sensor/Inc -IE:/dev/projects/vcpkg-playground/getting-started/MXChip/AZ3166/lib/mxchip_bsp/ssd1306 -IE:/dev/projects/vcpkg-playground/getting-started/shared/src/. -IE:/dev/projects/vcpkg-playground/getting-started/shared/src/azure_iot_mqtt -IE:/dev/projects/vcpkg-playground/getting-started/shared/lib/jsmn/src -isystem E:/dev/projects/vcpkg-playground/getting-started/shared/lib/threadx/common/inc -isystem E:/dev/projects/vcpkg-playground/getting-started/MXChip/AZ3166/lib/wiced_sdk/inc -mthumb -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -g3 -ffunction-sections -fdata-sections -fno-strict-aliasing -fno-builtin -fno-common -Wall -Wshadow -Wdouble-promotion -Werror -Wno-unused-parameter -g -MD -MT app/CMakeFiles/mxchip_azure_iot.dir/main.cpp.obj -MF app\CMakeFiles\mxchip_azure_iot.dir\main.cpp.obj.d -o app/CMakeFiles/mxchip_azure_iot.dir/main.cpp.obj -c E:/dev/projects/vcpkg-playground/getting-started/MXChip/AZ3166/app/main.cpp
[build] In file included from c:\users\<User>\appdata\roaming\code\user\globalstorage\ms-vscode.vscode-embedded-tools\vcpkg\root\downloads\artifacts\vcpkg-ce-default\compilers.arm.gcc\2020.10.0\arm-none-eabi\include\c++\10.2.1\stdlib.h:36,
[build] from E:/dev/projects/vcpkg-playground/getting-started/shared/lib/threadx/ports/cortex_m4/gnu/inc/tx_port.h:85,
[build] from E:/dev/projects/vcpkg-playground/getting-started/shared/lib/threadx/common/inc/tx_api.h:121,
[build] from E:/dev/projects/vcpkg-playground/getting-started/MXChip/AZ3166/app/main.cpp:6:
[build] c:\users\david\appdata\roaming\code\user\globalstorage\ms-vscode.vscode-embedded-tools\vcpkg\root\downloads\artifacts\vcpkg-ce-default\compilers.arm.gcc\2020.10.0\arm-none-eabi\include\c++\10.2.1\cstdlib:41:10: fatal error: bits/c++config.h: No such file or directory
[build] 41 | #include <bits/c++config.h>
[build] | ^~~~~~~~~~~~~~~~~~
[build] compilation terminated.
It seems like the compiler include paths don't get resolved properly in the VS Code vcpkg environment.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
I expect the build to finish like outside of the terminal
Code sample and logs
Type: Bug Report
Describe the bug
The problem is that the embedded register "peripheral view" is not initializing correctly.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
The peripheral view should initialize.
Code sample and logs
{ "configurations": [ { "name": "GDB", "type": "cppdbg", "request": "launch", "program": "${workspaceFolder}/build/${config:target}.elf", "args": [], "stopAtEntry": true, "cwd": "${workspaceFolder}", "environment": [], "externalConsole": false, "MIMode": "gdb", "linux": { "miDebuggerPath": "${config:MAXIM_PATH}/Tools/GNUTools/bin/arm-none-eabi-gdb" }, "windows": { "miDebuggerPath": "${config:MAXIM_PATH}/Tools/GNUTools/bin/arm-none-eabi-gdb.exe" }, "miDebuggerArgs": "./build/${config:target}.elf", "preLaunchTask": "flash", "setupCommands": [ { "description": "Launch OpenOCD from within GDB via pipe connection", "text": "target remote | openocd -c \"gdb_port pipe;log_output openocd.log\" -s ${config:MAXIM_PATH}/Tools/OpenOCD/scripts -f interface/${config:debugger}.cfg -f target/${config:target}.cfg", "ignoreFailures": false }, { "description": "Reset", "text": "monitor reset halt", "ignoreFailures": false } ], "svdPath": "${workspaceFolder}/src/MaximSDK/Libraries/CMSIS/Device/Maxim/MAX32665/Include/max32665.svd" }, ] }
022-04-04T19:00:59.813Z [info] [vscode-embedded] Activating extension 2022-04-04T19:01:29.286Z [debug] [vscode-embedded.webview.registerView] VsCodeHostAdapter [webview -> host]: {"type":"initializeRegisterViewer","messageId":0} 2022-04-04T19:01:29.287Z [debug] [vscode-embedded] Active debug session {"name":"GDB","type":"cppdbg","id":"3b4a5151-385f-4146-9c72-189df9b82350","configuration":{"name":"GDB","type":"cppdbg","request":"launch","program":"workingFolder/build/MAX32665.elf","args":[],"stopAtEntry":true,"cwd":"workingFolder","environment":[],"externalConsole":false,"MIMode":"gdb","miDebuggerArgs":"./build/MAX32665.elf","preLaunchTask":"flash","setupCommands":[{"description":"Launch OpenOCD from within GDB via pipe connection","text":"target remote | openocd -c \"gdb_port pipe;log_output openocd.log\" -s C:/MaximSDK/Tools/OpenOCD/scripts -f interface/cmsis-dap.cfg -f target/MAX32665.cfg","ignoreFailures":false},{"description":"Reset","text":"monitor reset halt","ignoreFailures":false}],"svdPath":"workingFolder/src/MaximSDK/Libraries/CMSIS/Device/Maxim/MAX32665/Include/max32665.svd","__configurationTarget":5,"miDebuggerPath":"C:/MaximSDK/Tools/GNUTools/bin/arm-none-eabi-gdb.exe"}} 2022-04-04T19:01:29.300Z [debug] [vscode-embedded] Workspace configuration {"configuration":{"loggingVerbosity":"debug"}} 2022-04-04T19:01:29.377Z [warn] [vscode-embedded.webview.registerView] String substitution is not supported VsCodeHostAdapter [webview <- host]: {"type":"initializeRegisterViewer","messageId":0,"payload":{"svdString":"...","localization":{"displayLanguage":"en","displayLanguageKind":"VSCode"},"loggingSeverity":"debug"} 2022-04-04T19:01:29.419Z [debug] [vscode-embedded.webview.registerView] Initialized logging 2022-04-04T19:01:29.419Z [debug] [vscode-embedded.webview.registerView] Initializing localization 2022-04-04T19:01:29.420Z [debug] [vscode-embedded.webview.registerView] Loading resources from lang=en-US, ns=resources 2022-04-04T19:01:29.420Z [debug] [vscode-embedded.webview.registerView] Loading resources from lang=en, ns=resources 2022-04-04T19:01:29.420Z [debug] [vscode-embedded.webview.registerView] set register view display language: lang=en, code=VSCode 2022-04-04T19:01:29.550Z [error] [vscode-embedded.webview.registerView] Failed to initialize register view {}
Screenshots
Additional context
Attached file is the contents of max32665.svd:
max32665.txt
I'm (very) new to VS code and I'm trying to follow https://devblogs.microsoft.com/cppblog/importing-st-projects-into-visual-studio-code/ on Linux.
When I run Create project from ST project a dialog opens, but it refuses to accept the directory containing my .cproject file.
When I click "Open Project" the dialog just enters the Test subdirectory.
The .cproject file IS there...
skip@Dell-5510:~/localref/nexus_charger_led$ ll
total 216
drwxrwxr-x 11 skip skip 4096 Dec 30 12:07 ./
drwxrwxr-x 5 skip skip 4096 Dec 30 12:04 ../
-rw-rw-r-- 1 skip skip 928 Dec 17 12:52 'CHARGER_LED_BOARD_Full_System_Test_Build_rev00_08_00_date060622 Debug.cfg'
drwxrwxr-x 3 skip skip 4096 Dec 17 12:52 Configuration/
drwxrwxr-x 5 skip skip 4096 Dec 17 12:52 Core/
-rw-rw-r-- 1 skip skip 30589 Dec 17 12:52 .cproject
drwxrwxr-x 2 skip skip 4096 Dec 17 12:52 Doc/
drwxrwxr-x 6 skip skip 4096 Dec 17 12:52 Drivers/
-rw-rw-r-- 1 skip skip 9003 Dec 17 12:52 DVT1_Build_Charger_Tower_LED_Board_ver_03_00_01.launch
-rw-rw-r-- 1 skip skip 9253 Dec 17 12:52 'DVT1_Build_Charger_Tower_LED_Board_ver_03_00_02E Debug.launch'
-rw-rw-r-- 1 skip skip 9247 Dec 17 12:52 'EVT2_Build_Charger_Tower_LED_Board_ver_02_03_01 Debug.launch'
drwxrwxr-x 8 skip skip 4096 Dec 17 12:52 .git/
-rw-rw-r-- 1 skip skip 8 Dec 17 12:52 .gitignore
drwxrwxr-x 3 skip skip 4096 Dec 17 12:52 Middlewares/
-rw-rw-r-- 1 skip skip 15421 Dec 17 12:52 .mxproject
-rw-rw-r-- 1 skip skip 8736 Dec 17 12:52 'nexus_charger_led Debug.launch'
-rw-rw-r-- 1 skip skip 12477 Dec 17 12:52 nexus_charger_led.ioc
-rw-rw-r-- 1 skip skip 1253 Dec 17 12:52 .project
drwxrwxr-x 2 skip skip 4096 Dec 17 12:52 .settings/
-rw-rw-r-- 1 skip skip 4833 Dec 17 12:52 STM32G0B1KBUX_FLASH.ld
-rw-rw-r-- 1 skip skip 4824 Dec 17 12:52 STM32G0B1KBUX_RAM.ld
drwxrwxr-x 9 skip skip 4096 Dec 17 12:52 Tasks/
drwxrwxr-x 3 skip skip 4096 Dec 17 12:52 Test/
skip@Dell-5510:~/localref/nexus_charger_led$
skip@Dell-5510:~/localref/nexus_charger_led$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=22.04
DISTRIB_CODENAME=jammy
DISTRIB_DESCRIPTION="Ubuntu 22.04.1 LTS"
Version: 1.74.2
Commit: e8a3071ea4344d9d48ef8a4df2c097372b0c5161
Date: 2022-12-20T10:27:19.253Z
Electron: 19.1.8
Chromium: 102.0.5005.167
Node.js: 16.14.2
V8: 10.2.154.15-electron.0
OS: Linux x64 5.15.0-56-generic
Sandboxed: No
Target embedded device: N/A ... didn't get that far but it's an stm32g0
RTOS version: n/a
To Reproduce
Try to import ST project on Linux.
Expected behavior
Project imports correctly.
Type: Bug Report
Describe the bug
To Reproduce
Steps to reproduce the behavior:
Download your example project:
https://github.com/azure-rtos/getting-started
Open following folder:
STMicroelectronics/B-L4S5I-IOT01A
Wait for the integrated vcpkg to activate the project.
Build
Expected behavior
No errors
Code sample and logs
[build] [1/1294] Building C object lib/threadx/CMakeFiles/threadx.dir/common/src/tx_thread_info_get.c.obj [build] FAILED: lib/threadx/CMakeFiles/threadx.dir/common/src/tx_thread_info_get.c.obj [build] C:\Users\Abcdefghijk.Lmnopqrs\AppData\Roaming\Code\User\globalStorage\ms-vscode.vscode-embedded-tools\vcpkg\root\downloads\artifacts\vcpkg-ce-default\compilers.arm.gcc\2020.10.0\bin\arm-none-eabi-gcc.exe -DTX_INCLUDE_USER_DEFINE_FILE -IC:/code/getting-started/shared/lib/threadx/ports/cortex_m4/gnu/inc -Ilib/threadx/custom_inc -isystem C:/code/getting-started/shared/lib/threadx/common/inc -mthumb -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -g3 -ffunction-sections -fdata-sections -fno-strict-aliasing -fno-builtin -fno-common -Wall -Wshadow -Wdouble-promotion -Werror -Wno-unused-parameter -O0 -std=gnu99 -MD -MT lib/threadx/CMakeFiles/threadx.dir/common/src/tx_thread_info_get.c.obj -MF lib\threadx\CMakeFiles\threadx.dir\common\src\tx_thread_info_get.c.obj.d -o lib/threadx/CMakeFiles/threadx.dir/common/src/tx_thread_info_get.c.obj -c C:/code/getting-started/shared/lib/threadx/common/src/tx_thread_info_get.c [build] In file included from C:/code/getting-started/shared/lib/threadx/ports/cortex_m4/gnu/inc/tx_port.h:85, [build] from C:/code/getting-started/shared/lib/threadx/common/inc/tx_api.h:121, [build] from C:/code/getting-started/shared/lib/threadx/common/src/tx_thread_info_get.c:28: [build] c:\users\Abcdefghijk.Lmnopqrs\appdata\roaming\code\user\globalstorage\ms-vscode.vscode-embedded-tools\vcpkg\root\downloads\artifacts\vcpkg-ce-default\compilers.arm.gcc\2020.10.0\arm-none-eabi\include\stdlib.h:10:10: fatal error: machine/ieeefp.h: No such file or directory [build] 10 | #include <machine/ieeefp.h> [build] | ^~~~~~~~~~~~~~~~~~ [build] compilation terminated.
Additional context
Too long file path?
C:\Users\Abcdefghijk.Lmnopqrs\AppData\Roaming\Code\User\globalStorage\ms-vscode.vscode-embedded-tools\vcpkg\root\downloads\artifacts\vcpkg-ce-default\compilers.arm.gcc\2020.10.0\arm-none-eabi\include\machine\ieeefp.h
Already mention it in the issue microsoft/vcpkg#29815 , but it should be a new issue.
Possible solution: enable to move the vcpkg root directory
Placing a breakpoint somewhere in the code seems to halt the microcontroller, GDB reporting the following in the debug console tab:
ST-LINK_gdbserver: Received Ctrl-C from the client
ST-LINK_gdbserver: Device not halted(0), performing Ctrl-C
ST-LINK_gdbserver: GDB session, device event: 4
ST-LINK_gdbserver: Device halted
ST-LINK_gdbserver: ST-LINK device status: HALT_MODE
ST-LINK_gdbserver: GDB session, device event: 0
VSCode displays the error like this:
Resuming the program works, and the breakpoint is actually applied and reached by the program execution as expected, regardless of all of the warnings and errors displayed when it is set up.
Type: Feature Request
It would be nice to have a Serial monitor that can connect to a TCP/IP pipe and perform a 2 way communication over the network. This would help people doing remote debugging.
Type: Feature Request
Currently the st-project.cmake generated from an stm32cubeide .cproject does not take into account any excluded files.|
These files can be found in the .cproject under
<sourceEntries>
<entry excluding="file1|file2|folderpath" />
</sourceEntries>
Type: Bug Report
Describe the bug
Hello! At the final make step:
[build] [50/50] Linking C executable prj_upm_01.elf
I get an error:
[build] FAILED: prj_upm_01.elf
....
[build] arm-none-eabi-gcc.exe: error: ../../libSTM32F4XX.a: No such file or directory
[build] arm-none-eabi-gcc.exe: error: ../../libkernel_m4f.a: No such file or directory
[build] arm-none-eabi-gcc.exe: error: ../../libmodbus_rtu_m4f.a: No such file or directory
[build] arm-none-eabi-gcc.exe: error: ../../libuip_m4f.a: No such file or directory
[build] arm-none-eabi-gcc.exe: error: ../../libIQmathLib-cm4f.a: No such file or directory
[proc] The command: c:\Users\Ivan\AppData\Roaming\Code\User\globalStorage\ms-vscode.vscode-embedded-tools\vcpkg\root\downloads\artifacts\vcpkg-ce-default\tools.kitware.cmake\3.20.1\bin\cmake.EXE --build C:/mexbiosdevelopmentstudio_ll_stm32cubeide/.../Libraries/STM32F4XX/prj_upm_01/build/debug/build --target prj_upm_01 exited with code: 1
[build] ninja: build stopped: subcommand failed.
[build] Build finished with exit code 1
Project in Cube IDE makes fine, somehow extension can't find those static libs. Any ideas?
Cproject file in attachments (I couldn't download .cproject, so it in txt format)
Type: Feature Request
Currently the extension only supports viewing zephyr threads, can it support viewing other objects in zephyr?
Type: Feature Request
Please display the contents of the peripherals side view in proper columns for register name, value, address, access (r/w) and description and give the user the option to sort the columns and adjust their width.
This project seems very promising, but it's not clear if it's heavily developed or not.
Moreover it's not clear if either the community can contribute or it's developed only by MS.
Is it possible to share a roadmap for the development?
Thanks
I didn't find a detailed usage of the tool. But I found a configuration using OpenOCD in issues #3. I tried modifying the configuration to use JLinkGDBServer and the tool seems to work, but I can't control the debug operation.
{
"name": "Launch",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceFolder}/build/demo743.elf",
"cwd": "${workspaceFolder}",
"MIMode": "gdb",
"miDebuggerPath": "C:/GNU Tools Arm Embedded/7 2018-q2-update/bin/arm-none-eabi-gdb.exe",
"miDebuggerServerAddress": "localhost:2331",
"debugServerPath": "C:/Program Files (x86)/SEGGER/JLink/JLinkGDBServerCL.exe",
"debugServerArgs": "-if SWD -device STM32H743II",
"svdPath": "${workspaceFolder}/STM32H743x.svd",
"stopAtConnect": true
}
Can you tell me if the tool does not support JLinkGDBServer or how should I modify the configuration?
Thanks!
Pop-up error window Could not find path to "arm-none-eabi-gdb". Ensure STM32CubeIDE is installed.
Type: Feature Request
Is it possible to use this extension in tandem with cortex-debug https://github.com/Marus/cortex-debug? Cortex debug offers a lot of features im not seeing this tool offering, like RTT output, logging, and plotting. I would like to use this tools FreeRTOS viewer in tandem with cortex-debug.
Maybe It is only me or I am doing something wrong but while I am trying to open STM32 VS Code Extention, I am getting following error:
Cannot activate the 'STM32 VS Code Extension' extension because it depends on the 'Embedded Tools' extension, which is not loaded. Would you like to reload the window to load the extension?
Reloading did not solved the problem.
Extentions are working without problem at local. Having trouble on WSL only.
I checked that embedded tools extension is installed in wsl and it is enabled.
I couldn't find any info about wsl support at market place or at any documentation. Maybe this extention is not wsl supported.
Can you please help me how to make it work on WSL?
Type: Feature Request
It would be great if there was a setting for this extension to allow us to use a custom path to STM32CubeIDE install location.
I've had to go through and completely uninstall my existing STM32CubeIDE installation and re-install it in the 'default location' because this extension kept on throwing an error and preventing me from running the new (& excellent) STM32 VS Code Extension
.
It would also be useful if we could make it more obvious that this extension is responsible for the following VSCode error
window popup:
Could not find path to "arm-none-eabi-gdb". Ensure STM32CubeIDE is installed.
As the error popup simply takes you to launch.json
, but gives zero indication about which tool is unable to locate arm-none-eabi-gdb
.
Type: Bug Report
The FreeRTOS tasks of my program are not visible in the Embedded Tools RTOS viewer tab. First, after downloading the program, the tasks list is empty, which is fine since the scheduler has not started yet.
Then, after running the program and pausing it a while after the scheduler has been started, the task list displays the error message "An error occurred while loading details. Make sure the debugger is paused and try again".
My program runs on an STM32WB55 and I'm using the IAR C-SPY debugger with the IAR C-SPY Debug extension for VS code and a STLINK-V3MINI debug probe.
This could also be an issue of the IAR C-SPY Debug extension.
I see that MS (together with ST) did a great job creating a way to import STCube projects into VSCode.
I'd like having the same feature for Keil uVision .projx projects.
Is there someone else interested in this feature?
The CMakeTools extension is scanning for kits on startup of any CMake project I open in VS Code. This scanning is interfering with proper configuration of the project I opened. I have to wait for the scan to complete and then clean reconfigure. It is unreasonable to think that I have installed a compiler in the time I closed one project and opened another.
Please place some limit on how often kits are scanned for, daily or weekly seems more appropriate. It also does not seem like something that needs to be done on startup if I already have kits configured. This would be far better as a background task.
No response
No response
No response
Type: Bug Report
Describe the bug
Plugin does not detect STM32CubeIDE but ide was installed. Additionally I cannot select .cproject file - possibility for selecting this file is disabled.
Files excluded in .cproject (<entry excluding="foo.c"|"bar.c">) are still included in generated st-project.cmake
Type: Bug Report
Describe the bug
I created a simple test project with STM32CubeMX, no code was added to the generated project.
Then, the project was loaded using the STM32 VSCode Extension v1.0.0, the load failed with the following output:
`
Using vcpkg executable at "c:\Users\sidpr.vscode\extensions\ms-vscode.vscode-embedded-tools-0.6.0-win32-x64\assets\platform\win32-x64\vcpkg.exe".
Using VCPKG_ROOT at "c:\Users\sidpr\AppData\Roaming\Code\User\globalStorage\ms-vscode.vscode-embedded-tools\vcpkg\root".
Activating environment at "d:\DataRoot\Projects\MorningClock2\MorningClock_v3_stm32g070KBT\vcpkg-configuration.json".
Version of vcpkg used to create VCPKG_ROOT: "2023-01-24-8a88d63f241d391772fbde69af9cab96c3c64c75".
Running vcpkg with arguments ["version"].
vcpkg package management program version 2023-01-24-8a88d63f241d391772fbde69af9cab96c3c64c75
See LICENSE.txt for license information.
Bundled version of vcpkg: "2023-01-24-8a88d63f241d391772fbde69af9cab96c3c64c75".
Running vcpkg with arguments ["activate","--project","d:\DataRoot\Projects\MorningClock2\MorningClock_v3_stm32g070KBT","--json","C:\Users\sidpr\AppData\Local\Temp\683d8a9626f4c240dfe9f4dd00dd0172"].
warning: vcpkg-ce ('configure environment') is experimental and may change at any time.
read_contents("C:\Users\sidpr\AppData\Roaming\Code\User\globalStorage\ms-vscode.vscode-embedded-tools\vcpkg\root\scripts\vcpkgTools.xml"): no such file or directory
Failed with exit code "1".
Failed to activate environment at "d:\DataRoot\Projects\MorningClock2\MorningClock_v3_stm32g070KBT\vcpkg-configuration.json".`
Allow the sorting of the peripheral registers and the register bit fields by address in addition to sorting by name. Sorting by name may be confusing if one looks a the MCU reference manual.
Type: Feature Request
Type: Bug Report
Description
In AzureRTOS, when calling either tx_thread_priority_change or tx_thread_sleep the RTOS Viewer stops being able to get thread information, instead showing "An error occurred while loading details. Make sure the debugger is paused then try again" until the system is restarted, at which point it is again able to see thread information.
In tx_thread_priority_change the specific line that causes the issue is:
thread_ptr -> tx_thread_state = TX_PRIORITY_CHANGE;
I am consistently able to see information in the view before, but not after running this line.
In tx_thread_sleep the bug is inconsistent, sometimes resulting in an error but sometimes working as intended.
After this point until I restart only the "Byte Tool" view is working as intended.
To Reproduce
Expected behavior
The RTOS Viewer continues to display information after a priority change or sleep.
Note: launch.json has been modified to hide the cwd and executable.
launch.json.txt
I added a couple of .c and .h files in a newly created folder, as a custom library, at the same level with Core
folder. When running the Create project from ST project
command again, the source files are picked up and added to target_sources
but the target_include_directories
is not updated accordingly, so the build fails. I managed to fix this by creating a separate .cmake
file with a function that includes these directory and add the call to that function in CMakeLists.txt
.
Would it be possible to update target_include_directories
in the st-project.cmake
file as well? Or is there a better way of handling such cases?
When generating Touchgfx projects for dual core boards such as STM32H745i disco, the .cproject file for the CM7 processor contains include paths of the form
<listOptionValue builtIn="false" value=""${workspace_loc:/Drivers/BSP/Components/Common}""/>
These end up in st-project,cmake as "$<$<AND:$<CONFIG:Debug>,$<COMPILE_LANGUAGE:ASM>>:${PROJECT_SOURCE_DIR}/build\\${workspace_loc:\\Drivers\\BSP\\Components\\Common}>"
which is a syntax error.
Now, it is not clear why the STM tools add the include path, it seems completely unnecessary as the .cproject also contains the include path
"../../../Drivers/BSP/Components/Common"/>
which is the same. I delete the offending lines from st-project.cmake and everything works, but after every modification in Touchgfx they show up again which quickly gets old ;-)
Generating the "Blank UI" example for STM32H745i disco and importing STM32CubeIDE\CM7\.cproject
into VS Code reproduces the error. There is no problem with single core boards, only dual core ones.
Type: Feature Request
Append path "/opt/ST/STM32CubeCLT/GNU-tools-for-STM32/bin/" into template file gcc-arm-none-eabi.cmake.
It's default installation path for STM32CubeCLT on MacOS.
Type: Bug Report
Describe the bug
When debugging with Cortex-Debug the RTOS Viewer does not load the 'Threads' details. Some communication is working, as I can see Cortex-Debug is receiving the thread names to display in the Call Stack, however the RTOS Viewer fails to load with "An error occurred while loading details. Make sure the debugger is paused and try again."
I'll note that when I view other elements such as Mutexes/Queues/Timers/etc the view loads correctly and I can see the expected output. Switching the view back to Threads once again gives the same error.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
RTOS Viewer successfully loads the Threads view.
Code sample and logs
launch.json
settings:{
"version": "0.2.0",
"configurations": [
{
"name": "Build & Debug Elf",
"cwd": "${workspaceRoot}",
"executable": "${workspaceFolder}/build/debug/<REDACTED_FILENAME>.elf",
"request": "launch",
"type": "cortex-debug",
"servertype": "jlink",
"interface": "swd",
"device": "STM32F407ZG",
"preLaunchTask": "buildScons",
"rttConfig": {
"enabled": true,
"address": "auto",
"decoders": [
{
"port": 0,
"type": "console"
}
]
},
"rtos": "Azure",
"svdPath": "${workspaceFolder}/library/mcal/bsp/STM32F4xxxx/DeviceDefinitions/STM32F407.svd"
}
]
}
Any help is greatly appreciated :)
Type: Feature Request
While we can view running threads with this extension, it would be great to view freeRTOS running timers too.
Type: Bug Report
Describe the bug
To Reproduce
Steps to reproduce the behavior:
Expected behavior
It doesn't happen again when I disable Embedded Tools.
Code sample and logs
Undefined command: "_tx_thread_created_ptr". Try "help".
Undefined command: "pxReadyTasksLists". Try "help".
Undefined command: "_kernel_thread_info_offsets". Try "help".
Screenshots
Additional context
I am trying to import my ST project into VS Code, I have followed all the steps in the blog I saw on Facebook, however I am getting that error when I run the debug command
I am not entirely sure what the issue is, but I am hoping that you can give me some pointers. My code is building successfully in CubeIDE
cproject.zip
st-project.zip
I have attached my cmake file and also my cproject file.
Hey,
In our team we are working with the MBED framework for embedded development.
MBED is coupled with RTX RTOS, and we would love to work with your extension, which as stated currently supporting FreeRTOS and AzureRTOS only.
Many thanks
Type: Bug Report
OS and Version: Mac os 12.5.1
VS Code Version: 1.71
Embedded Tools Extension Version:v0.3.220909001
Target embedded device: Nucleo F446RE
Description:
When I launch program, I get this error. Next I get information: "ERROR: Unable to start debugging. No process is associated with this object." I'm so confused, because I can open arm-none-eabi-gdb file.
Type: Feature Request
Hello! I noticed that the extension currently has RTOS data viewer for Azure RTOS & FreeRTOS. It would be great to see support for the Zephyr RTOS as well. It is a very active open source RTOS under the Linux Foundation, with over 1K contributors, and increasingly growing in popularity. FWIW, OpenOCD has supported Zephyr since last year.
I'm not sure what's needed in order to add Zephyr support, but I'm happy to connect anyone from the MSFT team with the relevant folks on the Zephyr side.
Type: Bug Report
Describe the bug
Several issues with memory views/windows launched from the RTOS view. Most of them are probably inherent to core VSCode, but I wanted to highlight some that can be perhaps be addressed (or forwarded) here.
To Reproduce
Steps to reproduce the behavior:
cppdbg
"logging": {
"engineLogging": true,
...
},
1: (480376) <-1171-data-read-memory-bytes 0x2000657c 131072
Expected behavior
Code sample and logs
launch.json
Screenshots
Additional context
I can duplicate all this with the Cortex-Debug debugger as well.
Maybe I am doing something wrong.
Type: Bug Report
system_stm32h7xx_dualcore_boot_cm4_cm7.c doesn't get added to st-project.cmake
Type: Bug Report
Describe the bug
In windows, extension will produce st-project.cmake using \\
. Like :
target_sources(
${TARGET_NAME} PRIVATE
"Core\\Src\\freertos.c"
"Core\\Src\\gpio.c"
"Core\\Src\\i2c.c"
"Core\\Src\\main.c"
"Core\\Src\\rng.c"
"Core\\Src\\spi.c"
"Core\\Src\\stm32f4xx_hal_msp.c"
"Core\\Src\\stm32f4xx_hal_timebase_tim.c"
"Core\\Src\\stm32f4xx_it.c"
"Core\\Src\\syscalls.c"
"Core\\Src\\sysmem.c"
"Core\\Src\\system_stm32f4xx.c"
"Core\\Src\\tim.c"
"Core\\Startup\\startup_stm32f407zetx.s"
"Middlewares\\ST\\STM32_USB_Device_Library\\Class\\CDC\\Src\\usbd_cdc.c"
"Middlewares\\ST\\STM32_USB_Device_Library\\Core\\Src\\usbd_core.c"
"Middlewares\\ST\\STM32_USB_Device_Library\\Core\\Src\\usbd_ctlreq.c"
"Middlewares\\ST\\STM32_USB_Device_Library\\Core\\Src\\usbd_ioreq.c"
"Middlewares\\Third_Party\\FreeRTOS\\Source\\CMSIS_RTOS_V2\\cmsis_os2.c"
"Middlewares\\Third_Party\\FreeRTOS\\Source\\croutine.c"
"Middlewares\\Third_Party\\FreeRTOS\\Source\\event_groups.c"
"Middlewares\\Third_Party\\FreeRTOS\\Source\\list.c"
"Middlewares\\Third_Party\\FreeRTOS\\Source\\portable\\GCC\\ARM_CM4F\\port.c"
"Middlewares\\Third_Party\\FreeRTOS\\Source\\portable\\MemMang\\heap_4.c"
"Middlewares\\Third_Party\\FreeRTOS\\Source\\queue.c"
"Middlewares\\Third_Party\\FreeRTOS\\Source\\stream_buffer.c"
"Middlewares\\Third_Party\\FreeRTOS\\Source\\tasks.c"
"Middlewares\\Third_Party\\FreeRTOS\\Source\\timers.c"
"Drivers\\STM32F4xx_HAL_Driver\\Src\\stm32f4xx_hal_cortex.c"
"Drivers\\STM32F4xx_HAL_Driver\\Src\\stm32f4xx_hal_dma_ex.c"
"Drivers\\STM32F4xx_HAL_Driver\\Src\\stm32f4xx_hal_dma.c"
"Drivers\\STM32F4xx_HAL_Driver\\Src\\stm32f4xx_hal_exti.c"
"Drivers\\STM32F4xx_HAL_Driver\\Src\\stm32f4xx_hal_flash_ex.c"
"Drivers\\STM32F4xx_HAL_Driver\\Src\\stm32f4xx_hal_flash_ramfunc.c"
"Drivers\\STM32F4xx_HAL_Driver\\Src\\stm32f4xx_hal_flash.c"
"Drivers\\STM32F4xx_HAL_Driver\\Src\\stm32f4xx_hal_gpio.c"
"Drivers\\STM32F4xx_HAL_Driver\\Src\\stm32f4xx_hal_i2c_ex.c"
"Drivers\\STM32F4xx_HAL_Driver\\Src\\stm32f4xx_hal_i2c.c"
"Drivers\\STM32F4xx_HAL_Driver\\Src\\stm32f4xx_hal_pcd_ex.c"
"Drivers\\STM32F4xx_HAL_Driver\\Src\\stm32f4xx_hal_pcd.c"
"Drivers\\STM32F4xx_HAL_Driver\\Src\\stm32f4xx_hal_pwr_ex.c"
"Drivers\\STM32F4xx_HAL_Driver\\Src\\stm32f4xx_hal_pwr.c"
"Drivers\\STM32F4xx_HAL_Driver\\Src\\stm32f4xx_hal_rcc_ex.c"
"Drivers\\STM32F4xx_HAL_Driver\\Src\\stm32f4xx_hal_rcc.c"
"Drivers\\STM32F4xx_HAL_Driver\\Src\\stm32f4xx_hal_rng.c"
"Drivers\\STM32F4xx_HAL_Driver\\Src\\stm32f4xx_hal_spi.c"
"Drivers\\STM32F4xx_HAL_Driver\\Src\\stm32f4xx_hal_tim_ex.c"
"Drivers\\STM32F4xx_HAL_Driver\\Src\\stm32f4xx_hal_tim.c"
"Drivers\\STM32F4xx_HAL_Driver\\Src\\stm32f4xx_hal.c"
"Drivers\\STM32F4xx_HAL_Driver\\Src\\stm32f4xx_ll_usb.c"
"USB_DEVICE\\App\\usb_device.c"
"USB_DEVICE\\App\\usbd_cdc_if.c"
"USB_DEVICE\\App\\usbd_desc.c"
"USB_DEVICE\\Target\\usbd_conf.c"
)
But on macos, \\
causes error in CMake.
[build] CMake Error at CMakeLists.txt:19 (add_executable):
[build] Cannot find source file:
[build]
[build] Core/Src/Core\Src\freertos.c
If I replace "\\" to "/", everything is ok.
I can't find a documentation or user guide on this extension anywhere.
I tried to use it with some Zephyr samples (the canonical blinky) but nothing showed up (no relative buttons on the sidebar, no associated command when pressing Ctrl+Shift+P, no information on the bottom status bar)
I'm surely missing something
My setup:
Windows 10
C/C++ extension installed
All Zephyr stuff (zephyr base, SDK, west tool and python packages) installed
An ST Nucleo F401RE connected with drivers installed
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.