AlexGyver / GyverCore

Быстрое ядро для Arduino IDE
https://alexgyver.ru/gyvercore/
GNU Lesser General Public License v3.0
127 stars 13 forks source link

Ошибка компиляции при выборе GyverUART... #13

Closed SoftFelix72 closed 4 years ago

SoftFelix72 commented 4 years ago

Со стандартным Serial компилируется нормально, но стоит выбрать GyverUART в настройке платы, то...

C:\SOFT\arduino-1.8.10\arduino-builder -dump-prefs -logger=machine -hardware C:\SOFT\arduino-1.8.10\hardware -hardware C:\SOFT\arduino-1.8.10\portable\packages -tools C:\SOFT\arduino-1.8.10\tools-builder -tools C:\SOFT\arduino-1.8.10\hardware\tools\avr -tools C:\SOFT\arduino-1.8.10\portable\packages -built-in-libraries C:\SOFT\arduino-1.8.10\libraries -libraries C:\SOFT\arduino-1.8.10\portable\sketchbook\libraries -fqbn=GyverCore:avr:nano:boot=old,clock=external_16,serial=gyverUart,compiler_version=avrgcc5,timers=yes_millis,init=enable,es=disabled,bod=bod_2_7,co=disabled -ide-version=10810 -build-path C:\Users\YAKUSH~1\AppData\Local\Temp\arduino_build_632460 -warnings=none -build-cache C:\Users\YAKUSH~1\AppData\Local\Temp\arduino_cache_843926 -prefs=build.warn_data_percentage=75 -verbose C:\DOWNLOAD FRON INTERNET\ARDUINO ПРОГРАММАТОР RS-422\prg_1986_new\prg_1986_new.ino C:\SOFT\arduino-1.8.10\arduino-builder -compile -logger=machine -hardware C:\SOFT\arduino-1.8.10\hardware -hardware C:\SOFT\arduino-1.8.10\portable\packages -tools C:\SOFT\arduino-1.8.10\tools-builder -tools C:\SOFT\arduino-1.8.10\hardware\tools\avr -tools C:\SOFT\arduino-1.8.10\portable\packages -built-in-libraries C:\SOFT\arduino-1.8.10\libraries -libraries C:\SOFT\arduino-1.8.10\portable\sketchbook\libraries -fqbn=GyverCore:avr:nano:boot=old,clock=external_16,serial=gyverUart,compiler_version=avrgcc5,timers=yes_millis,init=enable,es=disabled,bod=bod_2_7,co=disabled -ide-version=10810 -build-path C:\Users\YAKUSH~1\AppData\Local\Temp\arduino_build_632460 -warnings=none -build-cache C:\Users\YAKUSH~1\AppData\Local\Temp\arduino_cache_843926 -prefs=build.warn_data_percentage=75 -verbose C:\DOWNLOAD FRON INTERNET\ARDUINO ПРОГРАММАТОР RS-422\prg_1986_new\prg_1986_new.ino Using board 'nano' from platform in folder: C:\SOFT\arduino-1.8.10\portable\packages\GyverCore\hardware\avr\2.0.0 Using core 'arduino' from platform in folder: C:\SOFT\arduino-1.8.10\portable\packages\GyverCore\hardware\avr\2.0.0 Detecting libraries used... "C:\SOFT\arduino-1.8.10\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10810 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR -D_GYVERCORE_GYVERUART "-IC:\SOFT\arduino-1.8.10\portable\packages\GyverCore\hardware\avr\2.0.0\cores\arduino" "C:\Users\YAKUSH~1\AppData\Local\Temp\arduino_build_632460\sketch\prg_1986_new.ino.cpp" -o nul Alternatives for LiquidCrystal.h: [LiquidCrystal@1.0.7] ResolveLibrary(LiquidCrystal.h) -> candidates: [LiquidCrystal@1.0.7] "C:\SOFT\arduino-1.8.10\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10810 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR -D_GYVERCORE_GYVERUART "-IC:\SOFT\arduino-1.8.10\portable\packages\GyverCore\hardware\avr\2.0.0\cores\arduino" "-IC:\SOFT\arduino-1.8.10\libraries\LiquidCrystal\src" "C:\Users\YAKUSH~1\AppData\Local\Temp\arduino_build_632460\sketch\prg_1986_new.ino.cpp" -o nul Alternatives for SPI.h: [SPI@1.0] ResolveLibrary(SPI.h) -> candidates: [SPI@1.0] "C:\SOFT\arduino-1.8.10\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10810 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR -D_GYVERCORE_GYVERUART "-IC:\SOFT\arduino-1.8.10\portable\packages\GyverCore\hardware\avr\2.0.0\cores\arduino" "-IC:\SOFT\arduino-1.8.10\libraries\LiquidCrystal\src" "-IC:\SOFT\arduino-1.8.10\portable\packages\GyverCore\hardware\avr\2.0.0\libraries\SPI\src" "C:\Users\YAKUSH~1\AppData\Local\Temp\arduino_build_632460\sketch\prg_1986_new.ino.cpp" -o nul Alternatives for SD.h: [SD@1.2.3 SD@1.2.4] ResolveLibrary(SD.h) -> candidates: [SD@1.2.3 SD@1.2.4] "C:\SOFT\arduino-1.8.10\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10810 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR -D_GYVERCORE_GYVERUART "-IC:\SOFT\arduino-1.8.10\portable\packages\GyverCore\hardware\avr\2.0.0\cores\arduino" "-IC:\SOFT\arduino-1.8.10\libraries\LiquidCrystal\src" "-IC:\SOFT\arduino-1.8.10\portable\packages\GyverCore\hardware\avr\2.0.0\libraries\SPI\src" "-IC:\SOFT\arduino-1.8.10\portable\sketchbook\libraries\SD\src" "C:\Users\YAKUSH~1\AppData\Local\Temp\arduino_build_632460\sketch\prg_1986_new.ino.cpp" -o nul "C:\SOFT\arduino-1.8.10\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10810 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR -D_GYVERCORE_GYVERUART "-IC:\SOFT\arduino-1.8.10\portable\packages\GyverCore\hardware\avr\2.0.0\cores\arduino" "-IC:\SOFT\arduino-1.8.10\libraries\LiquidCrystal\src" "-IC:\SOFT\arduino-1.8.10\portable\packages\GyverCore\hardware\avr\2.0.0\libraries\SPI\src" "-IC:\SOFT\arduino-1.8.10\portable\sketchbook\libraries\SD\src" "C:\SOFT\arduino-1.8.10\libraries\LiquidCrystal\src\LiquidCrystal.cpp" -o nul "C:\SOFT\arduino-1.8.10\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10810 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR -D_GYVERCORE_GYVERUART "-IC:\SOFT\arduino-1.8.10\portable\packages\GyverCore\hardware\avr\2.0.0\cores\arduino" "-IC:\SOFT\arduino-1.8.10\libraries\LiquidCrystal\src" "-IC:\SOFT\arduino-1.8.10\portable\packages\GyverCore\hardware\avr\2.0.0\libraries\SPI\src" "-IC:\SOFT\arduino-1.8.10\portable\sketchbook\libraries\SD\src" "C:\SOFT\arduino-1.8.10\portable\packages\GyverCore\hardware\avr\2.0.0\libraries\SPI\src\SPI.cpp" -o nul "C:\SOFT\arduino-1.8.10\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10810 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR -D_GYVERCORE_GYVERUART "-IC:\SOFT\arduino-1.8.10\portable\packages\GyverCore\hardware\avr\2.0.0\cores\arduino" "-IC:\SOFT\arduino-1.8.10\libraries\LiquidCrystal\src" "-IC:\SOFT\arduino-1.8.10\portable\packages\GyverCore\hardware\avr\2.0.0\libraries\SPI\src" "-IC:\SOFT\arduino-1.8.10\portable\sketchbook\libraries\SD\src" "C:\SOFT\arduino-1.8.10\portable\sketchbook\libraries\SD\src\File.cpp" -o nul "C:\SOFT\arduino-1.8.10\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10810 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR -D_GYVERCORE_GYVERUART "-IC:\SOFT\arduino-1.8.10\portable\packages\GyverCore\hardware\avr\2.0.0\cores\arduino" "-IC:\SOFT\arduino-1.8.10\libraries\LiquidCrystal\src" "-IC:\SOFT\arduino-1.8.10\portable\packages\GyverCore\hardware\avr\2.0.0\libraries\SPI\src" "-IC:\SOFT\arduino-1.8.10\portable\sketchbook\libraries\SD\src" "C:\SOFT\arduino-1.8.10\portable\sketchbook\libraries\SD\src\SD.cpp" -o nul "C:\SOFT\arduino-1.8.10\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10810 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR -D_GYVERCORE_GYVERUART "-IC:\SOFT\arduino-1.8.10\portable\packages\GyverCore\hardware\avr\2.0.0\cores\arduino" "-IC:\SOFT\arduino-1.8.10\libraries\LiquidCrystal\src" "-IC:\SOFT\arduino-1.8.10\portable\packages\GyverCore\hardware\avr\2.0.0\libraries\SPI\src" "-IC:\SOFT\arduino-1.8.10\portable\sketchbook\libraries\SD\src" "C:\SOFT\arduino-1.8.10\portable\sketchbook\libraries\SD\src\utility\Sd2Card.cpp" -o nul "C:\SOFT\arduino-1.8.10\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10810 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR -D_GYVERCORE_GYVERUART "-IC:\SOFT\arduino-1.8.10\portable\packages\GyverCore\hardware\avr\2.0.0\cores\arduino" "-IC:\SOFT\arduino-1.8.10\libraries\LiquidCrystal\src" "-IC:\SOFT\arduino-1.8.10\portable\packages\GyverCore\hardware\avr\2.0.0\libraries\SPI\src" "-IC:\SOFT\arduino-1.8.10\portable\sketchbook\libraries\SD\src" "C:\SOFT\arduino-1.8.10\portable\sketchbook\libraries\SD\src\utility\SdFile.cpp" -o nul "C:\SOFT\arduino-1.8.10\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10810 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR -D_GYVERCORE_GYVERUART "-IC:\SOFT\arduino-1.8.10\portable\packages\GyverCore\hardware\avr\2.0.0\cores\arduino" "-IC:\SOFT\arduino-1.8.10\libraries\LiquidCrystal\src" "-IC:\SOFT\arduino-1.8.10\portable\packages\GyverCore\hardware\avr\2.0.0\libraries\SPI\src" "-IC:\SOFT\arduino-1.8.10\portable\sketchbook\libraries\SD\src" "C:\SOFT\arduino-1.8.10\portable\sketchbook\libraries\SD\src\utility\SdVolume.cpp" -o nul Generating function prototypes... "C:\SOFT\arduino-1.8.10\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10810 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR -D_GYVERCORE_GYVERUART "-IC:\SOFT\arduino-1.8.10\portable\packages\GyverCore\hardware\avr\2.0.0\cores\arduino" "-IC:\SOFT\arduino-1.8.10\libraries\LiquidCrystal\src" "-IC:\SOFT\arduino-1.8.10\portable\packages\GyverCore\hardware\avr\2.0.0\libraries\SPI\src" "-IC:\SOFT\arduino-1.8.10\portable\sketchbook\libraries\SD\src" "C:\Users\YAKUSH~1\AppData\Local\Temp\arduino_build_632460\sketch\prg_1986_new.ino.cpp" -o "C:\Users\YAKUSH~1\AppData\Local\Temp\arduino_build_632460\preproc\ctags_target_for_gcc_minus_e.cpp" "C:\SOFT\arduino-1.8.10\tools-builder\ctags\5.8-arduino11/ctags" -u --language-force=c++ -f - --c++-kinds=svpf --fields=KSTtzns --line-directives "C:\Users\YAKUSH~1\AppData\Local\Temp\arduino_build_632460\preproc\ctags_target_for_gcc_minus_e.cpp" Компиляция скетча... "C:\SOFT\arduino-1.8.10\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -MMD -flto -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10810 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR -D_GYVERCORE_GYVERUART "-IC:\SOFT\arduino-1.8.10\portable\packages\GyverCore\hardware\avr\2.0.0\cores\arduino" "-IC:\SOFT\arduino-1.8.10\libraries\LiquidCrystal\src" "-IC:\SOFT\arduino-1.8.10\portable\packages\GyverCore\hardware\avr\2.0.0\libraries\SPI\src" "-IC:\SOFT\arduino-1.8.10\portable\sketchbook\libraries\SD\src" "C:\Users\YAKUSH~1\AppData\Local\Temp\arduino_build_632460\sketch\prg_1986_new.ino.cpp" -o "C:\Users\YAKUSH~1\AppData\Local\Temp\arduino_build_632460\sketch\prg_1986_new.ino.cpp.o" In file included from C:\DOWNLOAD FRON INTERNET\ARDUINO ПРОГРАММАТОР RS-422\prg_1986_new\prg_1986_new.ino:19:0:

C:\SOFT\arduino-1.8.10\portable\sketchbook\libraries\SD\src/SD.h:28:30: error: expected class-name before '{' token

class File : public Stream {

                          ^

C:\SOFT\arduino-1.8.10\portable\sketchbook\libraries\SD\src/SD.h:55:20: error: type 'Print' is not a base type for type 'SDLib::File'

   using Print::write;

                ^~~~~

Несколько библиотек найдено для "SD.h" Используется: C:\SOFT\arduino-1.8.10\portable\sketchbook\libraries\SD Не используется: C:\SOFT\arduino-1.8.10\libraries\SD Несколько библиотек найдено для "LiquidCrystal.h" Используется: C:\SOFT\arduino-1.8.10\libraries\LiquidCrystal Несколько библиотек найдено для "SPI.h" Используется: C:\SOFT\arduino-1.8.10\portable\packages\GyverCore\hardware\avr\2.0.0\libraries\SPI Используем библиотеку LiquidCrystal версии 1.0.7 из папки: C:\SOFT\arduino-1.8.10\libraries\LiquidCrystal Используем библиотеку SPI версии 1.0 из папки: C:\SOFT\arduino-1.8.10\portable\packages\GyverCore\hardware\avr\2.0.0\libraries\SPI Используем библиотеку SD версии 1.2.4 из папки: C:\SOFT\arduino-1.8.10\portable\sketchbook\libraries\SD exit status 1 Ошибка компиляции для платы ATmega328 based.

AlexGyver commented 4 years ago

На какой версии ядра и что в скетче? В 2.0 ошибок нет

SoftFelix72 commented 4 years ago

Привет. По описанию установил GyverCore (по ссылке). Установилась 2.0.0. Добавилась плата ATmega328 based. Скетч использует:

include //библиотека для LCD с параллельным подключением

include // Подключаем библиотеку для работы с SPI устройствами (для SD)

include // Подключаем библиотеку для работы с SD картой

И очень активно UART (аппаратный, Serial). Железо:

  1. Arduino UNO R3
    1. LCD Keypad Shield
    2. micro-SD Shield
    3. TTL -> RS-422 Shield (MAX490)

В дефолтном Ардуино ИДЕ всё компилируется нормально. В скетче везде Serial().

Потом выбираю твою плату (ATmega328 based). С дефолтным Сериалом (Инструменты) всё компилируется нормально. Потом там же в Инструментах выбираю Serial: GyverUART [Warning!]. И пытаюсь откомпилировать - ошибка. Сейчас ругается на другую ошибку:

Z:\РАБОТА_ВОЛНА\1986ВЕ91\wsd1986\wsd1986prog.ino: In function 'bool doRun()':

wsd1986prog:846:28: error: no matching function for call to 'GyverUart::write(byte [10], int)'

In file included from C:\Users\������\AppData\Local\Arduino15\packages\GyverCore\hardware\avr\2.0.0\cores\arduino/Arduino.h:214:0,

             from C:\Users\1470~1\AppData\Local\Temp\arduino_build_963020\sketch\wsd1986.ino.cpp:1:

C:\Users\������\AppData\Local\Arduino15\packages\GyverCore\hardware\avr\2.0.0\cores\arduino/GyverCore_uart.h:38:7: note: candidate: void GyverUart::write(byte)

void write(byte data);

   ^~~~~

Несколько библиотек найдено для "LiquidCrystal.h" Используется: C:\Program Несколько библиотек найдено для "SPI.h" Используется: C:\Users\Феликс\AppData\Local\Arduino15\packages\GyverCore\hardware\avr\2.0.0\libraries\SPI C:\Users\������\AppData\Local\Arduino15\packages\GyverCore\hardware\avr\2.0.0\cores\arduino/GyverCore_uart.h:38:7: note: candidate expects 1 argument, 2 provided

Несколько библиотек найдено для "SD.h" Используется: C:\Users\Феликс\Documents\Arduino\libraries\SD Не используется: C:\Program Используем библиотеку LiquidCrystal версии 1.0.7 из папки: C:\Program Files Используем библиотеку SPI версии 1.0 из папки: C:\Users\Феликс\AppData\Local\Arduino15\packages\GyverCore\hardware\avr\2.0.0\libraries\SPI Используем библиотеку SD версии 1.2.4 из папки: C:\Users\Феликс\Documents\Arduino\libraries\SD exit status 1 no matching function for call to 'GyverUart::write(byte [10], int)'

Вот в этом куске:

bool doRun ( void ) { // bool ok = false; // if ( !serialOpen ( InitParam.comname ) ) { // outString ( "Ошибка открытия COM порта!" ); // return ok; // } // serialdcb.BaudRate = CBR_115200; // SetCommState ( serialhCom, &serialdcb ); // outString ( "Run at 0x08000000..." ); outStr1 (F("Run..."), true ); / case 'R': OutbyteTX('R'); sleep(200); Run_Flash(); break; / tx_buf[0] = 'R'; // Команда загрузчика Run Serial.write ( tx_buf, 1 ); delay(WAIT_MS); if ( ( !serialReadBlock ( rx_buf, 1 ) ) || ( rx_buf[0] != 'R' ) ) { // outString ( "ошибка обмена" ); outFailed ( 16 ); return false;

Ведь я правильно понял, что при выборе твоего ядра и изменении настройки в Инструментах на Serial: GyverUART, он автоматически подменяет штатный Serial без необходимости править исходник (Serial() -> uart())?

AlexGyver commented 4 years ago

да, ты понял правильно. Но к сожалению GyverUART через меню не работает при использовании Ethernet модулей. Скачай поставь библиотеку GyverUART отдельно, если нужен лёгкий сериал

SoftFelix72 commented 4 years ago

Так у меня нет Ethernet-модуля.

AlexGyver commented 4 years ago

RA422 перепутал. В общем какая то из библиотек конфликтует с внутриядерным gyverUart, стандартный сериал слишком сильно пустил корни во многие файлы. Так что если есть нужда в лёгком сериал - в коде через поиск сделать замену Serial на uart, а в настройках платы не трогать меню сериал