Teensyduino 1.62 Beta #2

Paul

Administrator
Staff member
Here is a second beta test for Teensyduino 1.62.

Arduino 2.3.x: Copy this URL to Arduino IDE File > Preferences (Arduino IDE > Settings on MacOS).

https://www.pjrc.com/teensy/td_162-beta2/package_teensy_0.62.2_index.json

Use Boards Manager to install Teensy version 0.62.2
(to refresh versions, Shift-Ctrl-P and click "Arduino: Update Package Index")


Arduino 1.8.x, Linux 64 bit:

Arduino 1.8.x, Linux ARM:

Arduino 1.8.x, Linux ARM64:

Arduino 1.8.x, Windows:


Changes since 1.62-beta1:

Add Windows 64 bit toolchain for Arduino 2.3.x
Add Linux ARM 32 and 64 bit toolchains
Fix MacOS toolchains for Teensy 2
Update all toolchains - remove unused stuff to reduce download size
Fix SPI compile time init on Teensy 4
Update teensy_size, print white text in Arduino 2.3.x
 
If anyone wants to try different toolchains with Arduino 1.8.19 on Windows, here are direct links to the 32 bit toolchain and 64 bit toolchain.

These are .tar.zst format, which isn't common on Windows. I've seen advice that 7-zip can extract, but haven't personally tried it. You can install zstd command line on any platform and use it to decompress to normal .tar format. Or rather than downloading these, you could just copy the toolchain from the location Arduino IDE 2.3.x installs it. If you're not familiar with zstd, it's a relatively new compression format created by Facebook. It compresses almost as small as xz, but unlike slow xz, decompression is fast, about 300-400 MB/sec. Teensy uses .tar.zst format because it gives by far the best overall Boards Manager install performance, especially on Windows.

Default location for the toolchain is C:\Program Files (x86)\Arduino\hardware\tools. Delete the "avr" and "arm" folders and replace with the ones from these .tar.zst archives. Or just replace "arm".

The AVR toolchain for Teensy 2.0 is still built as 32 bit EXE. Only the ARM toolchain is 64 bit EXE format.
 
Tested with Win 11 / IDE 2.3.9 and the provided SPI library rather than the updated one from GitHub. All good.

The project I'm working on uses TeensyTimerTool, which throws a warning with the new toolchain; it may have done so with the previous one, but I usually notice these things. It seems to be a known issue from at least late 2024, but maybe this will encourage @luni to find time to fix it.
 
Is it possible to upgrade the bootloader to 1.09 from "inside" the Teensy vs. via the Teensy loader?
 
upgrade the bootloader to 1.09 from "inside" the Teensy vs. via the Teensy loader?
Seeing existing boards Locked or Not Lockable maintain bootloader 1.08. Not seeing any change in either type used here with Beta 2 of 1.62.

The change only relates it seems to boards that may need new Supported FLASH ?
 
Computer: ASUS Tuff Series gaming laptop running Windows 11 Pro Version 25H2 (OS build 26200.8524), with 12th Gen Intel(R) Core(TM) i7-12700H (2.30 GHz) w/ 64GM RAM.

Build environment: Arduino 1.8.19

Source file: TeensyMIDIPolySynth Display portion, 56834 lines (Serial + MIDI, using default "Faster" optimization)

In all tests, the procedural steps described by @PaulStoffregen in the TD1.62b1 thread, <p#21> were used.

Standard install of TD1.61 (assume 64-bit tools loaded by default): 26 seconds

Standard install of TD1.62b2 (assume 64-bit tools loaded by default): 23 seconds
NOTE: Had to change to "Smallest Code" optimization, as building with "Faster" optimization now exceeds available RAM1 (This problem was not previously observed in earlier TD versions)

Manual install of TD1.62b2 32-bit, using the steps @PaulStoffregen described in <p#2> above: 25 seconds
NOTE: Windows Explorer was able to open the tar.zst files & successfully copy the two folders into tools (with Administrative confirmation)

Manual install of TD1.62b2 64-bit, using the steps @PaulStoffregen described in <p#2> above: TBD (waiting for Norton 360 to clear arm-none-eabi-g++.exe . . . it says this may take several hours !!)

P.S. With each install/upgrade, Norton 360 threw a real fit on multiple files (e.g. arm-none-eabi-g++.exe, arm-none-eabi-gcc.exe, same as always, particularly when it sees something that has been created relatively recently, like a new TD release !!), and again with each subsequent install/upgrade, so these numbers are final build times *after* Norton completed its obligatory scans & was satisfied that nothing here was dangerous !! MJC
 
Is it known that IDE 2.3.9 verbose output window OVERFLOWS and by the end can LOSE early build details?

The ProtoSupplies MINI DEMO code builds and runs IDE 1, but IDE 2 ends with: Compilation error: exit status 1
Seems it is the ComicSans and Arial Fonts again at link time, but going to the top all the early precompile and onward is missing.
 
@PaulStoffregen not sure if you saw my github comment on your recent commit to modify the linker memory attributes (since I can't see the comment myself, it seems to have vanished into the void) but the changes for T4.1 seem to be an error, making every region R+X.
 
github comment on your recent commit
Shows inline with the changed code - for all three .ld's
1780206155225.png
 
Computer: ASUS Tuff Series gaming laptop running Windows 11 Pro Version 25H2 (OS build 26200.8524), with 12th Gen Intel(R) Core(TM) i7-12700H (2.30 GHz) w/ 64GM RAM.

Build environment: Arduino 1.8.19

Source file: TeensyMIDIPolySynth Display portion, 56834 lines (Serial + MIDI, using default "Faster" optimization)

In all tests, the procedural steps described by @PaulStoffregen in the TD1.62b1 thread, <p#21> were used.

Standard install of TD1.61 (assume 64-bit tools loaded by default): 26 seconds

Standard install of TD1.62b2 (assume 64-bit tools loaded by default): 23 seconds
NOTE: Had to change to "Smallest Code" optimization, as building with "Faster" optimization now exceeds available RAM1 (This problem was not previously observed in earlier TD versions)

Manual install of TD1.62b2 32-bit, using the steps @PaulStoffregen described in <p#2> above: 25 seconds
NOTE: Windows Explorer was able to open the tar.zst files & successfully copy the two folders into tools (with Administrative confirmation)

Manual install of TD1.62b2 64-bit, using the steps @PaulStoffregen described in <p#2> above: TBD (waiting for Norton 360 to clear arm-none-eabi-g++.exe . . . it says this may take several hours !!)

P.S. With each install/upgrade, Norton 360 threw a real fit on multiple files (e.g. arm-none-eabi-g++.exe, arm-none-eabi-gcc.exe, same as always, particularly when it sees something that has been created relatively recently, like a new TD release !!), and again with each subsequent install/upgrade, so these numbers are final build times *after* Norton completed its obligatory scans & was satisfied that nothing here was dangerous !! MJC

Norton finally cleared arm-none-eabi-gcc.exe, continued by complaining about collect2.exe, & then sent arm-none-eabi-objcopy.exe off for analysis (another couple of hours !!).

Note that the following warning/error report was generated using the new TD1.61.b2:

Code:
In file included from C:\Program Files (x86)\Arduino\hardware\teensy\avr\cores\teensy4/Stream.h:24,
                 from C:\Program Files (x86)\Arduino\hardware\teensy\avr\cores\teensy4/HardwareSerial.h:115,
                 from C:\Program Files (x86)\Arduino\hardware\teensy\avr\cores\teensy4/WProgram.h:47,
                 from C:\Users\mjcul\AppData\Local\Temp\arduino_build_263400\pch\Arduino.h:6:
C:/Program Files (x86)/Arduino/hardware/teensy/avr/libraries/SdFat/src/common/ArduinoFiles.h: In instantiation of 'class PrintFile<FsBaseFile>':
C:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\SdFat\src/SdFat.h:495:23:   required from here
  495 | class SdFile : public PrintFile<SdBaseFile> {
      |                       ^~~~~~~~~~~~~~~~~~~~~
C:\Program Files (x86)\Arduino\hardware\teensy\avr\cores\teensy4/Print.h:61:24: warning: 'virtual size_t Print::write(const uint8_t*, size_t)' was hidden [-Woverloaded-virtual=]
   61 |         virtual size_t write(const uint8_t *buffer, size_t size);
      |                        ^~~~~
In file included from C:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\SdFat\src/FsLib/FsLib.h:32,
                 from C:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\SdFat\src/SdFat.h:37,
                 from C:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\USBHost_t36/USBHost_t36.h:2451,
                 from C:\Users\mjcul\Documents\Arduino\MJCsource\Teensy-MIDI-RA8875-PolySynth-Display\Teensy-MIDI-RA8875-PolySynth-Display.ino:58:
C:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\SdFat\src/FsLib/FsFile.h:782:10: note:   by 'size_t FsBaseFile::write(const void*, size_t)'
  782 |   size_t write(const void* buf, size_t count) {
      |          ^~~~~
In file included from C:\Program Files (x86)\Arduino\hardware\teensy\avr\cores\teensy4/Stream.h:24,
                 from C:\Program Files (x86)\Arduino\hardware\teensy\avr\cores\teensy4/HardwareSerial.h:115,
                 from C:\Program Files (x86)\Arduino\hardware\teensy\avr\cores\teensy4/WProgram.h:47,
                 from C:\Users\mjcul\AppData\Local\Temp\arduino_build_263400\pch\Arduino.h:6:
C:/Program Files (x86)/Arduino/hardware/teensy/avr/libraries/SdFat/src/common/ArduinoFiles.h: In instantiation of 'class PrintFile<FsBaseFile>':
C:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\SdFat\src/SdFat.h:495:23:   required from here
  495 | class SdFile : public PrintFile<SdBaseFile> {
      |                       ^~~~~~~~~~~~~~~~~~~~~
C:\Program Files (x86)\Arduino\hardware\teensy\avr\cores\teensy4/Print.h:61:24: warning: 'virtual size_t Print::write(const uint8_t*, size_t)' was hidden [-Woverloaded-virtual=]
   61 |         virtual size_t write(const uint8_t *buffer, size_t size);
      |                        ^~~~~
In file included from C:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\SdFat\src/FsLib/FsLib.h:32,
                 from C:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\SdFat\src/SdFat.h:37,
                 from C:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\USBHost_t36\USBHost_t36.h:2451,
                 from C:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\USBHost_t36\BluetoothConnection.cpp:33:
C:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\SdFat\src/FsLib/FsFile.h:782:10: note:   by 'size_t FsBaseFile::write(const void*, size_t)'
  782 |   size_t write(const void* buf, size_t count) {
      |          ^~~~~
In file included from C:\Program Files (x86)\Arduino\hardware\teensy\avr\cores\teensy4/Stream.h:24,
                 from C:\Program Files (x86)\Arduino\hardware\teensy\avr\cores\teensy4/HardwareSerial.h:115,
                 from C:\Program Files (x86)\Arduino\hardware\teensy\avr\cores\teensy4/WProgram.h:47,
                 from C:\Users\mjcul\AppData\Local\Temp\arduino_build_263400\pch\Arduino.h:6:
C:/Program Files (x86)/Arduino/hardware/teensy/avr/libraries/SdFat/src/common/ArduinoFiles.h: In instantiation of 'class PrintFile<FsBaseFile>':
C:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\SdFat\src/SdFat.h:495:23:   required from here
  495 | class SdFile : public PrintFile<SdBaseFile> {
      |                       ^~~~~~~~~~~~~~~~~~~~~
C:\Program Files (x86)\Arduino\hardware\teensy\avr\cores\teensy4/Print.h:61:24: warning: 'virtual size_t Print::write(const uint8_t*, size_t)' was hidden [-Woverloaded-virtual=]
   61 |         virtual size_t write(const uint8_t *buffer, size_t size);
      |                        ^~~~~
In file included from C:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\SdFat\src/FsLib/FsLib.h:32,
                 from C:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\SdFat\src/SdFat.h:37,
                 from C:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\USBHost_t36\USBHost_t36.h:2451,
                 from C:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\USBHost_t36\hid.cpp:25:
C:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\SdFat\src/FsLib/FsFile.h:782:10: note:   by 'size_t FsBaseFile::write(const void*, size_t)'
  782 |   size_t write(const void* buf, size_t count) {
      |          ^~~~~
In file included from C:\Program Files (x86)\Arduino\hardware\teensy\avr\cores\teensy4/Stream.h:24,
                 from C:\Program Files (x86)\Arduino\hardware\teensy\avr\cores\teensy4/HardwareSerial.h:115,
                 from C:\Program Files (x86)\Arduino\hardware\teensy\avr\cores\teensy4/WProgram.h:47,
                 from C:\Users\mjcul\AppData\Local\Temp\arduino_build_263400\pch\Arduino.h:6:
C:/Program Files (x86)/Arduino/hardware/teensy/avr/libraries/SdFat/src/common/ArduinoFiles.h: In instantiation of 'class PrintFile<FsBaseFile>':
C:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\SdFat\src/SdFat.h:495:23:   required from here
  495 | class SdFile : public PrintFile<SdBaseFile> {
      |                       ^~~~~~~~~~~~~~~~~~~~~
C:\Program Files (x86)\Arduino\hardware\teensy\avr\cores\teensy4/Print.h:61:24: warning: 'virtual size_t Print::write(const uint8_t*, size_t)' was hidden [-Woverloaded-virtual=]
   61 |         virtual size_t write(const uint8_t *buffer, size_t size);
      |                        ^~~~~
In file included from C:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\SdFat\src/FsLib/FsLib.h:32,
                 from C:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\SdFat\src/SdFat.h:37,
                 from C:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\USBHost_t36\USBHost_t36.h:2451,
                 from C:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\USBHost_t36\hub.cpp:25:
C:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\SdFat\src/FsLib/FsFile.h:782:10: note:   by 'size_t FsBaseFile::write(const void*, size_t)'
  782 |   size_t write(const void* buf, size_t count) {
      |          ^~~~~
In file included from C:\Program Files (x86)\Arduino\hardware\teensy\avr\cores\teensy4/Stream.h:24,
                 from C:\Program Files (x86)\Arduino\hardware\teensy\avr\cores\teensy4/HardwareSerial.h:115,
                 from C:\Program Files (x86)\Arduino\hardware\teensy\avr\cores\teensy4/WProgram.h:47,
                 from C:\Users\mjcul\AppData\Local\Temp\arduino_build_263400\pch\Arduino.h:6:
C:/Program Files (x86)/Arduino/hardware/teensy/avr/libraries/SdFat/src/common/ArduinoFiles.h: In instantiation of 'class PrintFile<FsBaseFile>':
C:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\SdFat\src/SdFat.h:495:23:   required from here
  495 | class SdFile : public PrintFile<SdBaseFile> {
      |                       ^~~~~~~~~~~~~~~~~~~~~
C:\Program Files (x86)\Arduino\hardware\teensy\avr\cores\teensy4/Print.h:61:24: warning: 'virtual size_t Print::write(const uint8_t*, size_t)' was hidden [-Woverloaded-virtual=]
   61 |         virtual size_t write(const uint8_t *buffer, size_t size);
      |                        ^~~~~
In file included from C:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\SdFat\src/FsLib/FsLib.h:32,
                 from C:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\SdFat\src/SdFat.h:37,
                 from C:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\USBHost_t36\USBHost_t36.h:2451,
                 from C:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\USBHost_t36\joystick.cpp:25:
C:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\SdFat\src/FsLib/FsFile.h:782:10: note:   by 'size_t FsBaseFile::write(const void*, size_t)'
  782 |   size_t write(const void* buf, size_t count) {
      |          ^~~~~
In file included from C:\Program Files (x86)\Arduino\hardware\teensy\avr\cores\teensy4/Stream.h:24,
                 from C:\Program Files (x86)\Arduino\hardware\teensy\avr\cores\teensy4/HardwareSerial.h:115,
                 from C:\Program Files (x86)\Arduino\hardware\teensy\avr\cores\teensy4/WProgram.h:47,
                 from C:\Users\mjcul\AppData\Local\Temp\arduino_build_263400\pch\Arduino.h:6:
C:/Program Files (x86)/Arduino/hardware/teensy/avr/libraries/SdFat/src/common/ArduinoFiles.h: In instantiation of 'class PrintFile<FsBaseFile>':
C:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\SdFat\src/SdFat.h:495:23:   required from here
  495 | class SdFile : public PrintFile<SdBaseFile> {
      |                       ^~~~~~~~~~~~~~~~~~~~~
C:\Program Files (x86)\Arduino\hardware\teensy\avr\cores\teensy4/Print.h:61:24: warning: 'virtual size_t Print::write(const uint8_t*, size_t)' was hidden [-Woverloaded-virtual=]
   61 |         virtual size_t write(const uint8_t *buffer, size_t size);
      |                        ^~~~~
In file included from C:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\SdFat\src/FsLib/FsLib.h:32,
                 from C:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\SdFat\src/SdFat.h:37,
                 from C:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\USBHost_t36\USBHost_t36.h:2451,
                 from C:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\USBHost_t36\rawhid.cpp:25:
C:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\SdFat\src/FsLib/FsFile.h:782:10: note:   by 'size_t FsBaseFile::write(const void*, size_t)'
  782 |   size_t write(const void* buf, size_t count) {
      |          ^~~~~
In file included from C:\Program Files (x86)\Arduino\hardware\teensy\avr\cores\teensy4/Stream.h:24,
                 from C:\Program Files (x86)\Arduino\hardware\teensy\avr\cores\teensy4/HardwareSerial.h:115,
                 from C:\Program Files (x86)\Arduino\hardware\teensy\avr\cores\teensy4/WProgram.h:47,
                 from C:\Users\mjcul\AppData\Local\Temp\arduino_build_263400\pch\Arduino.h:6:
C:/Program Files (x86)/Arduino/hardware/teensy/avr/libraries/SdFat/src/common/ArduinoFiles.h: In instantiation of 'class PrintFile<FsBaseFile>':
C:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\SdFat\src/SdFat.h:495:23:   required from here
  495 | class SdFile : public PrintFile<SdBaseFile> {
      |                       ^~~~~~~~~~~~~~~~~~~~~
C:\Program Files (x86)\Arduino\hardware\teensy\avr\cores\teensy4/Print.h:61:24: warning: 'virtual size_t Print::write(const uint8_t*, size_t)' was hidden [-Woverloaded-virtual=]
   61 |         virtual size_t write(const uint8_t *buffer, size_t size);
      |                        ^~~~~
In file included from C:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\SdFat\src/FsLib/FsLib.h:32,
                 from C:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\SdFat\src/SdFat.h:37,
                 from C:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\USBHost_t36\USBHost_t36.h:2451,
                 from C:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\USBHost_t36\keyboard.cpp:25:
C:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\SdFat\src/FsLib/FsFile.h:782:10: note:   by 'size_t FsBaseFile::write(const void*, size_t)'
  782 |   size_t write(const void* buf, size_t count) {
      |          ^~~~~
In file included from C:\Program Files (x86)\Arduino\hardware\teensy\avr\cores\teensy4/Stream.h:24,
                 from C:\Program Files (x86)\Arduino\hardware\teensy\avr\cores\teensy4/HardwareSerial.h:115,
                 from C:\Program Files (x86)\Arduino\hardware\teensy\avr\cores\teensy4/WProgram.h:47,
                 from C:\Users\mjcul\AppData\Local\Temp\arduino_build_263400\pch\Arduino.h:6:
C:/Program Files (x86)/Arduino/hardware/teensy/avr/libraries/SdFat/src/common/ArduinoFiles.h: In instantiation of 'class PrintFile<FsBaseFile>':
C:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\SdFat\src/SdFat.h:495:23:   required from here
  495 | class SdFile : public PrintFile<SdBaseFile> {
      |                       ^~~~~~~~~~~~~~~~~~~~~
C:\Program Files (x86)\Arduino\hardware\teensy\avr\cores\teensy4/Print.h:61:24: warning: 'virtual size_t Print::write(const uint8_t*, size_t)' was hidden [-Woverloaded-virtual=]
   61 |         virtual size_t write(const uint8_t *buffer, size_t size);
      |                        ^~~~~
In file included from C:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\SdFat\src/FsLib/FsLib.h:32,
                 from C:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\SdFat\src/SdFat.h:37,
                 from C:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\USBHost_t36\USBHost_t36.h:2451,
                 from C:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\USBHost_t36\bluetooth.cpp:33:
C:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\SdFat\src/FsLib/FsFile.h:782:10: note:   by 'size_t FsBaseFile::write(const void*, size_t)'
  782 |   size_t write(const void* buf, size_t count) {
      |          ^~~~~
In file included from C:\Program Files (x86)\Arduino\hardware\teensy\avr\cores\teensy4/Stream.h:24,
                 from C:\Program Files (x86)\Arduino\hardware\teensy\avr\cores\teensy4/HardwareSerial.h:115,
                 from C:\Program Files (x86)\Arduino\hardware\teensy\avr\cores\teensy4/WProgram.h:47,
                 from C:\Users\mjcul\AppData\Local\Temp\arduino_build_263400\pch\Arduino.h:6:
C:/Program Files (x86)/Arduino/hardware/teensy/avr/libraries/SdFat/src/common/ArduinoFiles.h: In instantiation of 'class PrintFile<FsBaseFile>':
C:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\SdFat\src/SdFat.h:495:23:   required from here
  495 | class SdFile : public PrintFile<SdBaseFile> {
      |                       ^~~~~~~~~~~~~~~~~~~~~
C:\Program Files (x86)\Arduino\hardware\teensy\avr\cores\teensy4/Print.h:61:24: warning: 'virtual size_t Print::write(const uint8_t*, size_t)' was hidden [-Woverloaded-virtual=]
   61 |         virtual size_t write(const uint8_t *buffer, size_t size);
      |                        ^~~~~
In file included from C:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\SdFat\src/FsLib/FsLib.h:32,
                 from C:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\SdFat\src/SdFat.h:37,
                 from C:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\USBHost_t36\USBHost_t36.h:2451,
                 from C:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\USBHost_t36\memory.cpp:25:
C:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\SdFat\src/FsLib/FsFile.h:782:10: note:   by 'size_t FsBaseFile::write(const void*, size_t)'
  782 |   size_t write(const void* buf, size_t count) {
      |          ^~~~~
In file included from C:\Program Files (x86)\Arduino\hardware\teensy\avr\cores\teensy4/Stream.h:24,
                 from C:\Program Files (x86)\Arduino\hardware\teensy\avr\cores\teensy4/HardwareSerial.h:115,
                 from C:\Program Files (x86)\Arduino\hardware\teensy\avr\cores\teensy4/WProgram.h:47,
                 from C:\Users\mjcul\AppData\Local\Temp\arduino_build_263400\pch\Arduino.h:6:
C:/Program Files (x86)/Arduino/hardware/teensy/avr/libraries/SdFat/src/common/ArduinoFiles.h: In instantiation of 'class PrintFile<FsBaseFile>':
C:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\SdFat\src/SdFat.h:495:23:   required from here
  495 | class SdFile : public PrintFile<SdBaseFile> {
      |                       ^~~~~~~~~~~~~~~~~~~~~
C:\Program Files (x86)\Arduino\hardware\teensy\avr\cores\teensy4/Print.h:61:24: warning: 'virtual size_t Print::write(const uint8_t*, size_t)' was hidden [-Woverloaded-virtual=]
   61 |         virtual size_t write(const uint8_t *buffer, size_t size);
      |                        ^~~~~
In file included from C:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\SdFat\src/FsLib/FsLib.h:32,
                 from C:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\SdFat\src/SdFat.h:37,
                 from C:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\USBHost_t36\USBHost_t36.h:2451,
                 from C:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\USBHost_t36\antplus.cpp:29:
C:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\SdFat\src/FsLib/FsFile.h:782:10: note:   by 'size_t FsBaseFile::write(const void*, size_t)'
  782 |   size_t write(const void* buf, size_t count) {
      |          ^~~~~
In file included from C:\Program Files (x86)\Arduino\hardware\teensy\avr\cores\teensy4/Stream.h:24,
                 from C:\Program Files (x86)\Arduino\hardware\teensy\avr\cores\teensy4/HardwareSerial.h:115,
                 from C:\Program Files (x86)\Arduino\hardware\teensy\avr\cores\teensy4/WProgram.h:47,
                 from C:\Users\mjcul\AppData\Local\Temp\arduino_build_263400\pch\Arduino.h:6:
C:/Program Files (x86)/Arduino/hardware/teensy/avr/libraries/SdFat/src/common/ArduinoFiles.h: In instantiation of 'class PrintFile<FsBaseFile>':
C:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\SdFat\src/SdFat.h:495:23:   required from here
  495 | class SdFile : public PrintFile<SdBaseFile> {
      |                       ^~~~~~~~~~~~~~~~~~~~~
C:\Program Files (x86)\Arduino\hardware\teensy\avr\cores\teensy4/Print.h:61:24: warning: 'virtual size_t Print::write(const uint8_t*, size_t)' was hidden [-Woverloaded-virtual=]
   61 |         virtual size_t write(const uint8_t *buffer, size_t size);
      |                        ^~~~~
In file included from C:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\SdFat\src/FsLib/FsLib.h:32,
                 from C:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\SdFat\src/SdFat.h:37,
                 from C:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\USBHost_t36\USBHost_t36.h:2451,
                 from C:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\USBHost_t36\enumeration.cpp:25:
C:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\SdFat\src/FsLib/FsFile.h:782:10: note:   by 'size_t FsBaseFile::write(const void*, size_t)'
  782 |   size_t write(const void* buf, size_t count) {
      |          ^~~~~
In file included from C:\Program Files (x86)\Arduino\hardware\teensy\avr\cores\teensy4/Stream.h:24,
                 from C:\Program Files (x86)\Arduino\hardware\teensy\avr\cores\teensy4/HardwareSerial.h:115,
                 from C:\Program Files (x86)\Arduino\hardware\teensy\avr\cores\teensy4/WProgram.h:47,
                 from C:\Users\mjcul\AppData\Local\Temp\arduino_build_263400\pch\Arduino.h:6:
C:/Program Files (x86)/Arduino/hardware/teensy/avr/libraries/SdFat/src/common/ArduinoFiles.h: In instantiation of 'class PrintFile<FsBaseFile>':
C:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\SdFat\src/SdFat.h:495:23:   required from here
  495 | class SdFile : public PrintFile<SdBaseFile> {
      |                       ^~~~~~~~~~~~~~~~~~~~~
C:\Program Files (x86)\Arduino\hardware\teensy\avr\cores\teensy4/Print.h:61:24: warning: 'virtual size_t Print::write(const uint8_t*, size_t)' was hidden [-Woverloaded-virtual=]
   61 |         virtual size_t write(const uint8_t *buffer, size_t size);
      |                        ^~~~~
In file included from C:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\SdFat\src/FsLib/FsLib.h:32,
                 from C:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\SdFat\src/SdFat.h:37,
                 from C:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\USBHost_t36/USBHost_t36.h:2451,
                 from C:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\USBHost_t36\utility/USBFilesystemFormatter.h:4,
                 from C:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\USBHost_t36\USBFilesystemFormatter.cpp:2:
C:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\SdFat\src/FsLib/FsFile.h:782:10: note:   by 'size_t FsBaseFile::write(const void*, size_t)'
  782 |   size_t write(const void* buf, size_t count) {
      |          ^~~~~
In file included from C:\Program Files (x86)\Arduino\hardware\teensy\avr\cores\teensy4/Stream.h:24,
                 from C:\Program Files (x86)\Arduino\hardware\teensy\avr\cores\teensy4/HardwareSerial.h:115,
                 from C:\Program Files (x86)\Arduino\hardware\teensy\avr\cores\teensy4/WProgram.h:47,
                 from C:\Users\mjcul\AppData\Local\Temp\arduino_build_263400\pch\Arduino.h:6:
C:/Program Files (x86)/Arduino/hardware/teensy/avr/libraries/SdFat/src/common/ArduinoFiles.h: In instantiation of 'class PrintFile<FsBaseFile>':
C:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\SdFat\src/SdFat.h:495:23:   required from here
  495 | class SdFile : public PrintFile<SdBaseFile> {
      |                       ^~~~~~~~~~~~~~~~~~~~~
C:\Program Files (x86)\Arduino\hardware\teensy\avr\cores\teensy4/Print.h:61:24: warning: 'virtual size_t Print::write(const uint8_t*, size_t)' was hidden [-Woverloaded-virtual=]
   61 |         virtual size_t write(const uint8_t *buffer, size_t size);
      |                        ^~~~~
In file included from C:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\SdFat\src/FsLib/FsLib.h:32,
                 from C:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\SdFat\src/SdFat.h:37,
                 from C:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\USBHost_t36\USBHost_t36.h:2451,
                 from C:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\USBHost_t36\SerEMU.cpp:25:
C:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\SdFat\src/FsLib/FsFile.h:782:10: note:   by 'size_t FsBaseFile::write(const void*, size_t)'
  782 |   size_t write(const void* buf, size_t count) {
      |          ^~~~~
In file included from C:\Program Files (x86)\Arduino\hardware\teensy\avr\cores\teensy4/Stream.h:24,
                 from C:\Program Files (x86)\Arduino\hardware\teensy\avr\cores\teensy4/HardwareSerial.h:115,
                 from C:\Program Files (x86)\Arduino\hardware\teensy\avr\cores\teensy4/WProgram.h:47,
                 from C:\Users\mjcul\AppData\Local\Temp\arduino_build_263400\pch\Arduino.h:6:
C:/Program Files (x86)/Arduino/hardware/teensy/avr/libraries/SdFat/src/common/ArduinoFiles.h: In instantiation of 'class PrintFile<FsBaseFile>':
C:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\SdFat\src/SdFat.h:495:23:   required from here
  495 | class SdFile : public PrintFile<SdBaseFile> {
      |                       ^~~~~~~~~~~~~~~~~~~~~
C:\Program Files (x86)\Arduino\hardware\teensy\avr\cores\teensy4/Print.h:61:24: warning: 'virtual size_t Print::write(const uint8_t*, size_t)' was hidden [-Woverloaded-virtual=]
   61 |         virtual size_t write(const uint8_t *buffer, size_t size);
      |                        ^~~~~
In file included from C:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\SdFat\src/FsLib/FsLib.h:32,
                 from C:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\SdFat\src/SdFat.h:37,
                 from C:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\USBHost_t36\USBHost_t36.h:2451,
                 from C:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\USBHost_t36\ehci.cpp:25:
C:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\SdFat\src/FsLib/FsFile.h:782:10: note:   by 'size_t FsBaseFile::write(const void*, size_t)'
  782 |   size_t write(const void* buf, size_t count) {
      |          ^~~~~
In file included from C:\Program Files (x86)\Arduino\hardware\teensy\avr\cores\teensy4/Stream.h:24,
                 from C:\Program Files (x86)\Arduino\hardware\teensy\avr\cores\teensy4/HardwareSerial.h:115,
                 from C:\Program Files (x86)\Arduino\hardware\teensy\avr\cores\teensy4/WProgram.h:47,
                 from C:\Users\mjcul\AppData\Local\Temp\arduino_build_263400\pch\Arduino.h:6:
C:/Program Files (x86)/Arduino/hardware/teensy/avr/libraries/SdFat/src/common/ArduinoFiles.h: In instantiation of 'class PrintFile<FsBaseFile>':
C:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\SdFat\src/SdFat.h:495:23:   required from here
  495 | class SdFile : public PrintFile<SdBaseFile> {
      |                       ^~~~~~~~~~~~~~~~~~~~~
C:\Program Files (x86)\Arduino\hardware\teensy\avr\cores\teensy4/Print.h:61:24: warning: 'virtual size_t Print::write(const uint8_t*, size_t)' was hidden [-Woverloaded-virtual=]
   61 |         virtual size_t write(const uint8_t *buffer, size_t size);
      |                        ^~~~~
In file included from C:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\SdFat\src/FsLib/FsLib.h:32,
                 from C:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\SdFat\src/SdFat.h:37,
                 from C:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\USBHost_t36\USBHost_t36.h:2451,
                 from C:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\USBHost_t36\midi.cpp:25:
C:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\SdFat\src/FsLib/FsFile.h:782:10: note:   by 'size_t FsBaseFile::write(const void*, size_t)'
  782 |   size_t write(const void* buf, size_t count) {
      |          ^~~~~
In file included from C:\Program Files (x86)\Arduino\hardware\teensy\avr\cores\teensy4/Stream.h:24,
                 from C:\Program Files (x86)\Arduino\hardware\teensy\avr\cores\teensy4/HardwareSerial.h:115,
                 from C:\Program Files (x86)\Arduino\hardware\teensy\avr\cores\teensy4/WProgram.h:47,
                 from C:\Users\mjcul\AppData\Local\Temp\arduino_build_263400\pch\Arduino.h:6:
C:/Program Files (x86)/Arduino/hardware/teensy/avr/libraries/SdFat/src/common/ArduinoFiles.h: In instantiation of 'class PrintFile<FsBaseFile>':
C:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\SdFat\src/SdFat.h:495:23:   required from here
  495 | class SdFile : public PrintFile<SdBaseFile> {
      |                       ^~~~~~~~~~~~~~~~~~~~~
C:\Program Files (x86)\Arduino\hardware\teensy\avr\cores\teensy4/Print.h:61:24: warning: 'virtual size_t Print::write(const uint8_t*, size_t)' was hidden [-Woverloaded-virtual=]
   61 |         virtual size_t write(const uint8_t *buffer, size_t size);
      |                        ^~~~~
In file included from C:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\SdFat\src/FsLib/FsLib.h:32,
                 from C:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\SdFat\src/SdFat.h:37,
                 from C:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\USBHost_t36\USBHost_t36.h:2451,
                 from C:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\USBHost_t36\MassStorageDriver.cpp:28:
C:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\SdFat\src/FsLib/FsFile.h:782:10: note:   by 'size_t FsBaseFile::write(const void*, size_t)'
  782 |   size_t write(const void* buf, size_t count) {
      |          ^~~~~
In file included from C:\Program Files (x86)\Arduino\hardware\teensy\avr\cores\teensy4/Stream.h:24,
                 from C:\Program Files (x86)\Arduino\hardware\teensy\avr\cores\teensy4/HardwareSerial.h:115,
                 from C:\Program Files (x86)\Arduino\hardware\teensy\avr\cores\teensy4/WProgram.h:47,
                 from C:\Users\mjcul\AppData\Local\Temp\arduino_build_263400\pch\Arduino.h:6:
C:/Program Files (x86)/Arduino/hardware/teensy/avr/libraries/SdFat/src/common/ArduinoFiles.h: In instantiation of 'class PrintFile<FsBaseFile>':
C:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\SdFat\src/SdFat.h:495:23:   required from here
  495 | class SdFile : public PrintFile<SdBaseFile> {
      |                       ^~~~~~~~~~~~~~~~~~~~~
C:\Program Files (x86)\Arduino\hardware\teensy\avr\cores\teensy4/Print.h:61:24: warning: 'virtual size_t Print::write(const uint8_t*, size_t)' was hidden [-Woverloaded-virtual=]
   61 |         virtual size_t write(const uint8_t *buffer, size_t size);
      |                        ^~~~~
In file included from C:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\SdFat\src/FsLib/FsLib.h:32,
                 from C:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\SdFat\src/SdFat.h:37,
                 from C:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\USBHost_t36\USBHost_t36.h:2451,
                 from C:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\USBHost_t36\digitizer.cpp:25:
C:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\SdFat\src/FsLib/FsFile.h:782:10: note:   by 'size_t FsBaseFile::write(const void*, size_t)'
  782 |   size_t write(const void* buf, size_t count) {
      |          ^~~~~
In file included from C:\Program Files (x86)\Arduino\hardware\teensy\avr\cores\teensy4/Stream.h:24,
                 from C:\Program Files (x86)\Arduino\hardware\teensy\avr\cores\teensy4/HardwareSerial.h:115,
                 from C:\Program Files (x86)\Arduino\hardware\teensy\avr\cores\teensy4/WProgram.h:47,
                 from C:\Users\mjcul\AppData\Local\Temp\arduino_build_263400\pch\Arduino.h:6:
C:/Program Files (x86)/Arduino/hardware/teensy/avr/libraries/SdFat/src/common/ArduinoFiles.h: In instantiation of 'class PrintFile<FsBaseFile>':
C:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\SdFat\src/SdFat.h:495:23:   required from here
  495 | class SdFile : public PrintFile<SdBaseFile> {
      |                       ^~~~~~~~~~~~~~~~~~~~~
C:\Program Files (x86)\Arduino\hardware\teensy\avr\cores\teensy4/Print.h:61:24: warning: 'virtual size_t Print::write(const uint8_t*, size_t)' was hidden [-Woverloaded-virtual=]
   61 |         virtual size_t write(const uint8_t *buffer, size_t size);
      |                        ^~~~~
In file included from C:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\SdFat\src/FsLib/FsLib.h:32,
                 from C:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\SdFat\src/SdFat.h:37,
                 from C:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\USBHost_t36\USBHost_t36.h:2451,
                 from C:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\USBHost_t36\mouse.cpp:25:
C:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\SdFat\src/FsLib/FsFile.h:782:10: note:   by 'size_t FsBaseFile::write(const void*, size_t)'
  782 |   size_t write(const void* buf, size_t count) {
      |          ^~~~~
In file included from C:\Program Files (x86)\Arduino\hardware\teensy\avr\cores\teensy4/Stream.h:24,
                 from C:\Program Files (x86)\Arduino\hardware\teensy\avr\cores\teensy4/HardwareSerial.h:115,
                 from C:\Program Files (x86)\Arduino\hardware\teensy\avr\cores\teensy4/WProgram.h:47,
                 from C:\Users\mjcul\AppData\Local\Temp\arduino_build_263400\pch\Arduino.h:6:
C:/Program Files (x86)/Arduino/hardware/teensy/avr/libraries/SdFat/src/common/ArduinoFiles.h: In instantiation of 'class PrintFile<FsBaseFile>':
C:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\SdFat\src/SdFat.h:495:23:   required from here
  495 | class SdFile : public PrintFile<SdBaseFile> {
      |                       ^~~~~~~~~~~~~~~~~~~~~
C:\Program Files (x86)\Arduino\hardware\teensy\avr\cores\teensy4/Print.h:61:24: warning: 'virtual size_t Print::write(const uint8_t*, size_t)' was hidden [-Woverloaded-virtual=]
   61 |         virtual size_t write(const uint8_t *buffer, size_t size);
      |                        ^~~~~
In file included from C:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\SdFat\src/FsLib/FsLib.h:32,
                 from C:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\SdFat\src/SdFat.h:37,
                 from C:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\USBHost_t36\USBHost_t36.h:2451,
                 from C:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\USBHost_t36\print.cpp:25:
C:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\SdFat\src/FsLib/FsFile.h:782:10: note:   by 'size_t FsBaseFile::write(const void*, size_t)'
  782 |   size_t write(const void* buf, size_t count) {
      |          ^~~~~
In file included from C:\Program Files (x86)\Arduino\hardware\teensy\avr\cores\teensy4/Stream.h:24,
                 from C:\Program Files (x86)\Arduino\hardware\teensy\avr\cores\teensy4/HardwareSerial.h:115,
                 from C:\Program Files (x86)\Arduino\hardware\teensy\avr\cores\teensy4/WProgram.h:47,
                 from C:\Users\mjcul\AppData\Local\Temp\arduino_build_263400\pch\Arduino.h:6:
C:/Program Files (x86)/Arduino/hardware/teensy/avr/libraries/SdFat/src/common/ArduinoFiles.h: In instantiation of 'class PrintFile<FsBaseFile>':
C:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\SdFat\src/SdFat.h:495:23:   required from here
  495 | class SdFile : public PrintFile<SdBaseFile> {
      |                       ^~~~~~~~~~~~~~~~~~~~~
C:\Program Files (x86)\Arduino\hardware\teensy\avr\cores\teensy4/Print.h:61:24: warning: 'virtual size_t Print::write(const uint8_t*, size_t)' was hidden [-Woverloaded-virtual=]
   61 |         virtual size_t write(const uint8_t *buffer, size_t size);
      |                        ^~~~~
In file included from C:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\SdFat\src/FsLib/FsLib.h:32,
                 from C:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\SdFat\src/SdFat.h:37,
                 from C:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\USBHost_t36\USBHost_t36.h:2451,
                 from C:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\USBHost_t36\adk.cpp:26:
C:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\SdFat\src/FsLib/FsFile.h:782:10: note:   by 'size_t FsBaseFile::write(const void*, size_t)'
  782 |   size_t write(const void* buf, size_t count) {
      |          ^~~~~
In file included from C:\Program Files (x86)\Arduino\hardware\teensy\avr\cores\teensy4/Stream.h:24,
                 from C:\Program Files (x86)\Arduino\hardware\teensy\avr\cores\teensy4/HardwareSerial.h:115,
                 from C:\Program Files (x86)\Arduino\hardware\teensy\avr\cores\teensy4/WProgram.h:47,
                 from C:\Users\mjcul\AppData\Local\Temp\arduino_build_263400\pch\Arduino.h:6:
C:/Program Files (x86)/Arduino/hardware/teensy/avr/libraries/SdFat/src/common/ArduinoFiles.h: In instantiation of 'class PrintFile<FsBaseFile>':
C:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\SdFat\src/SdFat.h:495:23:   required from here
  495 | class SdFile : public PrintFile<SdBaseFile> {
      |                       ^~~~~~~~~~~~~~~~~~~~~
C:\Program Files (x86)\Arduino\hardware\teensy\avr\cores\teensy4/Print.h:61:24: warning: 'virtual size_t Print::write(const uint8_t*, size_t)' was hidden [-Woverloaded-virtual=]
   61 |         virtual size_t write(const uint8_t *buffer, size_t size);
      |                        ^~~~~
In file included from C:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\SdFat\src/FsLib/FsLib.h:32,
                 from C:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\SdFat\src/SdFat.h:37,
                 from C:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\USBHost_t36\USBHost_t36.h:2451,
                 from C:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\USBHost_t36\serial.cpp:27:
C:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\SdFat\src/FsLib/FsFile.h:782:10: note:   by 'size_t FsBaseFile::write(const void*, size_t)'
  782 |   size_t write(const void* buf, size_t count) {
      |          ^~~~~
fork/exec C:\Program Files (x86)\Arduino\hardware\teensy/../tools/arm/bin/arm-none-eabi-objcopy.exe: Access is denied.
Error compiling for board Teensy 4.1.
 
Norton finally cleared arm-none-eabi-gcc.exe, continued by complaining about collect2.exe, & then sent arm-none-eabi-objcopy.exe off for analysis (another couple of hours !!).

OK, so Norton also cleared arm-none-eabi-objcopy.exe as well, only to then complain about & be suspicious of arm-none-eabi-objdump.exe. Fortunately, it cleared this one quickly & proceeded. Here's a summary of the final timing results on my particular Windows laptop when building this particular source file (all of the comments & observations previously noted still apply) :

Standard install of TD1.61 (assume 64-bit tools loaded by default): 26 seconds

Standard install of TD1.62b2 (assume 64-bit tools loaded by default): 23 seconds

Manual install of TD1.62b2 32-bit, using the steps @PaulStoffregen described in <p#2> above: 25 seconds

Manual install of TD1.62b2 64-bit, using the steps @PaulStoffregen described in <p#2> above: 23 seconds

Mark J Culross
KD5RXT
 
the changes for T4.1 seem to be an error, making every region R+X.

You're talking about this commit, right? 2 of the 4 sections become "rx", the other 2 are "rw". Isn't that how we're actually using these and configuring the MMU?

The new 15.2 linker gives warnings about "rwx" on all programs. I'm not sure changing the linker scripts really did anything, as the warnings kept coming. I also added "--no-warn-rwx-segments" to the linker command line in boards.txt.

This was one of the very first things I did on the first try with gcc 15.2, but then I quickly moved on to fixing Wire compile errors, to get to a usable state to release beta1. Must admit, I haven't really put much more thought into the memory sections since then. I spent the last few days on repackaging the toolchain better, adding the Windows 64 bit version, and fixing and better testing of compile time init for Serial, Wire, SPI, HardwareSerial. Haven't really given the linker script more thought since that first use of the new toolchain...

I'm open to ideas about what should be done. I could put them all back to "rwx" now that the command link suppresses the warnings. Or they could become anything else. So far I've not seen this actually make any difference.
 
Note that the following warning/error report was generated using the new TD1.61.b2:

Looks like the only actual error was Norton blocking access.

Cleaning up the huge pile of -Woverloaded-virtual warnings is next on my gcc 15.2 to-do list! I'm pretty sure the fundamental problem is a long legacy of not quite the same pointer types used by write(buffer, size) in different libraries. Some have "const uint8_t *" but others use "void uint8_t *". Until now that hasn't really been a problem, but gcc 15.2 is taking notice and complaining.

Just suppressing this warning seems tempting, but actually editing the libraries for consistency is probably the better long term plan.
 
NOTE: Had to change to "Smallest Code" optimization, as building with "Faster" optimization now exceeds available RAM1 (This problem was not previously observed in earlier TD versions)

Any chance I could convince you to share that code to reproduce the problem? If it's not public, could you send it to me by email? I'll only use it briefly to investigate and then delete.
 
I'm hoping for help with a compiler warning in ILI9488_t3, complaining of infinite recursion. Is anyone who worked on that library available to take a look?

EDIT: my best guess is a drawChar() which takes a single parameter for size was meant to call the drawChar() which takes 2 size parameters. Maybe? As written, looks like it will indeed just call itself, infinitely! That can't be right. Difficult to know what was really intended, as the single size drawChar() doesn't seem to be actually used anywhere.
 
Last edited:
I agree. Line 357 says // from Adafruit_GFX.h, at the start of a block of method declarations; if you then look at line 1374 of the Adafruit code, you see it does exactly what you said, duplicating the "magnification level".

It seems to be a historical feature of C++ that you could declare a method but not define it, and no error would be thrown unless you tried to use it (as an example, WS2812Serial::busy()...). So maybe this is similar - if there's an error in the definition, but it's not called, older compilers don't throw an error.
 
It seems to be a historical feature of C++ that you could declare a method but not define it, and no error would be thrown unless you tried to use it (as an example, WS2812Serial::busy()...).
That error happens when trying to link with a function that doesn't exist. If the function is never referenced the linker never has a reason to look for it.
 
Last edited:
I'm getting an annoying "dangling pointer" warning that is a false alarm. The function in question is this one, I'll try to explain what is happening:

- atomTimerDelay() is called to delay a thread for a set amount of time, during which it will be scheduled out (any other available thread will run instead, there is an idle thread that is always available)
- the function creates a local timer "timer_cb" on the stack, passes it to atomTimerRegister()
- atomTimerRegister stores the address of timer_cb in a global pointer "timer_queue". That triggers the compiler warning, since the address of a local object is being stored in a global pointer.
- atomTimerDelay then calls atomSched(). This halts execution of the thread until the timer expires, i.e. by the time atomSched returns timer_queue no longer holds the address of timer_cb, it is safe for atomTimerDelay to finish without leaving a dangling pointer reference.

It's a bit annoying that there's no way around this without killing the warning (with a pragma), atomSched is in a different compilation unit so the compiler at this point has no idea what it does and just assumes it doesn't clean up the pointer...
In any case simply assigning a local address to a global pointer variable isn't a programming error - I think this another warning that could be a viable candidate to be globally ignored.
 
I'm hoping for help with a compiler warning in ILI9488_t3, complaining of infinite recursion. Is anyone who worked on that library available to take a look?

EDIT: my best guess is a drawChar() which takes a single parameter for size was meant to call the drawChar() which takes 2 size parameters. Maybe? As written, looks like it will indeed just call itself, infinitely! That can't be right. Difficult to know what was really intended, as the single size drawChar() doesn't seem to be actually used anywhere.
Yep, I believe it is supposed to be:
Code:
void drawChar(int16_t x, int16_t y, unsigned char c, uint16_t color, uint16_t bg, uint8_t size_x, uint8_t size_y);
    void inline drawChar(int16_t x, int16_t y, unsigned char c, uint16_t color, uint16_t bg, uint8_t size)
        { drawChar(x, y, c, color, bg, size, size);}

I just pushed up that change...
 
I just pushed up that change...

Thanks. I just pulled it into my copy.

Can I talk you into 1 more? Compiler is warning these 2 are used uninitialized.

Code:
    int16_t  _originx, _originy;

Would just setting them to zero be correct?

Code:
    int16_t  _originx = 0, _originy = 0;
 
Back
Top