Skip to content

MySensors GatewayW5100 example sketch do not compile with ATmega128 board #1403

Open
@lwaga

Description

@lwaga

The same output gives boards with ATMega64, 128, 640, 1281, 2561.

>Executing task in folder home_light_automation: C:\.platformio\penv\Scripts\platformio.exe run

Processing ATmega128 (platform: atmelavr; board: ATmega128; framework: arduino)
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Verbose mode can be enabled via `-v, --verbose` option
CONFIGURATION: https://docs.platformio.org/page/boards/atmelavr/ATmega128.html
PLATFORM: Atmel AVR 2.0.0 > ATmega128/A
HARDWARE: ATMEGA128 16MHz, 4KB RAM, 127KB Flash
PACKAGES:
 - framework-arduino-avr-megacore 2.0.2
 - 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 14 compatible libraries
Scanning dependencies...
Dependency Graph
|-- <Ethernet> 2.0.0
|   |-- <SPI> 1.0
|-- <MySensors> 2.3.1
|   |-- <Wire> 1.0
|   |-- <SPI> 1.0
|   |-- <EEPROM> 2.0
Building in release mode
Compiling .pio\build\ATmega128\src\main.cpp.o
Compiling .pio\build\ATmega128\lib475\SPI\SPI.cpp.o
Compiling .pio\build\ATmega128\lib134\Ethernet-2.0.0\Dhcp.cpp.o
Compiling .pio\build\ATmega128\lib134\Ethernet-2.0.0\Dns.cpp.o
In file included from C:\.platformio\packages\framework-arduino-avr-megacore\cores\MegaCore/Arduino.h:30:0,
                 from lib\Ethernet-2.0.0\src/Ethernet.h:49,
                 from src\main.cpp:124:
lib\MySensors/hal/architecture/AVR/MyHwAVR.cpp: In function 'void WDT_vect()':
lib\MySensors/hal/architecture/AVR/MyHwAVR.cpp:79:6: warning: 'WDT_vect' appears to be a misspelled signal handler, missing __vector prefix [-Wmisspelled-isr]
 ISR (WDT_vect)
      ^
In file included from lib\MySensors/MySensors.h:62:0,
                 from src\main.cpp:125:
lib\MySensors/hal/architecture/AVR/MyHwAVR.cpp: In function 'void hwPowerDown(uint8_t)':
lib\MySensors/hal/architecture/AVR/MyHwAVR.cpp:93:26: error: 'WDTCSR' was not declared in this scope
  const uint8_t WDTsave = WDTCSR;
                          ^
lib\MySensors/hal/architecture/AVR/MyHwAVR.cpp:97:33: error: 'WDIE' was not declared in this scope
   WDTCSR |= (1 << WDCE) | (1 << WDIE);
                                 ^
In file included from c:\.platformio\packages\toolchain-atmelavr\avr\include\avr\io.h:99:0,
                 from c:\.platformio\packages\toolchain-atmelavr\avr\include\avr\pgmspace.h:90,
                 from C:\.platformio\packages\framework-arduino-avr-megacore\cores\MegaCore/Arduino.h:28,
                 from lib\Ethernet-2.0.0\src/Ethernet.h:49,
                 from src\main.cpp:124:
lib\MySensors/hal/architecture/AVR/MyHwAVR.cpp: In function 'bool hwUniqueID(uint8_t (*)[16])':
lib\MySensors/hal/architecture/AVR/MyHwAVR.cpp:264:27: error: 'SIGRD' was not declared in this scope
  *((uint8_t *)uniqueID) = boot_signature_byte_get(0x00);
                           ^
lib\MySensors/hal/architecture/AVR/MyHwAVR.cpp:265:31: error: 'SIGRD' was not declared in this scope
  *((uint8_t *)uniqueID + 1) = boot_signature_byte_get(0x02);
                               ^
lib\MySensors/hal/architecture/AVR/MyHwAVR.cpp:266:31: error: 'SIGRD' was not declared in this scope
  *((uint8_t *)uniqueID + 2) = boot_signature_byte_get(0x04);
                               ^
lib\MySensors/hal/architecture/AVR/MyHwAVR.cpp:267:31: error: 'SIGRD' was not declared in this scope
  *((uint8_t *)uniqueID + 3) = boot_signature_byte_get(0x01); //OSCCAL
                               ^
In file included from lib\MySensors/MySensors.h:62:0,
                 from src\main.cpp:125:
lib\MySensors/hal/architecture/AVR/MyHwAVR.cpp: In function 'uint16_t hwCPUFrequency()':
lib\MySensors/hal/architecture/AVR/MyHwAVR.cpp:304:26: error: 'WDTCSR' was not declared in this scope
  const uint8_t WDTsave = WDTCSR;
                          ^
lib\MySensors/hal/architecture/AVR/MyHwAVR.cpp:308:2: error: 'TIFR1' was not declared in this scope
  TIFR1 = 0xFF;
  ^
lib\MySensors/hal/architecture/AVR/MyHwAVR.cpp:315:18: error: 'WDIE' was not declared in this scope
  WDTCSR |= (1 << WDIE);
                  ^
In file included from c:\.platformio\packages\toolchain-atmelavr\avr\include\avr\io.h:99:0,
                 from c:\.platformio\packages\toolchain-atmelavr\avr\include\avr\pgmspace.h:90,
                 from C:\.platformio\packages\framework-arduino-avr-megacore\cores\MegaCore/Arduino.h:28,
                 from lib\Ethernet-2.0.0\src/Ethernet.h:49,
                 from src\main.cpp:124:
lib\MySensors/hal/architecture/AVR/MyHwAVR.cpp:320:29: error: 'WDIF' was not declared in this scope
  while (bit_is_clear(WDTCSR,WDIF)) {};
                             ^
*** [.pio\build\ATmega128\src\main.cpp.o] Error 1
=================================================================================== [FAILED] Took 1.07 seconds ===================================================================================
The terminal process terminated with exit code: 1

Terminal will be reused by tasks, press any key to close it.

I suppose there is problem with using definictions from wdt.h maybe.

#define wdt_reset() __asm__ __volatile__ ("wdr")

#ifndef __DOXYGEN__

#if defined(WDP3)
# define _WD_PS3_MASK       _BV(WDP3)
#else
# define _WD_PS3_MASK       0x00
#endif

#if defined(WDTCSR)
#  define _WD_CONTROL_REG     WDTCSR
#elif defined(WDTCR)
#  define _WD_CONTROL_REG     WDTCR
#else
#  define _WD_CONTROL_REG     WDT
#endif

#if defined(WDTOE)
#define _WD_CHANGE_BIT      WDTOE
#else
#define _WD_CHANGE_BIT      WDCE
#endif

#endif	/* !__DOXYGEN__ */

With ATmega128 board we have here NOT defined WDP3, WDTCSR and WDTOE, but defined WDTCR.
With ATmega2560 board, we have defined WDP3 and WDTCSR, but not defined WDTCR and WDTOE.

I do not know if it helps.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions