mqnc / MHTinyCDC

Copy of the DigiCDC library, added configurations to work with the MH-ET LIVE Tiny88 board
Other
8 stars 1 forks source link

Build errors - on MH-Tiny #5

Open oopen opened 1 year ago

oopen commented 1 year ago

Build error on MH-ET LIVE Tiny88

Using Platformio inside VSCode

platformio.ini file :

[env:attiny88]
platform = atmelavr
board = attiny88
framework = arduino
upload_protocol = micronucleus
lib_deps = https://github.com/mqnc/MHTinyCDC.git

I have try adding there lines, with not success :

build_flags =
    -D F_CPU=8000000
board_build.f_cpu = 8000000L

Build log :

 *  Executing task: platformio run 

Processing attiny88 (platform: atmelavr; board: attiny88; framework: arduino)
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Verbose mode can be enabled via `-v, --verbose` option
CONFIGURATION: https://docs.platformio.org/page/boards/atmelavr/attiny88.html
PLATFORM: Atmel AVR (4.0.0) > Generic ATtiny88
HARDWARE: ATTINY88 8MHz, 512B RAM, 8KB Flash
PACKAGES: 
 - framework-arduino-avr-attiny @ 1.5.2 
 - toolchain-atmelavr @ 1.70300.191015 (7.3.0)
LDF: Library Dependency Finder -> https://bit.ly/configure-pio-ldf
LDF Modes: Finder ~ chain, Compatibility ~ soft
Found 10 compatible libraries
Scanning dependencies...
Dependency Graph
|-- MHTinyCDC @ 0.0.0+20230627092312.sha.15557cc
Building in release mode
Compiling .pio/build/attiny88/src/main.cpp.o
Compiling .pio/build/attiny88/lib83e/MHTinyCDC/DigiCDC.cpp.o
Compiling .pio/build/attiny88/lib83e/MHTinyCDC/oddebug.c.o
Compiling .pio/build/attiny88/lib83e/MHTinyCDC/osccal.c.o
Compiling .pio/build/attiny88/lib83e/MHTinyCDC/usbdrv.c.o
Compiling .pio/build/attiny88/lib83e/MHTinyCDC/usbdrvasm.S.o
Compiling .pio/build/attiny88/lib83e/MHTinyCDC/usbdrvasm.asm.o
.pio/libdeps/attiny88/MHTinyCDC/DigiCDC.cpp:294:1: error: narrowing conversion of '128' from 'int' to 'char' inside { } [-Wnarrowing]
Archiving .pio/build/attiny88/libFrameworkArduinoVariant.a
 };
 ^
.pio/libdeps/attiny88/MHTinyCDC/DigiCDC.cpp:294:1: error: narrowing conversion of '131' from 'int' to 'char' inside { } [-Wnarrowing]
.pio/libdeps/attiny88/MHTinyCDC/DigiCDC.cpp:294:1: error: narrowing conversion of '255' from 'int' to 'char' inside { } [-Wnarrowing]
.pio/libdeps/attiny88/MHTinyCDC/DigiCDC.cpp:294:1: error: narrowing conversion of '129' from 'int' to 'char' inside { } [-Wnarrowing]
.pio/libdeps/attiny88/MHTinyCDC/osccal.c: In function 'calibrateOscillator':
.pio/libdeps/attiny88/MHTinyCDC/osccal.c:34:13: warning: implicit declaration of function 'usbMeasureFrameLength' [-Wimplicit-function-declaration]
         x = usbMeasureFrameLength();    /* proportional to current real frequency */
             ^~~~~~~~~~~~~~~~~~~~~
Compiling .pio/build/attiny88/FrameworkArduino/HardwareSerial.cpp.o
.pio/libdeps/attiny88/MHTinyCDC/usbdrvasm.asm: Assembler messages:
.pio/libdeps/attiny88/MHTinyCDC/usbdrvasm.asm:21: Error: unknown opcode `end'
Compiling .pio/build/attiny88/FrameworkArduino/Print.cpp.o
.pio/libdeps/attiny88/MHTinyCDC/usbdrvasm.S:391:9: error: #error "USB_CFG_CLOCK_KHZ is not one of the supported non-crc-rates!"
 #       error "USB_CFG_CLOCK_KHZ is not one of the supported non-crc-rates!"
         ^~~~~
Indexing .pio/build/attiny88/libFrameworkArduinoVariant.a
Compiling .pio/build/attiny88/FrameworkArduino/Stream.cpp.o
Compiling .pio/build/attiny88/FrameworkArduino/TinySoftwareSerial.cpp.o
Compiling .pio/build/attiny88/FrameworkArduino/Tone.cpp.o
Compiling .pio/build/attiny88/FrameworkArduino/WInterrupts.c.o
Compiling .pio/build/attiny88/FrameworkArduino/WMath.cpp.o
Compiling .pio/build/attiny88/FrameworkArduino/WString.cpp.o
*** [.pio/build/attiny88/lib83e/MHTinyCDC/DigiCDC.cpp.o] Error 1
*** [.pio/build/attiny88/lib83e/MHTinyCDC/usbdrvasm.asm.o] Error 1
*** [.pio/build/attiny88/lib83e/MHTinyCDC/usbdrvasm.S.o] Error 1
================================================================================ [FAILED] Took 0.70 seconds ================================================================================

src/main.cpp file :

#include <Arduino.h>

#define LED_BUILTIN 0

void setup() {
  pinMode(LED_BUILTIN, OUTPUT);
}

void loop() {
  digitalWrite(LED_BUILTIN, HIGH);
  delay(1000);

  digitalWrite(LED_BUILTIN, LOW);
  delay(1000);
}

Without the lib, this program build, upload (micronucleus bootloader), and run perfectly. Just adding the lib to platformio.ini file throw this error.

oopen commented 1 year ago

If I set clock to 12MHz (like USB) in platformio.ini file :

board_build.f_cpu = 12000000L

the error disappear : error: #error "USB_CFG_CLOCK_KHZ is not one of the supported non-crc-rates!"

but errors remaining :

 *  Executing task: platformio run 

Processing attiny88 (platform: atmelavr; board: attiny88; framework: arduino)
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Verbose mode can be enabled via `-v, --verbose` option
CONFIGURATION: https://docs.platformio.org/page/boards/atmelavr/attiny88.html
PLATFORM: Atmel AVR (4.0.0) > Generic ATtiny88
HARDWARE: ATTINY88 12MHz, 512B RAM, 8KB Flash
PACKAGES: 
 - framework-arduino-avr-attiny @ 1.5.2 
 - toolchain-atmelavr @ 1.70300.191015 (7.3.0)
LDF: Library Dependency Finder -> https://bit.ly/configure-pio-ldf
LDF Modes: Finder ~ chain, Compatibility ~ soft
Found 10 compatible libraries
Scanning dependencies...
Dependency Graph
|-- MHTinyCDC @ 0.0.0+20230627092312.sha.15557cc
Building in release mode
Compiling .pio/build/attiny88/src/main.cpp.o
Compiling .pio/build/attiny88/lib83e/MHTinyCDC/DigiCDC.cpp.o
Compiling .pio/build/attiny88/lib83e/MHTinyCDC/oddebug.c.o
Compiling .pio/build/attiny88/lib83e/MHTinyCDC/osccal.c.o
Compiling .pio/build/attiny88/lib83e/MHTinyCDC/usbdrv.c.o
Compiling .pio/build/attiny88/lib83e/MHTinyCDC/usbdrvasm.S.o
Compiling .pio/build/attiny88/lib83e/MHTinyCDC/usbdrvasm.asm.o
.pio/libdeps/attiny88/MHTinyCDC/DigiCDC.cpp:294:1: error: narrowing conversion of '128' from 'int' to 'char' inside { } [-Wnarrowing]
 };
 ^
.pio/libdeps/attiny88/MHTinyCDC/DigiCDC.cpp:294:1: error: narrowing conversion of '131' from 'int' to 'char' inside { } [-Wnarrowing]
.pio/libdeps/attiny88/MHTinyCDC/DigiCDC.cpp:294:1: error: narrowing conversion of '255' from 'int' to 'char' inside { } [-Wnarrowing]
.pio/libdeps/attiny88/MHTinyCDC/DigiCDC.cpp:294:1: error: narrowing conversion of '129' from 'int' to 'char' inside { } [-Wnarrowing]
Archiving .pio/build/attiny88/libFrameworkArduinoVariant.a
Compiling .pio/build/attiny88/FrameworkArduino/HardwareSerial.cpp.o
.pio/libdeps/attiny88/MHTinyCDC/osccal.c: In function 'calibrateOscillator':
.pio/libdeps/attiny88/MHTinyCDC/osccal.c:34:13: warning: implicit declaration of function 'usbMeasureFrameLength' [-Wimplicit-function-declaration]
         x = usbMeasureFrameLength();    /* proportional to current real frequency */
             ^~~~~~~~~~~~~~~~~~~~~
Compiling .pio/build/attiny88/FrameworkArduino/Print.cpp.o
.pio/libdeps/attiny88/MHTinyCDC/usbdrvasm.asm: Assembler messages:
.pio/libdeps/attiny88/MHTinyCDC/usbdrvasm.asm:21: Error: unknown opcode `end'
Indexing .pio/build/attiny88/libFrameworkArduinoVariant.a
Compiling .pio/build/attiny88/FrameworkArduino/Stream.cpp.o
Compiling .pio/build/attiny88/FrameworkArduino/TinySoftwareSerial.cpp.o
Compiling .pio/build/attiny88/FrameworkArduino/Tone.cpp.o
Compiling .pio/build/attiny88/FrameworkArduino/WInterrupts.c.o
Compiling .pio/build/attiny88/FrameworkArduino/WMath.cpp.o
*** [.pio/build/attiny88/lib83e/MHTinyCDC/DigiCDC.cpp.o] Error 1
Compiling .pio/build/attiny88/FrameworkArduino/WString.cpp.o
*** [.pio/build/attiny88/lib83e/MHTinyCDC/usbdrvasm.asm.o] Error 1
================================================================================ [FAILED] Took 0.75 seconds ================================================================================****