Open NickNifontov opened 6 years ago
Если в файле https://github.com/libEmGUI/emGUI-arduino/blob/master/src/emGUI.h
отключить
//#include "emGUI/emGUI.hpp"
то
#include
static xDraw_t LCD; static xInterface interface1; static xLabel mouseMonitor;
xWidget frame1; xWindow * window; xLabel label1;`
выдает такое
Arduino: 1.9.0-beta (Windows 10), Board: "Generic STM32F103C series, STM32F103CB (20k RAM. 128k Flash), STLink, 72Mhz (Normal), Smallest (default)"
LeGUI.cpp:19:8: error: 'xDraw_t' does not name a type
static xDraw_t LCD;
^
LeGUI.cpp:20:8: error: 'xInterface' does not name a type
static xInterface * interface1;
^
LeGUI.cpp:21:8: error: 'xLabel' does not name a type
static xLabel * mouseMonitor;
^
LeGUI.cpp:23:1: error: 'xWidget' does not name a type
xWidget frame1;
^
LeGUI.cpp:24:1: error: 'xWindow' does not name a type
xWindow * window;
^
LeGUI.cpp:25:1: error: 'xLabel' does not name a type
xLabel label1;
^
exit status 1 'xDraw_t' does not name a type
если вместо
include "emGUI/emGUI.hpp"
инклудить
include "emGUI/emGUI.h"
то уже имеем только
LeGUI.cpp:26:8: error: 'xInterface' does not name a type
static xInterface * interface1;
^
exit status 1 'xInterface' does not name a type
Нужно глянуть подробный вывод компилятора - как он подключает пути к инклудам (параметры -I
Если есть step-by-step инструкция как накатить на ардуино поддержку stm32 для платы, то возможно смогу проверить работу сам в свободное время
emGUI_stm32.txt Создал тестовый проект, пустой . Его код в атаче
> #include <Arduino.h>
> #include <emGUI.h>
>
> static xDraw_t LCD;
> static xLabel * mouseMonitor;
>
> xWidget frame1;
> xWindow * window;
> xLabel label1;
>
> static xInterface * interface1;
>
> void setup() {
> // NOP
> }
>
> void loop() {
> // NOP
> }
Также в атаче подробный вывод компилятора + скрин настройки платформы Arduino compiler.txt
.
Инструкция по установке stm32duino и emGUI на Ардуино выглядит так
Скачать stm32duino тут https://github.com/rogerclarkmelbourne/Arduino_STM32 https://github.com/rogerclarkmelbourne/Arduino_STM32/archive/master.zip
Распаковать . Папку назвать Arduino_STM32
Скопировать папку в [Arduino sketches folder]/[hardware]/[Arduino_STM32] К примеру у меня путь выглядит так
Теперь копируем emGUI-arduino в папку Library
В файле library.properties нужно внести изменение чтобы при сборке не ругалось
architectures=STM32F1
В папку Documents\Arduino\libraries\emGUI-arduino\src скопировать файл gfxfont.h gfxfont.txt
В файл Documents\Arduino\libraries\emGUI-arduino\src внести изменения
Строка 5 - #include
Строка 13 - #include "emGUI/emGUI.h"
При сборке проекта выбрать нужную Board как на скрине
Вот файл моей emGUI с фиксами.Нужно только распаковать
@NickNifontov, Благодарю за подробный мануал. Будет полезно.
Анализ показал, что среда неправильно выставляет инклуды. По какой-то причине она считает, что запущена на маке при компиляции библиотеке и генерит следующий путь
"-I\\Mac\Home\Documents\Arduino\libraries\emGUI-arduino\src"
Думаю, что надо разбираться с тем, как среда подключает внешние библиотеки
"C:\Users\Nick Nifontov.NickNifontov-РџРљ\AppData\Local\Arduino15\packages\arduino\tools\arm-none-eabi-gcc\4.8.3-2014q1/bin/arm-none-eabi-g++" -c -g -Os -w
-DDEBUG_LEVEL=DEBUG_NONE -std=gnu++11 -MMD -ffunction-sections -fdata-sections -nostdlib --param max-inline-insns-single=500 -fno-rtti -fno-exceptions
-DBOARD_generic_stm32f103c
-DVECT_TAB_ADDR=0x8000000
-DERROR_LED_PORT=GPIOC
-DERROR_LED_PIN=13 -w -x c++ -E -CC -mcpu=cortex-m3
-DF_CPU=72000000L
-DARDUINO=10900
-DARDUINO_GENERIC_STM32F103C
-DARDUINO_ARCH_STM32F1
-DCONFIG_MAPLE_MINI_NO_DISABLE_DEBUG=1
-DSERIAL_USB
-DGENERIC_BOOTLOADER
-DMCU_STM32F103CB -mthumb -march=armv7-m
-D__STM32F1__
-DMCU_STM32F103CB -mthumb -march=armv7-m
-D__STM32F1__
"-IC:\Arduino\hardware\Arduino_STM32\STM32F1\system/libmaple"
"-IC:\Arduino\hardware\Arduino_STM32\STM32F1\system/libmaple/include"
"-IC:\Arduino\hardware\Arduino_STM32\STM32F1\system/libmaple/stm32f1/include"
"-IC:\Arduino\hardware\Arduino_STM32\STM32F1\system/libmaple/usb/stm32f1"
"-IC:\Arduino\hardware\Arduino_STM32\STM32F1\system/libmaple/usb/usb_lib"
"-IC:\Arduino\hardware\Arduino_STM32\STM32F1\cores\maple"
"-IC:\Arduino\hardware\Arduino_STM32\STM32F1\variants\generic_stm32f103c"
"-I\\Mac\Home\Documents\Arduino\libraries\emGUI-arduino\src"
"-IC:\Arduino\hardware\Arduino_STM32\STM32F1\libraries\Adafruit_GFX_AS" "\\Mac\Home\Documents\Arduino\libraries\emGUI-arduino\src\emGUI\Draw\Draw.c" -o "nul"
С путями все нормально. Просто я работаю из под МАКа на Parallerls Desktop. Windows 10 стоит. Проблема точно не в путях.
Я сейчас перемещу файлы чтобы проверить гипотезу с путями
Файлы положу внутрь пакета Arduino_STM32
С путями все нормально. Просто я работаю из под МАКа на Parallerls Desktop. Windows 10 стоит. Проблема точно не в путях.
Я сам часто пользую подобную связку - сижу на VMWare. Если параллелс не предоставляет какой-то системный ресолвер ссылок типа \MAC то дело в этом, т.к. сам компилер говорит, что не может найти тип, но он то в либе есть, значит инклудится что-то не то
Переместил папку
Вот что выдает warnings.txt
В каком файле описан *static xInterface interface1;** ?
Найти не может именно xInterface
Стоп, хороший вопрос. Это сборка примера из ардуино либы с ветки мастер? Если так, то он там еще поломан, тк мы активно пилим версию 2.0 и еще не успели его актуализироать.
xInterface был заменен на xWindowManager. Дефайн тут
Как это заинитить можно посмотреть в эмуляторе под винду
В целом, полезно накидать UI в эмуляторе и позже перенести на платформу. Сборка под msvc15
Это сборка примера из ардуино либы
Буду вечером пробовать другую сборку. Отпишу
откуда лучше взять emGUI. тут ? https://github.com/libEmGUI/emGUI
или тут https://github.com/libEmGUI/emGUI-arduino/tree/master/src
https://github.com/libEmGUI/emGUI-arduino/tree/master Точно рабочая и собирается под esp8266. Под St, скорее всего, потребуется доработка отображения картинок - они на esp берутся из встроенной ФС
Починил сборку примера для ESP8266 842835464359d0af0860d96a187492de4443bd61, но проверить как работает не могу - нет под рукой платы
Сенкс. Я детально проверю и через 1-2 дня отпишу.
если исключить hpp файлы (там где обьявлены namespace emGUI) то ничего собрать не выходить.
а при подключении hpp не компилируется.
Замкнутый круг.
@NickNifontov, компиляция этого примера сейчас ориентирована на ESP8266 или на эмулятор под винду. На других платформах возможны ошибки.
жаль
Столкнулся с проблемой, возможно Вы сможете подсказать в чем проблема.
1)
Использую https://github.com/libEmGUI/emGUI-arduino.git
Платформа - Stm32Duino (http://wiki.stm32duino.com, https://github.com/rogerclarkmelbourne/Arduino_STM32)
в частности плата Blue Pill (stm32f103c8t6, http://wiki.stm32duino.com/index.php?title=Blue_Pill)
2) Графика прослойка Adafruit_GFX_AS, Adafruit_ILI9341_STM
https://github.com/rogerclarkmelbourne/Arduino_STM32/tree/master/STM32F1/libraries/Adafruit_GFX_AS
https://github.com/rogerclarkmelbourne/Arduino_STM32/tree/master/STM32F1/libraries/Adafruit_ILI9341_STM
Графика работает.
3) При попытке подключить #include
вылазить серия ошибок
Можете подсказать в чем проблема? в какой сторону копать?
warnings.txt