Compiling Teensy Sketches with VisualCode (Win10)

Hello,

I notice a strange behaviour of VSC today, not related to VT. Maybe someone have the solution :

When I use Shift-Alt-F to intend code, it wipe the code all out. Previously it work OK. Does any one have this behaviour.
I remind that there was an update recently of VSC C++ plug-in. Maybe is this related to it.

Thank you,
Manu

Hum, hum, it's look like it's related to only one of my file. I have to inquire about this !
 
Last edited:
Actually, they had some changes in the auto format feature in the current insider version.

Add the vcFormat option to C_Cpp.formatting (with C_Cpp.vcFormat.* options) to enable VS-style formatting (instead of clang-format formatting). #657

There also are a couple of new issues logged regarding formatting logged: https://github.com/microsoft/vscode-cpptools/issues


I'm using the autoformater quite heavily but didn't notice any strange things so far. But, I'm using clang_format files to define the formatting style maybe that makes a difference.
 
It's odd. If I compile the project it's OK. So I don't think it's a typo error in the main.cpp file.
But if I intend the main.cpp file all goes wrong and then I can't compile anymore...

I'll wait a fix from cpptool plugin :-(
 
In VT, I notice that when you generate "c_cpp_properties.json" you use different formats for files paths.

One is (for example) :
"C:\\Program Files (x86)\\Arduino\\hardware\\teensy\\avr\\cores\\teensy3",

Another is (need to be manually edited to operate":
"D:/Mes%20documents/Arduino/libraries/TeensyTimerTool/**",

Where it can be :
"D:\\Mes documents\\Arduino\\libraries\\TeensyTimerTool\\**",
 
Yes, that's true. Originally I started with backslashes as path separator. But since vsCode also accepts a forward slash as separator I switched to "/". Obviously I didn't yet switch all occurrences. But as mentioned vsCode accepts both so this is just cosmetic.

Regarding your issue with the vsCode auto formatter. Just to make sure: you didn't install any formatting extension which might generate the problem?

I just checked my installation: I'm running the c/c++ extension v0.30.0-insiders.

In the settings I changed the setting:
"C_Cpp: Clang_format_style" to file. With this setting the formatter looks for a file named '.clang-format' in your project base folder (don't miss the starting dot) and uses it for the formatting style. In the .clang-format file you can set your prefered formatting style in deep detail. The available options are documented here: https://clang.llvm.org/docs/ClangFormatStyleOptions.html

If you want to try, I zipped and attached my .clang-format to the post. Maybe this tames your broken formatter.
 

Attachments

  • formatfile.zip
    503 bytes · Views: 67
One have to change "C_Cpp.clang_format_style" to "Emulated Visual Studio" (set to 'file' by default)
Perfect, here it currently it works without problems. Good to know how to fix it if the problem shows up later....

I reread your question and found that I overlooked your issue with the spaces in c/c++properties.json.

Another is (need to be manually edited to operate":
"D:/Mes%20documents/Arduino/libraries/TeensyTimerTool/**",

Does that mean that the original setting written by vsTeensy didn't work and you had to manually change it? Or did you just try to "translate" it to the backslash notation?
 
PIO is nice of course. I'm quite sure that PIO will be the dominant development system for the Arduino world sooner or later. But it just doesn't fit my needs. And presumably it doesn't fit the needs of those few using it besides me.

why reinventing this, did I miss something there ?
This was developed at a time when building for Teensies with PIO was, lets say, interesting :)

Anyway, for me the main difference between PIO and vsTeensy is its footprint. To me, PIO feels like a big oil tanker while vsTeensy is more like a small and easy to steer motor boat. Nothing to install, it generates stand alone projects, depending on gnu make and gcc only. It isn't needed at all once the project is generated and I can easily adopt it to my changing needs.

Always good if there are options...
 
Also using PlatformIO, (which also has infrastructure for unit tests development BTW), why reinventing this, did I miss something there ?
https://platformio.org/install/ide?install=vscode

Yes, IMO, you are missing a fundamental point.
VisualTeensy generates a Makefile environment, that you can easily modify, adapt to your own make preferences. I do that continuously. Yes, @luni adapts code to user desires, but what remains relevant is a functioning make file, some json file.
Now, Platformio was introduced in2015 and VisualTeensy in 2018, because a lot of us wanted to use Makefiles. The fact that VisualTeensy is still popular should be encouraging for @luni.
Finally, a lot of code presented in this forum is grown out of personal interest but shared with others.
 
Perfect, here it currently it works without problems. Good to know how to fix it if the problem shows up later....

I reread your question and found that I overlooked your issue with the spaces in c/c++properties.json.



Does that mean that the original setting written by vsTeensy didn't work and you had to manually change it? Or did you just try to "translate" it to the backslash notation?

It mean that "Mes%20documents" need to become "Mes documents" to operate without warning at compilation.
If I don't change this, the project can still compil, but claim for an error about teensytimertool location.

So I have to change the path to either :
"D:/Mes documents/Arduino/libraries/TeensyTimerTool/**",
or
"D:\\Mes documents\\Arduino\\libraries\\TeensyTimerTool\\** ",

so VSC is happy and compile without warning.
 
PIO is nice of course. I'm quite sure that PIO will be the dominant development system for the Arduino world sooner or later. But it just doesn't fit my needs.
You should probably try it now, it is updated regularly and very powerful, what specifically does not fit your need?

PIO This was developed at a time when building for Teensies with PIO was, lets say, interesting :)
Now that explains better why you started this, but I think new users should be aware this is fairly ancient material then and look first at PIO.

Anyway, for me the main difference between PIO and vsTeensy is its footprint.
You may miss the important points there though, this is a *consolidated*, powerful yet simple to use IDE, that allows you to develop for various platforms and languages all in one place with a very advanced concept of extensions.
It is actually way simpler to use IMO than VS2019 as an example.

Anyway, thanks for the feedback.
 
Yes, IMO, you are missing a fundamental point.
VisualTeensy generates a Makefile environment, that you can easily modify, adapt to your own make preferences. I do that continuously. Yes, @luni adapts code to user desires, but what remains relevant is a functioning make file, some json file.
Now, Platformio was introduced in2015 and VisualTeensy in 2018, because a lot of us wanted to use Makefiles. The fact that VisualTeensy is still popular should be encouraging for @luni.

Makefiles are evil to me, what do you specifically need to change all the time directly in the Makefile that you could not do elsewhere ?
I would encourage luni to contribute to bigger tools in the community, and by all means also support that tool if it still has afficionados.
 
It mean that "Mes%20documents" need to become "Mes documents" to operate without warning at compilation.
If I don't change this, the project can still compil, but claim for an error about teensytimertool location.

So I have to change the path to either :
"D:/Mes documents/Arduino/libraries/TeensyTimerTool/**",
or
"D:\\Mes documents\\Arduino\\libraries\\TeensyTimerTool\\** ",

so VSC is happy and compile without warning.

Thanks for spotting that. Since my path doesn't contain spaces I never stumbled over it.
I just released 0.9.8.2 on GitHub which should fix it. https://github.com/luni64/VisualTeensy/releases/
 
Last edited:
Tested OK today,
Thank you Luni.

Did you ever play with GIT function in VScode ? I can't make it operate with my Synology NAS GIT server. Does it need SSH or only user/password ?
 
luni,

Thanks for Visual Teensy, great stuff for managing the libraries.

First, I download 9.8.2, but application states its 9.8.1 at the top. Hopefully it's not me.
But my issue is that Teensy Loader won't download the hex file from VSCode.

I get this error in VSCode

Code:
User code built and linked to libraries 

[HEX] .vsteensy/build/T41_POE.hex 

[LST] .vsteensy/build/T41_POE.lst
Sucessfully built project 

Teensy Loader could not find the file T41_POE
quitmake: *** [makefile:164: upload] Error 1
The terminal process "C:\windows\System32\WindowsPowerShell\v1.0\powershell.exe -Command C:/Users/pc/GitHub/VisualTeensy_v0_9_8_2/make.exe upload -j -Otarget" terminated with exit code: 1.

Then in Teensy Loader verbose, I'm seeing the path\name with an extra comma + space added in front of the file name, and perhaps a slash change?

Code:
16:17:45.063 (post_compile 9): Begin, version=1.53, high-res time
16:17:45.065 (loader): remote connection 3536 opened
16:17:45.065 (post_compile 9): Sending command: comment: Teensyduino 1.53 - WINDOWS (teensy_post_compile)
16:17:45.066 (loader): remote cmd from 3536: "comment: Teensyduino 1.53 - WINDOWS (teensy_post_compile)"
16:17:45.066 (loader): remote cmd from 3536: "status"
16:17:45.074 (post_compile 9): Status: 0, 0, 0, 5, 2, 0, .vsteensy/build\, T41_POE.hex
16:17:45.074 (post_compile 9): Sending command: dir:.vsteensy/build\
16:17:45.074 (loader): remote cmd from 3536: "dir:.vsteensy/build\"
16:17:45.075 (loader): remote cmd from 3536: "file:T41_POE.hex"
16:17:45.076 (post_compile 9): Sending command: file:T41_POE.hex
16:17:45.078 (post_compile 9): Teensy Loader could not find the file T41_POE
16:17:45.078 (post_compile 9): quit
16:17:45.079 (loader): remote connection 3536 closed

If I just go to teensy loader, pick the hex file and upload, it works. The file is in the right folder, with the right name.

Do you know where the comma+space are coming from?
 
That's interesting. I don't use the loader much (I prefer TyCommander). So, it might well be that a bug sneaked into the last release. If you post the generated makefile I can have a look.


First, I download 9.8.2, but application states its 9.8.1 at the top. Hopefully it's not me.
No, I simply forgot to update the version
 
Last edited:
I just gave it a quick try. Works without issue here.

Can you please also remove the @ from the upload command in the makefile to see what it actually spits out:

Anmerkung 2020-09-02 070907.jpg


I get a perfectly normal
Code:
"C:\Arduino\arduino-1.8.12\hardware\tools/teensy_post_compile" -test -file=T41_POE -path=.vsteensy/build -tools="C:\Arduino\arduino-1.8.12\hardware\tools" -board=TEENSY41 -reboot
 
Here is the makefile, after I removed the @ on line 164

Code:
#******************************************************************************
# Generated by VisualTeensy (https://github.com/luni64/VisualTeensy)
#
# Board              Teensy 4.1
# USB Type           Serial
# CPU Speed          600 MHz
# Optimize           Faster
# Keyboard Layout    US English
#
# 9/1/2020 4:09 PM
#******************************************************************************
SHELL            := cmd.exe
export SHELL

TARGET_NAME      := T41_POECan
BOARD_ID         := TEENSY41

MCU              := imxrt1062

LIBS_SHARED_BASE := C:\Users\pc\OneDrive\GitHub\Arduino\libraries
LIBS_SHARED      := 

LIBS_LOCAL_BASE  := lib
LIBS_LOCAL       := Adafruit_BusIO Adafruit_GFX_Library Adafruit_SSD1306 FlexCAN_T4 FNET NativeEthernet QuadEncoder SD SPI Time U8g2 Wire 

CORE_BASE        := C:\PROGRA~2\Arduino\hardware\teensy\avr\cores\teensy4
GCC_BASE         := C:\PROGRA~2\Arduino\hardware\tools\arm\bin
UPL_PJRC_B       := C:\PROGRA~2\Arduino\hardware\tools

#******************************************************************************
# Flags and Defines
#******************************************************************************
FLAGS_CPU   := -mthumb -mcpu=cortex-m7 -mfloat-abi=hard -mfpu=fpv5-d16
FLAGS_OPT   := -O2
FLAGS_COM   := -g -Wall -ffunction-sections -fdata-sections -nostdlib -MMD
FLAGS_LSP   := 

FLAGS_CPP   := -std=gnu++14 -fno-exceptions -fpermissive -fno-rtti -fno-threadsafe-statics -felide-constructors -Wno-error=narrowing
FLAGS_C     := 
FLAGS_S     := -x assembler-with-cpp
FLAGS_LD    := -Wl,--print-memory-usage,--gc-sections,--relax,--defsym=__rtc_localtime=$(shell powershell [int](Get-Date -UFormat +%s)[0]) -T$(CORE_BASE)/imxrt1062_t41.ld

LIBS        := -larm_cortexM7lfsp_math -lm -lstdc++

DEFINES     := -D__IMXRT1062__ -DTEENSYDUINO=153 -DARDUINO_TEENSY41 -DARDUINO=10807
DEFINES     += -DF_CPU=600000000 -DUSB_SERIAL -DLAYOUT_US_ENGLISH

CPP_FLAGS   := $(FLAGS_CPU) $(FLAGS_OPT) $(FLAGS_COM) $(DEFINES) $(FLAGS_CPP)
C_FLAGS     := $(FLAGS_CPU) $(FLAGS_OPT) $(FLAGS_COM) $(DEFINES) $(FLAGS_C)
S_FLAGS     := $(FLAGS_CPU) $(FLAGS_OPT) $(FLAGS_COM) $(DEFINES) $(FLAGS_S)
LD_FLAGS    := $(FLAGS_CPU) $(FLAGS_OPT) $(FLAGS_LSP) $(FLAGS_LD)
AR_FLAGS    := rcs

#******************************************************************************
# Colors
#******************************************************************************
COL_CORE    := [38;2;187;206;251m
COL_LIB     := [38;2;206;244;253m
COL_SRC     := [38;2;100;149;237m
COL_LINK    := [38;2;255;255;202m
COL_ERR     := [38;2;255;159;159m
COL_OK      := [38;2;179;255;179m
COL_RESET   := [0m

#******************************************************************************
# Folders and Files
#******************************************************************************
USR_SRC     := src
LIB_SRC     := lib
CORE_SRC    := $(CORE_BASE)

BIN         := .vsteensy/build
USR_BIN     := $(BIN)/src
CORE_BIN    := $(BIN)/core
LIB_BIN     := $(BIN)/lib
CORE_LIB    := $(BIN)/core.a
TARGET_HEX  := $(BIN)/$(TARGET_NAME).hex
TARGET_ELF  := $(BIN)/$(TARGET_NAME).elf
TARGET_LST  := $(BIN)/$(TARGET_NAME).lst

#******************************************************************************
# BINARIES
#******************************************************************************
CC          := $(GCC_BASE)/arm-none-eabi-gcc
CXX         := $(GCC_BASE)/arm-none-eabi-g++
AR          := $(GCC_BASE)/arm-none-eabi-gcc-ar
OBJCOPY     := $(GCC_BASE)/arm-none-eabi-objcopy
SIZE        := $(GCC_BASE)/arm-none-eabi-size
OBJDUMP     := $(GCC_BASE)/arm-none-eabi-objdump
UPL_PJRC    := "$(UPL_PJRC_B)/teensy_post_compile" -test -file=$(TARGET_NAME) -path=$(BIN) -tools="$(UPL_PJRC_B)" -board=$(BOARD_ID) -reboot
UPL_TYCMD   := $(UPL_TYCMD_B)/tyCommanderC upload $(TARGET_HEX) --autostart --wait --multi
UPL_CLICMD  := $(UPL_CLICMD_B)/teensy_loader_cli -mmcu=$(MCU) -v $(TARGET_HEX)
UPL_JLINK   := $(UPL_JLINK_B)/jlink -commanderscript .vsteensy/flash.jlink

#******************************************************************************
# Source and Include Files
#******************************************************************************
# Recursively create list of source and object files in USR_SRC and CORE_SRC
# and corresponding subdirectories.
# The function rwildcard is taken from http://stackoverflow.com/a/12959694)

rwildcard =$(wildcard $1$2) $(foreach d,$(wildcard $1*),$(call rwildcard,$d/,$2))

#User Sources -----------------------------------------------------------------
USR_C_FILES    := $(call rwildcard,$(USR_SRC)/,*.c)
USR_CPP_FILES  := $(call rwildcard,$(USR_SRC)/,*.cpp)
USR_S_FILES    := $(call rwildcard,$(USR_SRC)/,*.S)
USR_OBJ        := $(USR_S_FILES:$(USR_SRC)/%.S=$(USR_BIN)/%.o) $(USR_C_FILES:$(USR_SRC)/%.c=$(USR_BIN)/%.o) $(USR_CPP_FILES:$(USR_SRC)/%.cpp=$(USR_BIN)/%.o)

# Core library sources --------------------------------------------------------
CORE_CPP_FILES := $(call rwildcard,$(CORE_SRC)/,*.cpp)
CORE_C_FILES   := $(call rwildcard,$(CORE_SRC)/,*.c)
CORE_S_FILES   := $(call rwildcard,$(CORE_SRC)/,*.S)
CORE_OBJ       := $(CORE_S_FILES:$(CORE_SRC)/%.S=$(CORE_BIN)/%.o) $(CORE_C_FILES:$(CORE_SRC)/%.c=$(CORE_BIN)/%.o) $(CORE_CPP_FILES:$(CORE_SRC)/%.cpp=$(CORE_BIN)/%.o)


# User library sources  (see) https://github.com/arduino/arduino/wiki/arduino-ide-1.5:-library-specification
LIB_DIRS_SHARED  := $(foreach d, $(LIBS_SHARED), $(LIBS_SHARED_BASE)/$d/ $(LIBS_SHARED_BASE)/$d/utility/)  # base and /utility
LIB_DIRS_SHARED  += $(foreach d, $(LIBS_SHARED), $(LIBS_SHARED_BASE)/$d/src/ $(dir $(call rwildcard,$(LIBS_SHARED_BASE)/$d/src/,*/.)))                           # src and all subdirs of base

LIB_DIRS_LOCAL   := $(foreach d, $(LIBS_LOCAL), $(LIBS_LOCAL_BASE)/$d/ $(LIBS_LOCAL_BASE)/$d/utility/ )    # base and /utility
LIB_DIRS_LOCAL   += $(foreach d, $(LIBS_LOCAL), $(LIBS_LOCAL_BASE)/$d/src/ $(dir $(call rwildcard,$(LIBS_LOCAL_BASE)/$d/src/,*/.)))                             # src and all subdirs of base

LIB_CPP_SHARED  := $(foreach d, $(LIB_DIRS_SHARED),$(call wildcard,$d*.cpp))
LIB_C_SHARED    := $(foreach d, $(LIB_DIRS_SHARED),$(call wildcard,$d*.c))
LIB_S_SHARED    := $(foreach d, $(LIB_DIRS_SHARED),$(call wildcard,$d*.S))

LIB_CPP_LOCAL   := $(foreach d, $(LIB_DIRS_LOCAL),$(call wildcard,$d/*.cpp))
LIB_C_LOCAL     := $(foreach d, $(LIB_DIRS_LOCAL),$(call wildcard,$d/*.c))
LIB_S_LOCAL     := $(foreach d, $(LIB_DIRS_LOCAL),$(call wildcard,$d/*.S))

LIB_OBJ         := $(LIB_CPP_SHARED:$(LIBS_SHARED_BASE)/%.cpp=$(LIB_BIN)/%.o)  $(LIB_CPP_LOCAL:$(LIBS_LOCAL_BASE)/%.cpp=$(LIB_BIN)/%.o)
LIB_OBJ         += $(LIB_C_SHARED:$(LIBS_SHARED_BASE)/%.c=$(LIB_BIN)/%.o)  $(LIB_C_LOCAL:$(LIBS_LOCAL_BASE)/%.c=$(LIB_BIN)/%.o)
LIB_OBJ         += $(LIB_S_SHARED:$(LIBS_SHARED_BASE)/%.S=$(LIB_BIN)/%.o)  $(LIB_S_LOCAL:$(LIBS_LOCAL_BASE)/%.S=$(LIB_BIN)/%.o)

# Includes -------------------------------------------------------------
INCLUDE        := -I./$(USR_SRC) -I$(CORE_SRC)
INCLUDE        += $(foreach d, $(LIB_DIRS_SHARED), -I$d)
INCLUDE        += $(foreach d, $(LIB_DIRS_LOCAL), -I$d)

# Generate directories --------------------------------------------------------
DIRECTORIES :=  $(sort $(dir $(CORE_OBJ) $(USR_OBJ) $(LIB_OBJ)))
generateDirs := $(foreach d, $(DIRECTORIES), $(shell if not exist "$d" mkdir "$d"))

#$(info dirs: $(DIRECTORIES))

$(info$(COL_RESET))

#******************************************************************************
# Rules:
#******************************************************************************

.PHONY: directories all rebuild upload uploadTy uploadCLI clean cleanUser cleanCore


all:  $(TARGET_LST) $(TARGET_HEX)

rebuild: cleanUser all

clean:   cleanUser cleanCore cleanLib
	@echo $(COL_OK)cleaning done$(COL_RESET)

upload: all
	$(UPL_PJRC)

uploadTy: all
	@$(UPL_TYCMD)

uploadCLI: all
	@$(UPL_CLICMD)

uploadJLink: all
	@$(UPL_JLINK)


# Core library ----------------------------------------------------------------
$(CORE_BIN)/%.o: $(CORE_SRC)/%.S
	@echo $(COL_CORE)CORE [ASM] $(notdir $<) $(COL_ERR)
	@"$(CC)" $(S_FLAGS) $(INCLUDE) -o $@ -c $<

$(CORE_BIN)/%.o: $(CORE_SRC)/%.c
	@echo $(COL_CORE)CORE [CC]  $(notdir $<) $(COL_ERR)
	@"$(CC)" $(C_FLAGS) $(INCLUDE) -o $@ -c $<

$(CORE_BIN)/%.o: $(CORE_SRC)/%.cpp
	@echo $(COL_CORE)CORE [CPP] $(notdir $<) $(COL_ERR)
	@"$(CXX)" $(CPP_FLAGS) $(INCLUDE) -o $@ -c $<

$(CORE_LIB) : $(CORE_OBJ)
	@echo $(COL_LINK)CORE [AR]  $@ $(COL_ERR)
	@$(AR) $(AR_FLAGS) $@ $^
	@echo $(COL_OK)Teensy core built successfully &&echo. 

# Shared Libraries ------------------------------------------------------------
$(LIB_BIN)/%.o: $(LIBS_SHARED_BASE)/%.S
	@echo $(COL_LIB)LIB  [ASM] $(notdir $<) $(COL_ERR)
	@"$(CC)" $(S_FLAGS) $(INCLUDE) -o $@ -c $<

$(LIB_BIN)/%.o: $(LIBS_SHARED_BASE)/%.cpp
	@echo $(COL_LIB)LIB  [CPP] $(notdir $<) $(COL_ERR)
	@"$(CXX)" $(CPP_FLAGS) $(INCLUDE) -o $@ -c $<

$(LIB_BIN)/%.o: $(LIBS_SHARED_BASE)/%.c
	@echo $(COL_LIB)LIB  [CC]  $(notdir $<) $(COL_ERR)
	@"$(CC)" $(C_FLAGS) $(INCLUDE) -o $@ -c $<

# Local Libraries -------------------------------------------------------------
$(LIB_BIN)/%.o: $(LIBS_LOCAL_BASE)/%.S
	@echo $(COL_LIB)LIB  [ASM] $(notdir $<) $(COL_ERR)
	@"$(CC)" $(S_FLAGS) $(INCLUDE) -o $@ -c $<

$(LIB_BIN)/%.o: $(LIBS_LOCAL_BASE)/%.cpp
	@echo $(COL_LIB)LIB  [CPP] $(notdir $<) $(COL_ERR)
	@"$(CXX)" $(CPP_FLAGS) $(INCLUDE) -o $@ -c $<

$(LIB_BIN)/%.o: $(LIBS_LOCAL_BASE)/%.c
	@echo $(COL_LIB)LIB  [CC]  $(notdir $<) $(COL_ERR)
	@"$(CC)" $(C_FLAGS) $(INCLUDE) -o $@ -c $<

# Handle user sources ---------------------------------------------------------
$(USR_BIN)/%.o: $(USR_SRC)/%.S
	@echo $(COL_SRC)USER [ASM] $< $(COL_ERR)
	@"$(CC)" $(S_FLAGS) $(INCLUDE) -o $@ -c $< 

$(USR_BIN)/%.o: $(USR_SRC)/%.c
	@echo $(COL_SRC)USER [CC]  $(notdir $<) $(COL_ERR)
	@"$(CC)" $(C_FLAGS) $(INCLUDE) -o "$@" -c $<

$(USR_BIN)/%.o: $(USR_SRC)/%.cpp
	@echo $(COL_SRC)USER [CPP] $(notdir $<) $(COL_ERR)
	@"$(CXX)" $(CPP_FLAGS) $(INCLUDE) -o "$@" -c $<

# Linking ---------------------------------------------------------------------
$(TARGET_ELF): $(CORE_LIB) $(LIB_OBJ) $(USR_OBJ)
	@echo $(COL_LINK)
	@echo [LD]  $@ $(COL_ERR)
	@$(CC) $(LD_FLAGS) -o "$@" $(USR_OBJ) $(LIB_OBJ) $(CORE_LIB) $(LIBS)
	@echo $(COL_OK)User code built and linked to libraries &&echo.

%.lst: %.elf
	@echo $(COL_LINK)
	@echo [LST] $@ $(COL_ERR)
	@$(OBJDUMP) -d -S --demangle --no-show-raw-insn --syms "$<"  > "$@"	
	@echo $(COL_OK)Sucessfully built project$(COL_RESET) &&echo.

%.hex: %.elf
	@echo $(COL_LINK)[HEX] $@ 
#	@$(SIZE) "$<"
	@$(OBJCOPY) -O ihex -R.eeprom "$<" "$@"
	
	
# Cleaning --------------------------------------------------------------------
cleanUser:
	@echo $(COL_LINK)Cleaning user binaries...$(COL_RESET)
	@if exist $(USR_BIN) rd /s/q "$(USR_BIN)"
	@if exist "$(TARGET_LST)" del $(subst /,\,$(TARGET_LST))

cleanCore:
	@echo $(COL_LINK)Cleaning core binaries...$(COL_RESET)
	@if exist $(CORE_BIN) rd /s/q "$(CORE_BIN)"
	@if exist $(CORE_LIB) del  $(subst /,\,$(CORE_LIB))	

cleanLib:
	@echo $(COL_LINK)Cleaning user library binaries...$(COL_RESET)
	@if exist $(LIB_BIN) rd /s/q "$(LIB_BIN)"

# compiler generated dependency info ------------------------------------------
-include $(CORE_OBJ:.o=.d)
-include $(USR_OBJ:.o=.d)
-include $(LIB_OBJ:.o=.d)

clean & build, I get this
Code:
[LD]  .vsteensy/build/T41_POECan.elf
Memory region         Used Size  Region Size  %age Used
            ITCM:         96 KB       512 KB     18.75%
            DTCM:       67328 B       512 KB     12.84%
             RAM:       12416 B       512 KB      2.37%
           FLASH:      121800 B      7936 KB      1.50%
            ERAM:          0 GB        16 MB      0.00%
User code built and linked to libraries 

[HEX] .vsteensy/build/T41_POECan.hex 

[LST] .vsteensy/build/T41_POECan.lst
Sucessfully built project

Capture.PNG

Code:
"C:\PROGRA~2\Arduino\hardware\tools/teensy_post_compile" -test -file=T41_POECan -path=.vsteensy/build -tools="C:\PROGRA~2\Arduino\hardware\tools" -board=TEENSY41 -reboot
Teensy Loader could not find the file T41_POECan
quitmake: *** [makefile:164: upload] Error 1
The terminal process "C:\windows\System32\WindowsPowerShell\v1.0\powershell.exe -Command C:/Users/pc/OneDrive/GitHub/VisualTeensy_v0_9_8_2/make.exe upload -j -Otarget" terminated with exit code: 1.

Teensy Loader verbose
Code:
09:39:42.128 (post_compile 20): Begin, version=1.53, high-res time
09:39:42.129 (loader): remote connection 2900 opened
09:39:42.134 (loader): remote cmd from 2900: "comment: Teensyduino 1.53 - WINDOWS (teensy_post_compile)"
09:39:42.134 (post_compile 20): Sending command: comment: Teensyduino 1.53 - WINDOWS (teensy_post_compile)
09:39:42.139 (loader): remote cmd from 2900: "status"
09:39:42.149 (loader): remote cmd from 2900: "dir:.vsteensy/build\"
09:39:42.150 (post_compile 20): Status: 0, 1, 0, 15, 5, 0, .vsteensy/build\, T41_POECan.hex
09:39:42.150 (post_compile 20): Sending command: dir:.vsteensy/build\
09:39:42.157 (loader): remote cmd from 2900: "file:T41_POECan.hex"
09:39:42.157 (post_compile 20): Sending command: file:T41_POECan.hex
09:39:42.164 (post_compile 20): Teensy Loader could not find the file T41_POECan
09:39:42.164 (post_compile 20): quit
09:39:42.211 (loader): remote connection 2900 closed

Thanks for looking into this.
 
Last edited:
Not sure if 'C:\PROGRA~2' is always good.
Try to use the full directory name, maybe place Arduino system in a root directory without a space.
 
Thanks, I can reproduce this with your settings. Strange thing, I'll have a look now.

Not sure if 'C:\PROGRA~2' is always good.
Try to use the full directory name, maybe place Arduino system in a root directory without a space.

Unfortunately 'make' gets absolutely confused if it works on a path with spaces. On the other hand the default installation path of Arduino is in a path with spaces. So, VisualTeensy converts the path to the old 8+3 nomenclature. Since this conversion is done by a Windows call I assume that it is always correct. And I didn't have issues so far...
 
So I rebooted the laptop, now it's happy with Teensy Loader.

Interesting, the filename still has the comma+space in verbose

Code:
11:49:20.796 (post_compile 1): Begin, version=1.53, high-res time, perhaps not an issue. 
11:49:23.072 (loader): Teensy Loader 1.53, begin program
11:49:23.217 (loader): File "T41_POECan.hex". 121800 bytes, 1% used
11:49:23.242 (loader): Listening for remote control on port 3149
11:49:23.242 (loader): initialized, showing main window
11:49:23.343 (loader): remote connection 1240 opened
11:49:23.345 (post_compile 1): Sending command: comment: Teensyduino 1.53 - WINDOWS (teensy_post_compile)
11:49:23.345 (loader): remote cmd from 1240: "comment: Teensyduino 1.53 - WINDOWS (teensy_post_compile)"
11:49:23.345 (loader): remote cmd from 1240: "status"
11:49:23.353 (loader): HID/win32:  vid:06CB pid:CD50 ver:0704
11:49:23.353 (loader): HID/win32:  vid:04F3 pid:29F5 ver:6102
11:49:23.354 (loader): HID/win32:  vid:8087 pid:0A1E ver:0200
11:49:23.355 (loader): HID/win32:  vid:256F pid:C652 ver:0102
11:49:23.356 (loader): HID/win32:  vid:04F3 pid:29F5 ver:6102
11:49:23.357 (loader): HID/win32:  vid:04F3 pid:29F5 ver:6102
11:49:23.358 (loader): HID/win32:  vid:256F pid:C652 ver:0102
11:49:23.359 (loader): HID/win32:  vid:256F pid:C652 ver:0102
11:49:23.359 (loader): HID/win32:  vid:256F pid:C652 ver:0102
11:49:23.360 (loader): HID/win32:  vid:03F0 pid:0567 ver:0002
11:49:23.361 (loader): HID/win32:  vid:06CB pid:CD50 ver:0704
11:49:23.361 (loader): HID/win32:  vid:04F3 pid:29F5 ver:6102
11:49:23.362 (loader): HID/win32:  vid:256F pid:C652 ver:0102
11:49:23.363 (loader): HID/win32:  vid:03F0 pid:0567 ver:0002
11:49:23.363 (loader): HID/win32:  vid:03F0 pid:0567 ver:0002
11:49:23.364 (loader): HID/win32:  vid:03F0 pid:0567 ver:0002
11:49:23.364 (loader): HID/win32:  vid:03F0 pid:0567 ver:0002
11:49:23.365 (loader): HID/win32:  vid:046D pid:C318 ver:5503
11:49:23.366 (loader): HID/win32:  vid:03F0 pid:0269 ver:0017
11:49:23.367 (loader): HID/win32:  vid:046D pid:C318 ver:5503
11:49:23.367 (loader): HID/win32:  vid:03F0 pid:0269 ver:0017
11:49:23.368 (loader): HID/win32:  vid:045E pid:0000 ver:0000
11:49:23.369 (loader): HID/win32:  vid:03F0 pid:0269 ver:0017
11:49:23.369 (loader): HID/win32:  vid:045E pid:0000 ver:0000
11:49:23.370 (loader): HID/win32:  vid:03F0 pid:0269 ver:0017
11:49:23.373 (loader): HID/win32:  vid:03F0 pid:0667 ver:0100
11:49:23.374 (loader): HID/win32:  vid:256F pid:C652 ver:0102
11:49:23.375 (loader): HID/win32:  vid:BEEF pid:046D ver:0101
11:49:23.377 (loader): HID/win32:  vid:256F pid:C652 ver:0102
11:49:23.379 (loader): HID/win32:  vid:04F3 pid:29F5 ver:6102
11:49:23.380 (post_compile 1): Status: 1, 0, 0, 0, 0, 0, C:\Users\pc\OneDrive\GitHub\T41_POECan\.vsteensy\build\, T41_POECan.hex
11:49:23.380 (post_compile 1): Sending command: dir:.vsteensy/build\
11:49:23.380 (loader): remote cmd from 1240: "dir:.vsteensy/build\"
11:49:23.381 (loader): remote cmd from 1240: "file:T41_POECan.hex"
11:49:23.381 (post_compile 1): Sending command: file:T41_POECan.hex
11:49:23.422 (loader): File "T41_POECan.hex". 121800 bytes, 1% used
11:49:23.455 (loader): remote cmd from 1240: "status"
11:49:23.463 (post_compile 1): Status: 1, 0, 0, 0, 0, 0, .vsteensy/build\, T41_POECan.hex
11:49:23.463 (post_compile 1): Sending command: auto:on
11:49:23.464 (loader): remote cmd from 1240: "auto:on"
11:49:23.466 (post_compile 1): Disconnect
11:49:23.481 (post_compile 2): Running teensy_reboot: "C:\PROGRA~2\Arduino\hardware\tools\teensy_reboot.exe" teensy_reboot.exe "-board=TEENSY41"
11:49:23.495 (loader): remote connection 1240 closed
11:49:23.507 (loader): remote connection 1268 opened
11:49:23.652 (reboot 3): Begin, version=1.53, high-res time
11:49:23.652 (reboot 3): LoadLibrary cfgmgr32 ok
11:49:23.652 (reboot 3): LoadLibrary ntdll ok
11:49:23.654 (reboot 3): found_usb_device, id=\\?\usb#vid_16c0&pid_0483#7677540#{a5dcbf10-6530-11d2-901f-00c04fb951ed}
11:49:23.654 (reboot 3): found_usb_device, loc=usb:20000/0/0/1/2/1    Port_#0001.Hub_#0008
11:49:23.654 (reboot 3): found_usb_device, hwid=USB\VID_16C0&PID_0483&REV_0280
11:49:23.654 (reboot 3): found_usb_device, devinst=0000000b
11:49:23.654 (reboot 3): add: loc=usb:20000/0/0/1/2/1, class=Ports, vid=16C0, pid=0483, ver=0280, serial=7677540, dev=\\?\usb#vid_16c0&pid_0483#7677540#{a5dcbf10-6530-11d2-901f-00c04fb951ed}
11:49:23.654 (reboot 3):   comport_from_devinst_list attempt
11:49:23.654 (reboot 3):   found Ports in classguid_list at index=0
11:49:23.654 (reboot 3):   port COM3 found from devnode
11:49:23.654 (reboot 3): found_usb_device complete
11:49:23.663 (loader): remote connection 1304 opened
11:49:23.663 (loader): remote cmd from 1304: "show:arduino_attempt_reboot"
11:49:23.663 (loader): got request to show arduino rebooting message
11:49:23.663 (reboot 3): found Teensy Loader, version 1.53
11:49:23.663 (reboot 3): Sending command: show:arduino_attempt_reboot
11:49:23.667 (loader): remote cmd from 1304: "comment: Teensyduino 1.53 - WINDOWS (teensy_reboot)"
11:49:23.667 (loader): remote cmd from 1304: "status"
11:49:23.667 (reboot 3): Sending command: comment: Teensyduino 1.53 - WINDOWS (teensy_reboot)
11:49:23.673 (reboot 3): Status: 1, 1, 0, 0, 0, 0, .vsteensy/build\, T41_POECan.hex
11:49:23.673 (reboot 3): do_reset (serial) COM3
11:49:23.680 (loader): remote cmd from 1304: "status"
11:49:23.689 (reboot 3): Status: 1, 1, 0, 0, 0, 0, .vsteensy/build\, T41_POECan.hex
11:49:23.689 (reboot 3): status read, retry 0
11:49:23.803 (loader): remote cmd from 1304: "status"
11:49:23.812 (reboot 3): Status: 1, 1, 0, 0, 0, 0, .vsteensy/build\, T41_POECan.hex
11:49:23.812 (reboot 3): status read, retry 1
11:49:23.927 (loader): remote cmd from 1304: "status"
11:49:23.936 (loader): Device came online, code_size = 8126464
11:49:23.936 (loader): Board is: Teensy 4.1 (IMXRT1062), version 1.05
11:49:23.998 (loader): File "T41_POECan.hex". 121800 bytes, 1% used
11:49:24.001 (loader): set background IMG_ONLINE
11:49:24.059 (loader): File "T41_POECan.hex". 121800 bytes, 1% used
11:49:24.089 (loader): elf appears to be for Teensy 4.1 (IMXRT1062) (8126464 bytes)
11:49:24.089 (loader): elf binary data matches hex file
11:49:24.090 (loader): elf file is for Teensy 4.1 (IMXRT1062)
11:49:24.090 (loader): begin operation
11:49:24.131 (reboot 3): Status: 1, 1, 1, 1, 0, 1, .vsteensy/build\, T41_POECan.hex
11:49:24.179 (loader): flash, block=0, bs=1024, auto=1
11:49:24.179 (loader):  gauge old value = 0
11:49:24.180 (loader): flash, block=1, bs=1024, auto=1
11:49:24.327 (loader):  gauge old value = 1
11:49:24.328 (loader): remote cmd from 1304: "status"
11:49:24.328 (reboot 3): Status: 1, 1, 1, 1, 0, 1, .vsteensy/build\, T41_POECan.hex
11:49:24.329 (loader): flash, block=2, bs=1024, auto=1
11:49:24.514 (loader):  gauge old value = 2
11:49:24.514 (loader): remote cmd from 1304: "status"
11:49:24.515 (reboot 3): Status: 1, 1, 1, 1, 0, 1, .vsteensy/build\, T41_POECan.hex
11:49:24.515 (loader): flash, block=3, bs=1024, auto=1
11:49:24.515 (loader):  gauge old value = 3
11:49:24.515 (loader): flash, block=4, bs=1024, auto=1
11:49:24.515 (loader):  gauge old value = 4
11:49:24.521 (loader): flash, block=5, bs=1024, auto=1
11:49:24.521 (loader):  gauge old value = 5
11:49:24.523 (loader): flash, block=6, bs=1024, auto=1
11:49:24.523 (loader):  gauge old value = 6
11:49:24.526 (loader): flash, block=7, bs=1024, auto=1
11:49:24.526 (loader):  gauge old value = 7
11:49:24.530 (loader): flash, block=8, bs=1024, auto=1
11:49:24.530 (loader):  gauge old value = 8
11:49:24.532 (loader): flash, block=9, bs=1024, auto=1
11:49:24.532 (loader):  gauge old value = 9
11:49:24.535 (loader): flash, block=10, bs=1024, auto=1
11:49:24.535 (loader):  gauge old value = 10
11:49:24.537 (loader): flash, block=11, bs=1024, auto=1
11:49:24.537 (loader):  gauge old value = 11
11:49:24.539 (loader): flash, block=12, bs=1024, auto=1
11:49:24.539 (loader):  gauge old value = 12
11:49:24.541 (loader): flash, block=13, bs=1024, auto=1
11:49:24.541 (loader):  gauge old value = 13
11:49:24.544 (loader): flash, block=14, bs=1024, auto=1
11:49:24.545 (loader):  gauge old value = 14
11:49:24.547 (loader): flash, block=15, bs=1024, auto=1
11:49:24.547 (loader):  gauge old value = 15
11:49:24.549 (loader): flash, block=16, bs=1024, auto=1
11:49:24.549 (loader):  gauge old value = 16
11:49:24.552 (loader): flash, block=17, bs=1024, auto=1
11:49:24.553 (loader):  gauge old value = 17
11:49:24.555 (loader): flash, block=18, bs=1024, auto=1
11:49:24.556 (loader):  gauge old value = 18
11:49:24.557 (loader): flash, block=19, bs=1024, auto=1
11:49:24.558 (loader):  gauge old value = 19
11:49:24.560 (loader): flash, block=20, bs=1024, auto=1
11:49:24.560 (loader):  gauge old value = 20
11:49:24.563 (loader): flash, block=21, bs=1024, auto=1
11:49:24.563 (loader):  gauge old value = 21
11:49:24.565 (loader): flash, block=22, bs=1024, auto=1
11:49:24.565 (loader):  gauge old value = 22
11:49:24.566 (loader): flash, block=23, bs=1024, auto=1
11:49:24.567 (loader):  gauge old value = 23
11:49:24.569 (loader): flash, block=24, bs=1024, auto=1
11:49:24.569 (loader):  gauge old value = 24
11:49:24.571 (loader): flash, block=25, bs=1024, auto=1
11:49:24.571 (loader):  gauge old value = 25
11:49:24.573 (loader): flash, block=26, bs=1024, auto=1
11:49:24.574 (loader):  gauge old value = 26
11:49:24.577 (loader): remote cmd from 1304: "status"
11:49:24.577 (reboot 3): Status: 1, 1, 1, 1, 0, 1, .vsteensy/build\, T41_POECan.hex
11:49:24.578 (loader): flash, block=27, bs=1024, auto=1
11:49:24.578 (loader):  gauge old value = 27
11:49:24.580 (loader): flash, block=28, bs=1024, auto=1
11:49:24.581 (loader):  gauge old value = 28
11:49:24.582 (loader): flash, block=29, bs=1024, auto=1
11:49:24.583 (loader):  gauge old value = 29
11:49:24.584 (loader): flash, block=30, bs=1024, auto=1
11:49:24.585 (loader):  gauge old value = 30
11:49:24.587 (loader): flash, block=31, bs=1024, auto=1
11:49:24.587 (loader):  gauge old value = 31
11:49:24.590 (loader): flash, block=32, bs=1024, auto=1
11:49:24.590 (loader):  gauge old value = 32
11:49:24.593 (loader): flash, block=33, bs=1024, auto=1
11:49:24.593 (loader):  gauge old value = 33
11:49:24.595 (loader): flash, block=34, bs=1024, auto=1
11:49:24.596 (loader):  gauge old value = 34
11:49:24.597 (loader): flash, block=35, bs=1024, auto=1
11:49:24.598 (loader):  gauge old value = 35
11:49:24.600 (loader): flash, block=36, bs=1024, auto=1
11:49:24.600 (loader):  gauge old value = 36
11:49:24.603 (loader): flash, block=37, bs=1024, auto=1
11:49:24.603 (loader):  gauge old value = 37
11:49:24.605 (loader): flash, block=38, bs=1024, auto=1
11:49:24.605 (loader):  gauge old value = 38
11:49:24.610 (loader): flash, block=39, bs=1024, auto=1
11:49:24.610 (loader):  gauge old value = 39
11:49:24.612 (loader): flash, block=40, bs=1024, auto=1
11:49:24.613 (loader):  gauge old value = 40
11:49:24.615 (loader): flash, block=41, bs=1024, auto=1
11:49:24.616 (loader):  gauge old value = 41
11:49:24.618 (loader): flash, block=42, bs=1024, auto=1
11:49:24.618 (loader):  gauge old value = 42
11:49:24.621 (loader): flash, block=43, bs=1024, auto=1
11:49:24.621 (loader):  gauge old value = 43
11:49:24.624 (loader): flash, block=44, bs=1024, auto=1
11:49:24.625 (loader):  gauge old value = 44
11:49:24.628 (loader): flash, block=45, bs=1024, auto=1
11:49:24.628 (loader):  gauge old value = 45
11:49:24.631 (loader): flash, block=46, bs=1024, auto=1
11:49:24.631 (loader):  gauge old value = 46
11:49:24.634 (loader): flash, block=47, bs=1024, auto=1
11:49:24.634 (loader):  gauge old value = 47
11:49:24.636 (loader): flash, block=48, bs=1024, auto=1
11:49:24.636 (loader):  gauge old value = 48
11:49:24.639 (loader): remote cmd from 1304: "status"
11:49:24.639 (reboot 3): Status: 1, 1, 1, 1, 0, 1, .vsteensy/build\, T41_POECan.hex
11:49:24.641 (loader): flash, block=49, bs=1024, auto=1
11:49:24.641 (loader):  gauge old value = 49
11:49:24.645 (loader): flash, block=50, bs=1024, auto=1
11:49:24.645 (loader):  gauge old value = 50
11:49:24.648 (loader): flash, block=51, bs=1024, auto=1
11:49:24.648 (loader):  gauge old value = 51
11:49:24.652 (loader): flash, block=52, bs=1024, auto=1
11:49:24.652 (loader):  gauge old value = 52
11:49:24.654 (loader): flash, block=53, bs=1024, auto=1
11:49:24.654 (loader):  gauge old value = 53
11:49:24.656 (loader): flash, block=54, bs=1024, auto=1
11:49:24.656 (loader):  gauge old value = 54
11:49:24.658 (loader): flash, block=55, bs=1024, auto=1
11:49:24.658 (loader):  gauge old value = 55
11:49:24.662 (loader): flash, block=56, bs=1024, auto=1
11:49:24.662 (loader):  gauge old value = 56
11:49:24.665 (loader): flash, block=57, bs=1024, auto=1
11:49:24.665 (loader):  gauge old value = 57
11:49:24.668 (loader): flash, block=58, bs=1024, auto=1
11:49:24.668 (loader):  gauge old value = 58
11:49:24.670 (loader): flash, block=59, bs=1024, auto=1
11:49:24.671 (loader):  gauge old value = 59
11:49:24.673 (loader): flash, block=60, bs=1024, auto=1
11:49:24.673 (loader):  gauge old value = 60
11:49:24.676 (loader): flash, block=61, bs=1024, auto=1
11:49:24.676 (loader):  gauge old value = 61
11:49:24.679 (loader): flash, block=62, bs=1024, auto=1
11:49:24.679 (loader):  gauge old value = 62
11:49:24.682 (loader): flash, block=63, bs=1024, auto=1
11:49:24.682 (loader):  gauge old value = 63
11:49:24.684 (loader): flash, block=64, bs=1024, auto=1
11:49:24.684 (loader):  gauge old value = 64
11:49:24.686 (loader): flash, block=65, bs=1024, auto=1
11:49:24.686 (loader):  gauge old value = 65
11:49:24.688 (loader): flash, block=66, bs=1024, auto=1
11:49:24.688 (loader):  gauge old value = 66
11:49:24.689 (loader): flash, block=67, bs=1024, auto=1
11:49:24.690 (loader):  gauge old value = 67
11:49:24.691 (loader): flash, block=68, bs=1024, auto=1
11:49:24.691 (loader):  gauge old value = 68
11:49:24.694 (loader): flash, block=69, bs=1024, auto=1
11:49:24.694 (loader):  gauge old value = 69
11:49:24.696 (loader): flash, block=70, bs=1024, auto=1
11:49:24.696 (loader):  gauge old value = 70
11:49:24.698 (loader): flash, block=71, bs=1024, auto=1
11:49:24.698 (loader):  gauge old value = 71
11:49:24.701 (loader): remote cmd from 1304: "status"
11:49:24.702 (loader): flash, block=72, bs=1024, auto=1
11:49:24.702 (loader):  gauge old value = 72
11:49:24.702 (reboot 3): Status: 1, 1, 1, 1, 0, 1, .vsteensy/build\, T41_POECan.hex
11:49:24.704 (loader): flash, block=73, bs=1024, auto=1
11:49:24.704 (loader):  gauge old value = 73
11:49:24.706 (loader): flash, block=74, bs=1024, auto=1
11:49:24.707 (loader):  gauge old value = 74
11:49:24.708 (loader): flash, block=75, bs=1024, auto=1
11:49:24.708 (loader):  gauge old value = 75
11:49:24.711 (loader): flash, block=76, bs=1024, auto=1
11:49:24.711 (loader):  gauge old value = 76
11:49:24.714 (loader): flash, block=77, bs=1024, auto=1
11:49:24.714 (loader):  gauge old value = 77
11:49:24.717 (loader): flash, block=78, bs=1024, auto=1
11:49:24.717 (loader):  gauge old value = 78
11:49:24.720 (loader): flash, block=79, bs=1024, auto=1
11:49:24.720 (loader):  gauge old value = 79
11:49:24.722 (loader): flash, block=80, bs=1024, auto=1
11:49:24.722 (loader):  gauge old value = 80
11:49:24.724 (loader): flash, block=81, bs=1024, auto=1
11:49:24.724 (loader):  gauge old value = 81
11:49:24.725 (loader): flash, block=82, bs=1024, auto=1
11:49:24.726 (loader):  gauge old value = 82
11:49:24.727 (loader): flash, block=83, bs=1024, auto=1
11:49:24.728 (loader):  gauge old value = 83
11:49:24.730 (loader): flash, block=84, bs=1024, auto=1
11:49:24.730 (loader):  gauge old value = 84
11:49:24.732 (loader): flash, block=85, bs=1024, auto=1
11:49:24.733 (loader):  gauge old value = 85
11:49:24.735 (loader): flash, block=86, bs=1024, auto=1
11:49:24.735 (loader):  gauge old value = 86
11:49:24.737 (loader): flash, block=87, bs=1024, auto=1
11:49:24.737 (loader):  gauge old value = 87
11:49:24.739 (loader): flash, block=88, bs=1024, auto=1
11:49:24.740 (loader):  gauge old value = 88
11:49:24.741 (loader): flash, block=89, bs=1024, auto=1
11:49:24.742 (loader):  gauge old value = 89
11:49:24.743 (loader): flash, block=90, bs=1024, auto=1
11:49:24.743 (loader):  gauge old value = 90
11:49:24.746 (loader): flash, block=91, bs=1024, auto=1
11:49:24.746 (loader):  gauge old value = 91
11:49:24.748 (loader): flash, block=92, bs=1024, auto=1
11:49:24.748 (loader):  gauge old value = 92
11:49:24.751 (loader): flash, block=93, bs=1024, auto=1
11:49:24.751 (loader):  gauge old value = 93
11:49:24.753 (loader): flash, block=94, bs=1024, auto=1
11:49:24.753 (loader):  gauge old value = 94
11:49:24.755 (loader): flash, block=95, bs=1024, auto=1
11:49:24.755 (loader):  gauge old value = 95
11:49:24.756 (loader): flash, block=96, bs=1024, auto=1
11:49:24.757 (loader):  gauge old value = 96
11:49:24.758 (loader): flash, block=97, bs=1024, auto=1
11:49:24.758 (loader):  gauge old value = 97
11:49:24.760 (loader): flash, block=98, bs=1024, auto=1
11:49:24.762 (loader):  gauge old value = 98
11:49:24.763 (reboot 3): status read, retry 2
11:49:24.763 (reboot 3): Success
11:49:24.763 (reboot 3): Disconnect
11:49:24.764 (loader): flash, block=99, bs=1024, auto=1
11:49:24.764 (loader):  gauge old value = 99
11:49:24.767 (loader): flash, block=100, bs=1024, auto=1
11:49:24.767 (loader):  gauge old value = 100
11:49:24.769 (loader): flash, block=101, bs=1024, auto=1
11:49:24.769 (loader):  gauge old value = 101
11:49:24.772 (loader): flash, block=102, bs=1024, auto=1
11:49:24.772 (loader):  gauge old value = 102
11:49:24.774 (loader): flash, block=103, bs=1024, auto=1
11:49:24.774 (loader):  gauge old value = 103
11:49:24.776 (loader): flash, block=104, bs=1024, auto=1
11:49:24.776 (loader):  gauge old value = 104
11:49:24.782 (loader): remote connection 1304 closed
11:49:24.782 (loader): flash, block=105, bs=1024, auto=1
11:49:24.783 (loader):  gauge old value = 105
11:49:24.786 (loader): flash, block=106, bs=1024, auto=1
11:49:24.786 (loader):  gauge old value = 106
11:49:24.792 (loader): flash, block=107, bs=1024, auto=1
11:49:24.792 (loader):  gauge old value = 107
11:49:24.795 (loader): flash, block=108, bs=1024, auto=1
11:49:24.795 (loader):  gauge old value = 108
11:49:24.798 (loader): remote connection 1268 closed
11:49:24.799 (loader): flash, block=109, bs=1024, auto=1
11:49:24.799 (loader):  gauge old value = 109
11:49:24.803 (loader): flash, block=110, bs=1024, auto=1
11:49:24.803 (loader):  gauge old value = 110
11:49:24.805 (loader): flash, block=111, bs=1024, auto=1
11:49:24.805 (loader):  gauge old value = 111
11:49:24.807 (loader): flash, block=112, bs=1024, auto=1
11:49:24.807 (loader):  gauge old value = 112
11:49:24.810 (loader): flash, block=113, bs=1024, auto=1
11:49:24.810 (loader):  gauge old value = 113
11:49:24.813 (loader): flash, block=114, bs=1024, auto=1
11:49:24.813 (loader):  gauge old value = 114
11:49:24.816 (loader): flash, block=115, bs=1024, auto=1
11:49:24.816 (loader):  gauge old value = 115
11:49:24.818 (loader): flash, block=116, bs=1024, auto=1
11:49:24.818 (loader):  gauge old value = 116
11:49:24.820 (loader): flash, block=117, bs=1024, auto=1
11:49:24.821 (loader):  gauge old value = 117
11:49:24.823 (loader): flash, block=118, bs=1024, auto=1
11:49:24.824 (loader):  gauge old value = 118
11:49:24.845 (loader): sending reboot
11:49:24.846 (loader): begin wait_until_offline
11:49:24.901 (loader): offline, waited 1
11:49:24.901 (loader): end operation, total time = 0.811 seconds
11:49:24.903 (loader): set background IMG_REBOOT_OK
11:49:24.909 (loader): redraw timer set, image 14 to show for 1200 ms
11:49:24.977 (loader): HID/win32:  vid:06CB pid:CD50 ver:0704
11:49:24.977 (loader): HID/win32:  vid:04F3 pid:29F5 ver:6102
11:49:24.977 (loader): HID/win32:  vid:8087 pid:0A1E ver:0200
11:49:24.977 (loader): HID/win32:  vid:256F pid:C652 ver:0102
11:49:24.977 (loader): HID/win32:  vid:04F3 pid:29F5 ver:6102
11:49:24.977 (loader): HID/win32:  vid:04F3 pid:29F5 ver:6102
11:49:24.977 (loader): HID/win32:  vid:256F pid:C652 ver:0102
11:49:24.978 (loader): HID/win32:  vid:256F pid:C652 ver:0102
11:49:24.978 (loader): HID/win32:  vid:256F pid:C652 ver:0102
11:49:24.978 (loader): HID/win32:  vid:03F0 pid:0567 ver:0002
11:49:24.978 (loader): HID/win32:  vid:06CB pid:CD50 ver:0704
11:49:24.978 (loader): HID/win32:  vid:04F3 pid:29F5 ver:6102
11:49:24.978 (loader): HID/win32:  vid:256F pid:C652 ver:0102
11:49:24.978 (loader): HID/win32:  vid:03F0 pid:0567 ver:0002
11:49:24.978 (loader): HID/win32:  vid:03F0 pid:0567 ver:0002
11:49:24.978 (loader): HID/win32:  vid:03F0 pid:0567 ver:0002
11:49:24.978 (loader): HID/win32:  vid:03F0 pid:0567 ver:0002
11:49:24.978 (loader): HID/win32:  vid:046D pid:C318 ver:5503
11:49:24.978 (loader): HID/win32:  vid:03F0 pid:0269 ver:0017
11:49:24.978 (loader): HID/win32:  vid:046D pid:C318 ver:5503
11:49:24.978 (loader): HID/win32:  vid:03F0 pid:0269 ver:0017
11:49:24.978 (loader): HID/win32:  vid:045E pid:0000 ver:0000
11:49:24.978 (loader): HID/win32:  vid:03F0 pid:0269 ver:0017
11:49:24.978 (loader): HID/win32:  vid:045E pid:0000 ver:0000
11:49:24.978 (loader): HID/win32:  vid:03F0 pid:0269 ver:0017
11:49:24.979 (loader): HID/win32:  vid:03F0 pid:0667 ver:0100
11:49:24.979 (loader): HID/win32:  vid:256F pid:C652 ver:0102
11:49:24.979 (loader): HID/win32:  vid:BEEF pid:046D ver:0101
11:49:24.980 (loader): HID/win32:  vid:256F pid:C652 ver:0102
11:49:24.980 (loader): HID/win32:  vid:04F3 pid:29F5 ver:6102
11:49:26.113 (loader): redraw, image 9
11:49:42.654 (loader): Verbose Info event


And yes, this didn't go so well:
Code:
CORE_BASE        := C:\Program Files (x86)\Arduino\hardware\teensy\avr\cores\teensy4

So I left it as it was generated by VisualTeensy.

Sorry for the fire alarm.
 
That is absolutely strange, I was able to reproduce your issue, then I switched back to an Arduino installation without spaces in the path and it worked. Switching back to the installation with the space in the path and now it works perfectly. Probably the same effect as your rebooting. I don't understand this. OK, since it works now for both of us lets declare this as weird... Anyway, as WMXZ already wrote, if possible don't use a path with spaces. Have fun with VisualTeensy.
 
Regarding the comma + space, this seems to be just a comma separated list of folder and filename. If you start the loader from Arduino you see the same.
 
Back
Top