platform-atmelavr
platform-atmelavr copied to clipboard
Digistump digispark ATTiny85 compile time noise
Hi guys!
When compiling for a digispark, I get a lot of warning noise. I do not know how important this is but it makes me at least nervous every time I compile my code :-)
It boils down to
- redefinition of BIN already mentioned in https://github.com/platformio/platform-atmelavr/issues/47 in 2017
- #warning "This file has been moved to <...>
- warning: initialization makes integer from pointer without a cast [-Wint-conversion]
- warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
Any chance to get this fixed please?
Br, Alex.
github project: https://github.com/anno73/IoT-Universal-Socket-Strip/tree/master/software/relay
platformio.ini:
[platformio]
description = IoT Universal Socket Strip
[env:digispark-vusb]
platform = atmelavr
board = digispark-tiny
framework = arduino
debug_tool = simavr
lib_deps =
; nickcengel/TinyWireSio @ ^0.0.0-alpha+sha.722ada4382
nickcengel/TinyWireSio
prosenb/EEPROMWearLevel @ ^2.0.0
lib_ldf_mode = chain+
Compile time output:
> Executing task in folder relay: C:\Users\alex\.platformio\penv\Scripts\pio.exe run <
Processing digispark-vusb (platform: atmelavr; board: digispark-tiny; framework: arduino)
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------Verbose mode can be enabled via `-v, --verbose` option
CONFIGURATION: https://docs.platformio.org/page/boards/atmelavr/digispark-tiny.html
PLATFORM: Atmel AVR (3.1.0) > Digispark USB
HARDWARE: ATTINY85 16MHz, 512B RAM, 5.87KB Flash
DEBUG: Current (simavr) On-board (simavr)
PACKAGES:
- framework-arduino-avr-digistump 1.6.7
- toolchain-atmelavr 1.50400.190710 (5.4.0)
LDF: Library Dependency Finder -> http://bit.ly/configure-pio-ldf
LDF Modes: Finder ~ chain+, Compatibility ~ soft
Found 32 compatible libraries
Scanning dependencies...
Dependency Graph
|-- <TinyWireSio> 0.0.0-alpha+sha.722ada4382
|-- <EEPROM> 2.0
|-- <EEPROMWearLevel> 2.0.0
| |-- <EEPROM> 2.0
Building in release mode
Compiling .pio\build\digispark-vusb\src\main.cpp.o
Compiling .pio\build\digispark-vusb\lib639\TinyWireSio\TinyWireS.cpp.o
Compiling .pio\build\digispark-vusb\lib639\TinyWireSio\usiTwiSlave.c.o
Archiving .pio\build\digispark-vusb\lib1ac\libEEPROM.a
Compiling .pio\build\digispark-vusb\lib69f\EEPROMWearLevel\EEPROMWearLevel.cpp.o
Compiling .pio\build\digispark-vusb\FrameworkArduinoVariant\pins_arduino.c.o
Compiling .pio\build\digispark-vusb\FrameworkArduino\HardwareSerial.cpp.o
Compiling .pio\build\digispark-vusb\FrameworkArduino\Print.cpp.o
In file included from C:\users\alex\.platformio\packages\framework-arduino-avr-digistump\cores\dtiny/Stream.h:24:0,
from C:\users\alex\.platformio\packages\framework-arduino-avr-digistump\cores\dtiny/TinyDebugSerial.h:31,
from C:\users\alex\.platformio\packages\framework-arduino-avr-digistump\cores\dtiny/WProgram.h:18,
from C:\users\alex\.platformio\packages\framework-arduino-avr-digistump\cores\dtiny/Arduino.h:4,
Compiling .pio\build\digispark-vusb\FrameworkArduino\TinyDebugSerial.cpp.o
Compiling .pio\build\digispark-vusb\FrameworkArduino\TinyDebugSerial115200.cpp.o
from .pio\libdeps\digispark-vusb\TinyWireSio\TinyWireS.cpp:23:
Compiling .pio\build\digispark-vusb\FrameworkArduino\TinyDebugSerial38400.cpp.o
C:\users\alex\.platformio\packages\framework-arduino-avr-digistump\cores\dtiny/Print.h:37:0: warning: "BIN" redefined
Archiving .pio\build\digispark-vusb\lib639\libTinyWireSio.a
#define BIN 2
^
In file included from c:\users\alex\.platformio\packages\toolchain-atmelavr\avr\include\avr\iotn85.h:38:0,
from c:\users\alex\.platformio\packages\toolchain-atmelavr\avr\include\avr\io.h:428,
from c:\users\alex\.platformio\packages\toolchain-atmelavr\avr\include\avr\interrupt.h:38,
from .pio\libdeps\digispark-vusb\TinyWireSio\TinyWireS.cpp:19:
c:\users\alex\.platformio\packages\toolchain-atmelavr\avr\include\avr\iotnx5.h:55:0: note: this is the location of the previous definition
#define BIN 7
^
.pio\libdeps\digispark-vusb\TinyWireSio\usiTwiSlave.c: In function 'usiTwiTransmitByte':
.pio\libdeps\digispark-vusb\TinyWireSio\usiTwiSlave.c:403:11: warning: unused variable 'tmphead' [-Wunused-variable]
uint8_t tmphead;
^
Archiving .pio\build\digispark-vusb\libFrameworkArduinoVariant.a
In file included from C:\users\alex\.platformio\packages\framework-arduino-avr-digistump\cores\dtiny/Stream.h:24:0,
Compiling .pio\build\digispark-vusb\FrameworkArduino\TinyDebugSerial9600.cpp.o
from C:\users\alex\.platformio\packages\framework-arduino-avr-digistump\cores\dtiny/TinyDebugSerial.h:31,
from C:\users\alex\.platformio\packages\framework-arduino-avr-digistump\cores\dtiny/WProgram.h:18,
from C:\users\alex\.platformio\packages\framework-arduino-avr-digistump\cores\dtiny/Arduino.h:4,
from src\main.cpp:1:
C:\users\alex\.platformio\packages\framework-arduino-avr-digistump\cores\dtiny/Print.h:37:0: warning: "BIN" redefined
Compiling .pio\build\digispark-vusb\FrameworkArduino\TinyDebugSerialErrors.cpp.o
Archiving .pio\build\digispark-vusb\lib69f\libEEPROMWearLevel.a
#define BIN 2
^
In file included from c:\users\alex\.platformio\packages\toolchain-atmelavr\avr\include\avr\iotn85.h:38:0,
Compiling .pio\build\digispark-vusb\FrameworkArduino\Tone.cpp.o
from c:\users\alex\.platformio\packages\toolchain-atmelavr\avr\include\avr\io.h:428,
from c:\users\alex\.platformio\packages\toolchain-atmelavr\avr\include\avr\interrupt.h:38,
from C:\users\alex\.platformio\packages\framework-arduino-avr-digistump\cores\dtiny/WProgram.h:8,
from C:\users\alex\.platformio\packages\framework-arduino-avr-digistump\cores\dtiny/Arduino.h:4,
from src\main.cpp:1:
c:\users\alex\.platformio\packages\toolchain-atmelavr\avr\include\avr\iotnx5.h:55:0: note: this is the location of the previous definition
#define BIN 7
^
src\main.cpp: In function 'void readConfigFromEeprom()':
src\main.cpp:537:15: warning: implicit dereference will not access object of type 'volatile unsigned char' in statement
EEPROM.get(0, iicSlaveAddress);
Compiling .pio\build\digispark-vusb\FrameworkArduino\WInterrupts.c.o
^
In file included from C:\users\alex\.platformio\packages\framework-arduino-avr-digistump\cores\dtiny/Stream.h:24:0,
from C:\users\alex\.platformio\packages\framework-arduino-avr-digistump\cores\dtiny/TinyDebugSerial.h:31,
from C:\users\alex\.platformio\packages\framework-arduino-avr-digistump\cores\dtiny/WProgram.h:18,
from C:\users\alex\.platformio\packages\framework-arduino-avr-digistump\cores\dtiny/Arduino.h:4,
from .pio\libdeps\digispark-vusb\EEPROMWearLevel\EEPROMWearLevel.cpp:1:
C:\users\alex\.platformio\packages\framework-arduino-avr-digistump\cores\dtiny/Print.h:37:0: warning: "BIN" redefined
#define BIN 2
Compiling .pio\build\digispark-vusb\FrameworkArduino\WMath.cpp.o
^
In file included from c:\users\alex\.platformio\packages\toolchain-atmelavr\avr\include\avr\iotn85.h:38:0,
from c:\users\alex\.platformio\packages\toolchain-atmelavr\avr\include\avr\io.h:428,
from c:\users\alex\.platformio\packages\toolchain-atmelavr\avr\include\avr\interrupt.h:38,
from C:\users\alex\.platformio\packages\framework-arduino-avr-digistump\cores\dtiny/WProgram.h:8,
from C:\users\alex\.platformio\packages\framework-arduino-avr-digistump\cores\dtiny/Arduino.h:4,
from .pio\libdeps\digispark-vusb\EEPROMWearLevel\EEPROMWearLevel.cpp:1:
c:\users\alex\.platformio\packages\toolchain-atmelavr\avr\include\avr\iotnx5.h:55:0: note: this is the location of the previous definition
#define BIN 7
^
In file included from C:\users\alex\.platformio\packages\framework-arduino-avr-digistump\cores\dtiny\Print.cpp:28:0:
C:\users\alex\.platformio\packages\framework-arduino-avr-digistump\cores\dtiny\Print.h:37:0: warning: "BIN" redefined
#define BIN 2
^
In file included from C:\users\alex\.platformio\packages\framework-arduino-avr-digistump\cores\dtiny/wiring_private.h:32:0,
from C:\users\alex\.platformio\packages\framework-arduino-avr-digistump\variants\digispark\pins_arduino.c:38:
c:\users\alex\.platformio\packages\toolchain-atmelavr\avr\include\avr\delay.h:36:2: warning: #warning "This file has been moved to <util/delay.h>." [-Wcpp]
#warning "This file has been moved to <util/delay.h>."
^
In file included from C:\users\alex\.platformio\packages\framework-arduino-avr-digistump\cores\dtiny\wiring_private.h:32:0,
from C:\users\alex\.platformio\packages\framework-arduino-avr-digistump\cores\dtiny\HardwareSerial.cpp:30:
c:\users\alex\.platformio\packages\toolchain-atmelavr\avr\include\avr\delay.h:36:2: warning: #warning "This file has been moved to <util/delay.h>." [-Wcpp]
#warning "This file has been moved to <util/delay.h>."
^
In file included from .pio\libdeps\digispark-vusb\EEPROMWearLevel\EEPROMWearLevel.h:23:0,
from .pio\libdeps\digispark-vusb\EEPROMWearLevel\EEPROMWearLevel.cpp:2:
C:\users\alex\.platformio\packages\framework-arduino-avr-digistump\libraries\EEPROM\src/EEPROM.h:145:20: warning: 'EEPROM' defined but not used [-Wunused-variable]
static EEPROMClass EEPROM;
^
In file included from c:\users\alex\.platformio\packages\toolchain-atmelavr\avr\include\avr\iotn85.h:38:0,
from c:\users\alex\.platformio\packages\toolchain-atmelavr\avr\include\avr\io.h:428,
from C:\users\alex\.platformio\packages\framework-arduino-avr-digistump\cores\dtiny\wiring.h:31,
from C:\users\alex\.platformio\packages\framework-arduino-avr-digistump\cores\dtiny\Print.cpp:27:
c:\users\alex\.platformio\packages\toolchain-atmelavr\avr\include\avr\iotnx5.h:55:0: note: this is the location of the previous definition
#define BIN 7
^
C:\users\alex\.platformio\packages\framework-arduino-avr-digistump\variants\digispark\pins_arduino.c:274:2: warning: initialization makes integer from pointer without a cast [-Wint-conversion]
&DDRB,
^
C:\users\alex\.platformio\packages\framework-arduino-avr-digistump\variants\digispark\pins_arduino.c:274:2: note: (near initialization for 'port_to_mode_PGM[1]')
C:\users\alex\.platformio\packages\framework-arduino-avr-digistump\variants\digispark\pins_arduino.c:280:2: warning: initialization makes integer from pointer without a cast [-Wint-conversion]
&PORTB,
^
C:\users\alex\.platformio\packages\framework-arduino-avr-digistump\variants\digispark\pins_arduino.c:280:2: note: (near initialization for 'port_to_output_PGM[1]')
C:\users\alex\.platformio\packages\framework-arduino-avr-digistump\variants\digispark\pins_arduino.c:286:2: warning: initialization makes integer from pointer without a cast [-Wint-conversion]
Compiling .pio\build\digispark-vusb\FrameworkArduino\WString.cpp.o
&PINB,
Compiling .pio\build\digispark-vusb\FrameworkArduino\main.cpp.o
Compiling .pio\build\digispark-vusb\FrameworkArduino\new.cpp.o
^
C:\users\alex\.platformio\packages\framework-arduino-avr-digistump\variants\digispark\pins_arduino.c:286:2: note: (near initialization for 'port_to_input_PGM[1]')
C:\users\alex\.platformio\packages\framework-arduino-avr-digistump\cores\dtiny\Print.cpp: In member function 'void Print::print(const String&)':
Compiling .pio\build\digispark-vusb\FrameworkArduino\pins_arduino.c.o
C:\users\alex\.platformio\packages\framework-arduino-avr-digistump\cores\dtiny\Print.cpp:48:21: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for (int i = 0; i < s.length(); i++) {
^
In file included from C:\users\alex\.platformio\packages\framework-arduino-avr-digistump\cores\dtiny\Stream.h:24:0,
from C:\users\alex\.platformio\packages\framework-arduino-avr-digistump\cores\dtiny\TinyDebugSerial.h:31,
from C:\users\alex\.platformio\packages\framework-arduino-avr-digistump\cores\dtiny\TinyDebugSerial115200.cpp:24:
C:\users\alex\.platformio\packages\framework-arduino-avr-digistump\cores\dtiny\Print.h:37:0: warning: "BIN" redefined
#define BIN 2
^
In file included from c:\users\alex\.platformio\packages\toolchain-atmelavr\avr\include\avr\iotn85.h:38:0,
from c:\users\alex\.platformio\packages\toolchain-atmelavr\avr\include\avr\io.h:428,
from c:\users\alex\.platformio\packages\toolchain-atmelavr\avr\include\avr\pgmspace.h:90,
from C:\users\alex\.platformio\packages\framework-arduino-avr-digistump\cores\dtiny\Print.h:30,
from C:\users\alex\.platformio\packages\framework-arduino-avr-digistump\cores\dtiny\Stream.h:24,
from C:\users\alex\.platformio\packages\framework-arduino-avr-digistump\cores\dtiny\TinyDebugSerial.h:31,
from C:\users\alex\.platformio\packages\framework-arduino-avr-digistump\cores\dtiny\TinyDebugSerial115200.cpp:24:
c:\users\alex\.platformio\packages\toolchain-atmelavr\avr\include\avr\iotnx5.h:55:0: note: this is the location of the previous definition
#define BIN 7
^
In file included from C:\users\alex\.platformio\packages\framework-arduino-avr-digistump\cores\dtiny\Stream.h:24:0,
from C:\users\alex\.platformio\packages\framework-arduino-avr-digistump\cores\dtiny\TinyDebugSerial.h:31,
from C:\users\alex\.platformio\packages\framework-arduino-avr-digistump\cores\dtiny\TinyDebugSerial.cpp:25:
C:\users\alex\.platformio\packages\framework-arduino-avr-digistump\cores\dtiny\Print.h:37:0: warning: "BIN" redefined
#define BIN 2
^
In file included from C:\users\alex\.platformio\packages\framework-arduino-avr-digistump\cores\dtiny\Stream.h:24:0,
from C:\users\alex\.platformio\packages\framework-arduino-avr-digistump\cores\dtiny\TinyDebugSerial.h:31,
from C:\users\alex\.platformio\packages\framework-arduino-avr-digistump\cores\dtiny\TinyDebugSerial38400.cpp:24:
C:\users\alex\.platformio\packages\framework-arduino-avr-digistump\cores\dtiny\Print.h:37:0: warning: "BIN" redefined
#define BIN 2
^
In file included from C:\users\alex\.platformio\packages\framework-arduino-avr-digistump\cores\dtiny\Stream.h:24:0,
from C:\users\alex\.platformio\packages\framework-arduino-avr-digistump\cores\dtiny\TinyDebugSerial.h:31,
from C:\users\alex\.platformio\packages\framework-arduino-avr-digistump\cores\dtiny\TinyDebugSerial9600.cpp:24:
C:\users\alex\.platformio\packages\framework-arduino-avr-digistump\cores\dtiny\Print.h:37:0: warning: "BIN" redefined
Compiling .pio\build\digispark-vusb\FrameworkArduino\wiring.c.o
#define BIN 2
^
In file included from c:\users\alex\.platformio\packages\toolchain-atmelavr\avr\include\avr\iotn85.h:38:0,
from c:\users\alex\.platformio\packages\toolchain-atmelavr\avr\include\avr\io.h:428,
from c:\users\alex\.platformio\packages\toolchain-atmelavr\avr\include\avr\pgmspace.h:90,
from C:\users\alex\.platformio\packages\framework-arduino-avr-digistump\cores\dtiny\Print.h:30,
from C:\users\alex\.platformio\packages\framework-arduino-avr-digistump\cores\dtiny\Stream.h:24,
from C:\users\alex\.platformio\packages\framework-arduino-avr-digistump\cores\dtiny\TinyDebugSerial.h:31,
from C:\users\alex\.platformio\packages\framework-arduino-avr-digistump\cores\dtiny\TinyDebugSerial.cpp:25:
c:\users\alex\.platformio\packages\toolchain-atmelavr\avr\include\avr\iotnx5.h:55:0: note: this is the location of the previous definition
#define BIN 7
^
In file included from c:\users\alex\.platformio\packages\toolchain-atmelavr\avr\include\avr\iotn85.h:38:0,
from c:\users\alex\.platformio\packages\toolchain-atmelavr\avr\include\avr\io.h:428,
from c:\users\alex\.platformio\packages\toolchain-atmelavr\avr\include\avr\pgmspace.h:90,
from C:\users\alex\.platformio\packages\framework-arduino-avr-digistump\cores\dtiny\Print.h:30,
from C:\users\alex\.platformio\packages\framework-arduino-avr-digistump\cores\dtiny\Stream.h:24,
from C:\users\alex\.platformio\packages\framework-arduino-avr-digistump\cores\dtiny\TinyDebugSerial.h:31,
from C:\users\alex\.platformio\packages\framework-arduino-avr-digistump\cores\dtiny\TinyDebugSerial38400.cpp:24:
c:\users\alex\.platformio\packages\toolchain-atmelavr\avr\include\avr\iotnx5.h:55:0: note: this is the location of the previous definition
#define BIN 7
^
Compiling .pio\build\digispark-vusb\FrameworkArduino\wiring_analog.c.o
In file included from C:\users\alex\.platformio\packages\framework-arduino-avr-digistump\cores\dtiny\Stream.h:24:0,
Compiling .pio\build\digispark-vusb\FrameworkArduino\wiring_digital.c.o
Compiling .pio\build\digispark-vusb\FrameworkArduino\wiring_pulse.c.o
from C:\users\alex\.platformio\packages\framework-arduino-avr-digistump\cores\dtiny\TinyDebugSerial.h:31,
Compiling .pio\build\digispark-vusb\FrameworkArduino\wiring_shift.c.o
from C:\users\alex\.platformio\packages\framework-arduino-avr-digistump\cores\dtiny\TinyDebugSerialErrors.cpp:24:
C:\users\alex\.platformio\packages\framework-arduino-avr-digistump\cores\dtiny\Print.h:37:0: warning: "BIN" redefined
#define BIN 2
^
In file included from C:\users\alex\.platformio\packages\framework-arduino-avr-digistump\cores\dtiny\wiring_private.h:32:0,
from C:\users\alex\.platformio\packages\framework-arduino-avr-digistump\cores\dtiny\WInterrupts.c:37:
c:\users\alex\.platformio\packages\toolchain-atmelavr\avr\include\avr\delay.h:36:2: warning: #warning "This file has been moved to <util/delay.h>." [-Wcpp]
#warning "This file has been moved to <util/delay.h>."
^
In file included from C:\users\alex\.platformio\packages\framework-arduino-avr-digistump\cores\dtiny\Tone.cpp:41:0:
C:\users\alex\.platformio\packages\framework-arduino-avr-digistump\cores\dtiny\Tone.cpp: In function 'void tone(uint8_t, unsigned int, long unsigned int)':
C:\users\alex\.platformio\packages\framework-arduino-avr-digistump\cores\dtiny\pins_arduino.h:80:95: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
#define portOutputRegister(P) ( (volatile uint8_t *)( pgm_read_byte( port_to_output_PGM + (P))) )
^
C:\users\alex\.platformio\packages\framework-arduino-avr-digistump\cores\dtiny\Tone.cpp:232:33: note: in expansion of macro 'portOutputRegister'
tone_timer_pin_register = portOutputRegister( digitalPinToPort( _pin ) );
^
In file included from c:\users\alex\.platformio\packages\toolchain-atmelavr\avr\include\avr\iotn85.h:38:0,
from c:\users\alex\.platformio\packages\toolchain-atmelavr\avr\include\avr\io.h:428,
from c:\users\alex\.platformio\packages\toolchain-atmelavr\avr\include\avr\pgmspace.h:90,
from C:\users\alex\.platformio\packages\framework-arduino-avr-digistump\cores\dtiny\Print.h:30,
from C:\users\alex\.platformio\packages\framework-arduino-avr-digistump\cores\dtiny\Stream.h:24,
from C:\users\alex\.platformio\packages\framework-arduino-avr-digistump\cores\dtiny\TinyDebugSerial.h:31,
from C:\users\alex\.platformio\packages\framework-arduino-avr-digistump\cores\dtiny\TinyDebugSerial9600.cpp:24:
c:\users\alex\.platformio\packages\toolchain-atmelavr\avr\include\avr\iotnx5.h:55:0: note: this is the location of the previous definition
#define BIN 7
^
In file included from c:\users\alex\.platformio\packages\toolchain-atmelavr\avr\include\avr\iotn85.h:38:0,
from c:\users\alex\.platformio\packages\toolchain-atmelavr\avr\include\avr\io.h:428,
from c:\users\alex\.platformio\packages\toolchain-atmelavr\avr\include\avr\pgmspace.h:90,
from C:\users\alex\.platformio\packages\framework-arduino-avr-digistump\cores\dtiny\Print.h:30,
from C:\users\alex\.platformio\packages\framework-arduino-avr-digistump\cores\dtiny\Stream.h:24,
from C:\users\alex\.platformio\packages\framework-arduino-avr-digistump\cores\dtiny\TinyDebugSerial.h:31,
from C:\users\alex\.platformio\packages\framework-arduino-avr-digistump\cores\dtiny\TinyDebugSerialErrors.cpp:24:
c:\users\alex\.platformio\packages\toolchain-atmelavr\avr\include\avr\iotnx5.h:55:0: note: this is the location of the previous definition
#define BIN 7
^
In file included from C:\users\alex\.platformio\packages\framework-arduino-avr-digistump\cores\dtiny\Stream.h:24:0,
from C:\users\alex\.platformio\packages\framework-arduino-avr-digistump\cores\dtiny\TinyDebugSerial.h:31,
from C:\users\alex\.platformio\packages\framework-arduino-avr-digistump\cores\dtiny\WProgram.h:18,
from C:\users\alex\.platformio\packages\framework-arduino-avr-digistump\cores\dtiny\WString.cpp:21:
C:\users\alex\.platformio\packages\framework-arduino-avr-digistump\cores\dtiny\Print.h:37:0: warning: "BIN" redefined
#define BIN 2
^
In file included from c:\users\alex\.platformio\packages\toolchain-atmelavr\avr\include\avr\iotn85.h:38:0,
from c:\users\alex\.platformio\packages\toolchain-atmelavr\avr\include\avr\io.h:428,
from c:\users\alex\.platformio\packages\toolchain-atmelavr\avr\include\avr\interrupt.h:38,
from C:\users\alex\.platformio\packages\framework-arduino-avr-digistump\cores\dtiny\WProgram.h:8,
from C:\users\alex\.platformio\packages\framework-arduino-avr-digistump\cores\dtiny\WString.cpp:21:
c:\users\alex\.platformio\packages\toolchain-atmelavr\avr\include\avr\iotnx5.h:55:0: note: this is the location of the previous definition
#define BIN 7
^
In file included from C:\users\alex\.platformio\packages\framework-arduino-avr-digistump\cores\dtiny\wiring_private.h:32:0,
from C:\users\alex\.platformio\packages\framework-arduino-avr-digistump\cores\dtiny\pins_arduino.c:38:
c:\users\alex\.platformio\packages\toolchain-atmelavr\avr\include\avr\delay.h:36:2: warning: #warning "This file has been moved to <util/delay.h>." [-Wcpp]
#warning "This file has been moved to <util/delay.h>."
^
In file included from C:\users\alex\.platformio\packages\framework-arduino-avr-digistump\cores\dtiny/Stream.h:24:0,
from C:\users\alex\.platformio\packages\framework-arduino-avr-digistump\cores\dtiny/TinyDebugSerial.h:31,
from C:\users\alex\.platformio\packages\framework-arduino-avr-digistump\cores\dtiny/WProgram.h:18,
from C:\users\alex\.platformio\packages\framework-arduino-avr-digistump\cores\dtiny\main.cpp:1:
C:\users\alex\.platformio\packages\framework-arduino-avr-digistump\cores\dtiny/Print.h:37:0: warning: "BIN" redefined
#define BIN 2
^
In file included from c:\users\alex\.platformio\packages\toolchain-atmelavr\avr\include\avr\iotn85.h:38:0,
from c:\users\alex\.platformio\packages\toolchain-atmelavr\avr\include\avr\io.h:428,
from c:\users\alex\.platformio\packages\toolchain-atmelavr\avr\include\avr\interrupt.h:38,
from C:\users\alex\.platformio\packages\framework-arduino-avr-digistump\cores\dtiny/WProgram.h:8,
from C:\users\alex\.platformio\packages\framework-arduino-avr-digistump\cores\dtiny\main.cpp:1:
c:\users\alex\.platformio\packages\toolchain-atmelavr\avr\include\avr\iotnx5.h:55:0: note: this is the location of the previous definition
#define BIN 7
^
In file included from C:\users\alex\.platformio\packages\framework-arduino-avr-digistump\cores\dtiny\wiring_private.h:32:0,
from C:\users\alex\.platformio\packages\framework-arduino-avr-digistump\cores\dtiny\wiring_analog.c:29:
c:\users\alex\.platformio\packages\toolchain-atmelavr\avr\include\avr\delay.h:36:2: warning: #warning "This file has been moved to <util/delay.h>." [-Wcpp]
#warning "This file has been moved to <util/delay.h>."
^
In file included from C:\users\alex\.platformio\packages\framework-arduino-avr-digistump\cores\dtiny\wiring_private.h:32:0,
from C:\users\alex\.platformio\packages\framework-arduino-avr-digistump\cores\dtiny\wiring.c:32:
c:\users\alex\.platformio\packages\toolchain-atmelavr\avr\include\avr\delay.h:36:2: warning: #warning "This file has been moved to <util/delay.h>." [-Wcpp]
#warning "This file has been moved to <util/delay.h>."
^
C:\users\alex\.platformio\packages\framework-arduino-avr-digistump\cores\dtiny\pins_arduino.c:274:2: warning: initialization makes integer from pointer without a cast [-Wint-conversion]
&DDRB,
^
C:\users\alex\.platformio\packages\framework-arduino-avr-digistump\cores\dtiny\pins_arduino.c:274:2: note: (near initialization for 'port_to_mode_PGM[1]')
C:\users\alex\.platformio\packages\framework-arduino-avr-digistump\cores\dtiny\pins_arduino.c:280:2: warning: initialization makes integer from pointer without a cast [-Wint-conversion]
&PORTB,
^
C:\users\alex\.platformio\packages\framework-arduino-avr-digistump\cores\dtiny\pins_arduino.c:280:2: note: (near initialization for 'port_to_output_PGM[1]')
C:\users\alex\.platformio\packages\framework-arduino-avr-digistump\cores\dtiny\pins_arduino.c:286:2: warning: initialization makes integer from pointer without a cast [-Wint-conversion]
&PINB,
^
C:\users\alex\.platformio\packages\framework-arduino-avr-digistump\cores\dtiny\pins_arduino.c:286:2: note: (near initialization for 'port_to_input_PGM[1]')
In file included from C:\users\alex\.platformio\packages\framework-arduino-avr-digistump\cores\dtiny\wiring_private.h:32:0,
from C:\users\alex\.platformio\packages\framework-arduino-avr-digistump\cores\dtiny\wiring_pulse.c:25:
c:\users\alex\.platformio\packages\toolchain-atmelavr\avr\include\avr\delay.h:36:2: warning: #warning "This file has been moved to <util/delay.h>." [-Wcpp]
#warning "This file has been moved to <util/delay.h>."
^
In file included from C:\users\alex\.platformio\packages\framework-arduino-avr-digistump\cores\dtiny\wiring_private.h:32:0,
from C:\users\alex\.platformio\packages\framework-arduino-avr-digistump\cores\dtiny\wiring_digital.c:28:
c:\users\alex\.platformio\packages\toolchain-atmelavr\avr\include\avr\delay.h:36:2: warning: #warning "This file has been moved to <util/delay.h>." [-Wcpp]
#warning "This file has been moved to <util/delay.h>."
^
In file included from C:\users\alex\.platformio\packages\framework-arduino-avr-digistump\cores\dtiny\wiring_private.h:32:0,
from C:\users\alex\.platformio\packages\framework-arduino-avr-digistump\cores\dtiny\wiring_shift.c:25:
c:\users\alex\.platformio\packages\toolchain-atmelavr\avr\include\avr\delay.h:36:2: warning: #warning "This file has been moved to <util/delay.h>." [-Wcpp]
#warning "This file has been moved to <util/delay.h>."
^
In file included from C:\users\alex\.platformio\packages\framework-arduino-avr-digistump\cores\dtiny\wiring_pulse.c:26:0:
C:\users\alex\.platformio\packages\framework-arduino-avr-digistump\cores\dtiny\wiring_pulse.c: In function 'pulseIn':
C:\users\alex\.platformio\packages\framework-arduino-avr-digistump\cores\dtiny\pins_arduino.h:81:32: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
#define portInputRegister(P) ( (volatile uint8_t *)( pgm_read_byte( port_to_input_PGM + (P))) )
^
C:\users\alex\.platformio\packages\framework-arduino-avr-digistump\cores\dtiny\wiring_pulse.c:48:11: note: in expansion of macro 'portInputRegister'
while ((*portInputRegister(port) & bit) == stateMask)
^
C:\users\alex\.platformio\packages\framework-arduino-avr-digistump\cores\dtiny\pins_arduino.h:81:32: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
Archiving .pio\build\digispark-vusb\libFrameworkArduino.a
#define portInputRegister(P) ( (volatile uint8_t *)( pgm_read_byte( port_to_input_PGM + (P))) )
^
C:\users\alex\.platformio\packages\framework-arduino-avr-digistump\cores\dtiny\wiring_pulse.c:53:11: note: in expansion of macro 'portInputRegister'
while ((*portInputRegister(port) & bit) != stateMask)
^
C:\users\alex\.platformio\packages\framework-arduino-avr-digistump\cores\dtiny\pins_arduino.h:81:32: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
#define portInputRegister(P) ( (volatile uint8_t *)( pgm_read_byte( port_to_input_PGM + (P))) )
^
C:\users\alex\.platformio\packages\framework-arduino-avr-digistump\cores\dtiny\wiring_pulse.c:58:11: note: in expansion of macro 'portInputRegister'
while ((*portInputRegister(port) & bit) == stateMask) {
^
In file included from C:\users\alex\.platformio\packages\framework-arduino-avr-digistump\cores\dtiny\wiring_digital.c:29:0:
C:\users\alex\.platformio\packages\framework-arduino-avr-digistump\cores\dtiny\wiring_digital.c: In function 'pinMode':
C:\users\alex\.platformio\packages\framework-arduino-avr-digistump\cores\dtiny\pins_arduino.h:82:31: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
#define portModeRegister(P) ( (volatile uint8_t *)( pgm_read_byte( port_to_mode_PGM + (P))) )
^
C:\users\alex\.platformio\packages\framework-arduino-avr-digistump\cores\dtiny\wiring_digital.c:43:8: note: in expansion of macro 'portModeRegister'
reg = portModeRegister(port);
^
C:\users\alex\.platformio\packages\framework-arduino-avr-digistump\cores\dtiny\pins_arduino.h:80:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
#define portOutputRegister(P) ( (volatile uint8_t *)( pgm_read_byte( port_to_output_PGM + (P))) )
^
C:\users\alex\.platformio\packages\framework-arduino-avr-digistump\cores\dtiny\wiring_digital.c:44:8: note: in expansion of macro 'portOutputRegister'
out = portOutputRegister(port);
^
C:\users\alex\.platformio\packages\framework-arduino-avr-digistump\cores\dtiny\wiring_digital.c: In function 'digitalWrite':
C:\users\alex\.platformio\packages\framework-arduino-avr-digistump\cores\dtiny\pins_arduino.h:80:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
#define portOutputRegister(P) ( (volatile uint8_t *)( pgm_read_byte( port_to_output_PGM + (P))) )
^
C:\users\alex\.platformio\packages\framework-arduino-avr-digistump\cores\dtiny\wiring_digital.c:127:8: note: in expansion of macro 'portOutputRegister'
out = portOutputRegister(port);
Linking .pio\build\digispark-vusb\firmware.elf
^
C:\users\alex\.platformio\packages\framework-arduino-avr-digistump\cores\dtiny\wiring_digital.c: In function 'digitalRead':
C:\users\alex\.platformio\packages\framework-arduino-avr-digistump\cores\dtiny\pins_arduino.h:81:32: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
#define portInputRegister(P) ( (volatile uint8_t *)( pgm_read_byte( port_to_input_PGM + (P))) )
^
C:\users\alex\.platformio\packages\framework-arduino-avr-digistump\cores\dtiny\wiring_digital.c:153:7: note: in expansion of macro 'portInputRegister'
if (*portInputRegister(port) & bit) return HIGH;
^
Building .pio\build\digispark-vusb\firmware.hex
Checking size .pio\build\digispark-vusb\firmware.elf
Advanced Memory Usage is available via "PlatformIO Home > Project Inspect"
RAM: [= ] 12.1% (used 62 bytes from 512 bytes)
Flash: [=== ] 31.0% (used 1864 bytes from 6012 bytes)
============================================================================================================================================ [SUCCESS] Took 4.77 seconds ============================================================================================================================================
Terminal will be reused by tasks, press any key to close it.
PlatformIO uses the core versions that are available for the board, they've not written that themselves.
To my knowledge the core is at https://github.com/digistump/DigistumpArduino/. You would need to ask them to fix the errors in their code.
Given that the last update was 4 years ago I don't think they'll respond though. Seems pretty abondend.
But I did stumble upon a forked & improved version of the core: https://github.com/ArminJo/DigistumpArduino.
You can install that in your Arduino IDE and see if the code there works and doesn't have the warnings. Then you can raise a feature request to use that new core.
But after all, these are warnings that can be ignored I think.
Thanks for the reply and thanks for the link. To be honest, I mistrust code that leaves warnings during compile time. Even if they can be safely ignored - possibly a bad habit of mine. I always fear to overlook something important. Therefore I tried different cores like the trinket and the generic tinyx5 one. In the end I decided to go with a mix:
platform = atmelavr
board = digispark-tiny
board_build.core = tiny
board_build.variant = tinyx5
This works very well for me now.
As of ArminJo's DigistumpArduino core, could you kindly point me to a location describing on how to install a custom core in VSCode/PlatformIO? I'll gladly give it a try then. I also pointed the maintainers to this project if they wanted to have their core added to platformio.
I also pointed the maintainers to this project if they wanted to have their core added to platformio.
@maxgerhardt Hi Max, there is a refurbished version of the digispark core, can you tell me the steps to get it integrated in pio for common usage?
Mainly work has to be done in this repository (platform-atmelavr) to add the board defnitions (in JSON format, boards/
) that the core uses (if any new ones are in there), plus for the existing boards that should use this core, the core:
attribute needs to be changed. Then a PlatformIO package has to be packaged and published (e.g., the current board defnitions with core:"digistump"
use the package framework-arduino-avr-digistump
, a new one would have to be created).
A nice-to-have in the repository would just be that it has a package.json
file that contains some metainfo (name, version, ..) so that the PlatformIO package can be created without the PlatformIO devs creating that file themselves (see e.g. https://github.com/esp8266/Arduino/blob/master/package.json)
There's also a really hacky way to include a different core. Change what used core
value and then inject the package that PlatformIO will be looking for on the fly.
board_build.core = digistump-new
platform_packages =
framework-arduino-avr-digistump-new@<repository link that just has the digistump-avr subfolder of new core and package.json>
I'll quickly see what changes need to be done here and check back then.
Edit: Oh I've actually seen that the core already has some packaged versions which seem to be in the PlatformIO format..
Okay so it's actually much easier than expected to test it. Just use a platform_packages
directive (docs) to overwrite the framework-arduino-avr-digistump
package from a zip package that already exists in the Platform.
Tested with
[env:digispark-tiny]
platform = atmelavr
board = digispark-tiny
framework = arduino
platform_packages =
framework-arduino-avr-digistump@https://github.com/ArminJo/DigistumpArduino/raw/master/framework-arduino-avr-digistump-1.7.0.zip
and it builds without warnings, uploads and runs on my Digispark USB device. Tested a simple Blinky.
Others should be able to test the core too that way.
@ArminJo can you create a framework-arduino-avr-digistump-1.7.1.zip
just like you did with 1.7.0? Then the PlatformIO developers should be able to integrate that package pretty easily here.
Tested it on my source too and compiles w/o any issues. Final code is even a bit smaller: tiny/tinyx5: 5628 ArminJo: 5482 Also ram usage is slightly smaller by some bytes. Deployed code does not show any issues on modules aswell.
@maxgerhardt Thanks for the advice. I created a new zip https://github.com/ArminJo/DigistumpArduino/blob/master/framework-arduino-avr-digistump-1.7.1.zip.
But what's about the new micronucleus binaries for the different OS? How are they upgraded?
But what's about the new micronucleus binaries for the different OS? How are they upgraded?
For that you would have to create a package (see above links with pio package pack
, again needs a package.json
) file that has has the right binaries in it.
PlatformIO sticks the Micronucleus upload tool in a tool-micronucleus
package with content (for Windows)
(Linux has only a folder with just the micronucleus
binary).
See https://bintray.com/platformio/tool-packages and search for "tool-micronucleus". A reference package.json
for that would e.g. be
{
"name": "tool-micronucleus",
"version": "1.200.4",
"description": "ATTiny usb bootloader with a strong emphasis on bootloader compactness",
"keywords": [
"tools",
"uploader"
],
"license": "GPL-2.0-or-later",
"system": [
"linux_x86_64"
],
"repository": {
"type": "git",
"url": "https://github.com/micronucleus/micronucleus"
}
}
Whereas the 200
encodes version 2.0.0 btw.
So the uploaded archives at https://github.com/ArminJo/DigistumpArduino/tree/master/tools are almost perfect, they're just missing the package.json
in them with the meta-inofrmation for version and system updated. You can pull the package.json
for every system / OS from the bintray above and update the version and stick it in your own archive files, e.g.
A created archive can then also be tested by again using platform_packages
with like
[env:digispark-tiny]
platform = atmelavr
board = digispark-tiny
framework = arduino
platform_packages =
framework-arduino-avr-digistump@https://github.com/ArminJo/DigistumpArduino/raw/master/framework-arduino-avr-digistump-1.7.1.zip
tool-micronucleus@https://github.com/ArminJo/DigistumpArduino/raw/master/tools/micronucleus-2.0a4-win.zip
(example).
OK Thanks, What is the exact semanics of the version field? micronucleus currently has version 2.5.
It's using semver / semantic versioning. Here's an example and explanation. For version 2.5 i'd encode it as 1.205.4
or 1.20500.4
(2.5.0). The last field is pretty much always used as a datecode though, e.g. 210207 encoding 2021-02 (Feb.)-07.
When you use the package in PlatformIO per example above and compile any project, PlatformIO will also tell you how it's decoded the inner version at the start of the output, e.g.
PACKAGES:
- framework-arduino-avr-digistump 1.7.0
- tool-micronucleus 1.200.4 (2.0)
- toolchain-atmelavr 1.50400.190710 (5.4.0)
LDF: Library Dependency Finder -> http://bit.ly/configure-pio-ldf
@maxgerhardt Ok I prepared the tools zip files. I am not quite sure if the windows USB driver installation files should be a part of the zip, since I have no idea how one would install the Digispark core for windows. Is there an autoexec for the old install.exe or so? Or is the user aware that there is an install.exe he must execute?
@anno73 what would you suggest?
As told, I use Eclipse and Sloeber, and have no experience with PIO.
Is there an autoexec for the old install.exe or so? Or is the user aware that there is an install.exe he must execute?
The drivers are not auto-installed, they are just referenced in documentation so that users can install it themselves.
Thanks! Then I will test it first on a fresh W10 system.
@maxgerhardt
I created a new zip https://github.com/ArminJo/DigistumpArduino/blob/master/framework-arduino-avr-digistump-1.7.1.zip.
I updated to v1.7.1. Upon first compile I get following errors:
> Executing task in folder relay: C:\Users\alex\.platformio\penv\Scripts\pio.exe run <
Processing DigistumpArduino (platform: atmelavr; board: digispark-tiny; framework: arduino)
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------Tool Manager: Installing https://github.com/ArminJo/DigistumpArduino/raw/master/framework-arduino-avr-digistump-1.7.1.zip
Unpacking [####################################] 100%
Tool Manager: framework-arduino-avr-digistump @ 1.7.1 has been installed!
Verbose mode can be enabled via `-v, --verbose` option
CONFIGURATION: https://docs.platformio.org/page/boards/atmelavr/digispark-tiny.html
PLATFORM: Atmel AVR (3.1.0) > Digispark USB
HARDWARE: ATTINY85 16MHz, 512B RAM, 5.87KB Flash
DEBUG: Current (simavr) On-board (simavr)
PACKAGES:
- toolchain-atmelavr 1.50400.190710 (5.4.0)
TypeError: _isdir: path should be string, bytes or os.PathLike, not NoneType:
File "C:\users\alex\.platformio\penv\lib\site-packages\platformio\builder\main.py", line 177:
env.SConscript("$BUILD_SCRIPT")
File "C:\Users\alex\.platformio\packages\tool-scons\scons-local-4.1.0\SCons\Script\SConscript.py", line 591:
return _SConscript(self.fs, *files, **subst_kw)
File "C:\Users\alex\.platformio\packages\tool-scons\scons-local-4.1.0\SCons\Script\SConscript.py", line 280:
exec(compile(scriptdata, scriptname, 'exec'), call_stack[-1].globals)
File "C:\users\alex\.platformio\platforms\atmelavr\builder\main.py", line 162:
target_elf = env.BuildProgram()
File "C:\Users\alex\.platformio\packages\tool-scons\scons-local-4.1.0\SCons\Util.py", line 658:
return self.method(*nargs, **kwargs)
File "C:\users\alex\.platformio\penv\lib\site-packages\platformio\builder\tools\platformio.py", line 61:
env.ProcessProgramDeps()
File "C:\Users\alex\.platformio\packages\tool-scons\scons-local-4.1.0\SCons\Util.py", line 658:
return self.method(*nargs, **kwargs)
File "C:\users\alex\.platformio\penv\lib\site-packages\platformio\builder\tools\platformio.py", line 127:
env.BuildFrameworks(env.get("PIOFRAMEWORK"))
File "C:\Users\alex\.platformio\packages\tool-scons\scons-local-4.1.0\SCons\Util.py", line 658:
return self.method(*nargs, **kwargs)
File "C:\users\alex\.platformio\penv\lib\site-packages\platformio\builder\tools\platformio.py", line 342:
SConscript(env.GetFrameworkScript(f), exports="env")
File "C:\Users\alex\.platformio\packages\tool-scons\scons-local-4.1.0\SCons\Script\SConscript.py", line 654:
return method(*args, **kw)
File "C:\Users\alex\.platformio\packages\tool-scons\scons-local-4.1.0\SCons\Script\SConscript.py", line 591:
return _SConscript(self.fs, *files, **subst_kw)
File "C:\Users\alex\.platformio\packages\tool-scons\scons-local-4.1.0\SCons\Script\SConscript.py", line 280:
exec(compile(scriptdata, scriptname, 'exec'), call_stack[-1].globals)
File "C:\users\alex\.platformio\platforms\atmelavr\builder\frameworks\arduino.py", line 43:
assert isdir(FRAMEWORK_DIR)
============================================================================================================================================ [FAILED] Took 7.95 seconds ============================================================================================================================================
The terminal process "C:\Users\alex\.platformio\penv\Scripts\pio.exe 'run'" terminated with exit code: 1.
Terminal will be reused by tasks, press any key to close it.
Second compile then works nice again.
Is this an issue of PIO or the v1.7.1 package? I think I had the same issue with initially changing to v1.7.0.
@anno73 what would you suggest?
As told, I use Eclipse and Sloeber, and have no experience with PIO.
@ArminJo I have no idea as I am not a DEV of PlatformIO but just a user ^.^ But I have seen you got an answer on this from maxgerhardt already :-)
So I followed the instructions from @maxgerhardt :
- downloaded the tar.gz for my Linux-system from @ArminJo
- created a package.json
- updated the tar.gz with the package json
- added the
platform_packages
directive (pointing to my local tar.gz)
Now I'm almost there, there is only one error left:
Configuring upload protocol...
AVAILABLE: micronucleus
CURRENT: upload_protocol = micronucleus
Uploading .pio/build/digispark-tiny/firmware.hex
Unrecognized option: -c
*** [upload] Error 1
If I manually call the now unpacked and updated micronucleus to upload the hex, everything works fine. So how do I convince pio that micronucleus now uses different commandline options?
Unrecognized option: -c
Ah, that doesn't work anymore with -c
? The current code does
https://github.com/platformio/platform-atmelavr/blob/dec3edd5f16c79a62bcc91fed7d04618b04721fe/builder/main.py#L184-L192
So to fix that there are two options:
- Correct the code to use the correct parameters (
C:\Users\<user>\.platformio\platforms\atmelavr\builder\main.py
) - Use a custom
upload_cmd
in theplatformio.ini
In general you would add
upload_protocol = custom
upload_flags =
-flag
value1
--flag-2
value 2
upload_command = upload-executable $UPLOAD_FLAGS $SOURCE
the $SOURCE
will automatically evaluate to teh uploaded firmware, and $UPLOAD_FLAGS
will evaluate what you will have written in upload_flags
. Each flag / value needs to be newline-separated and indented.
If I read docs correctly it should need a
upload_protocol = custom
upload_flags =
--no-ansi
--run
--timeout
60
upload_command = $PROJECT_PACKAGES_DIR/tool-micronucleus/micronucleus $UPLOAD_FLAGS $SOURCE
so that will call micronucleus --run <firmware.hex>
.
Check that the installed micronucleos tool is in C:\Users\Max\.platformio\packages\
though, if you have an older and a newer version installed there might be tool-micronucleos@xyz
folders too.
@maxgerhardt
for the new versions, the correct commandline would be:
--no-ansi --run --timeout 60 {build.path}/{build.project_name}.hex
see https://github.com/ArminJo/DigistumpArduino/blob/c41f52111c7f3cd0b3f961be3f890955cae4ef8c/digistump-avr/platform.txt#L100
The old one of the so called "launcher" was : -cdigispark --timeout 60 -Uflash:w:{build.path}/{build.project_name}.hex:i
How can we address this change? It is the same upload_protocol name.
I'll open a proper issue or PR for full-integration of the new core, then that will be directly addressed in the platform code.
Works perfect. I'm looking forward to the integration into pio, but this is a usable workaround. Thank you all.
Feature request opened as linked above this comment.