Проблемы с IDE 1.6.3

Фоно
Вторник 5 мая 2015 г., 6:30
Привет
Я установил пакет STM32, как сказано на Arduino версии 1.6.3.
Затем я проверил, собирается ли пустой эскиз.
Пока что просто компилирование пустого эскиза дает ошибку:

C: \ users \ jean-marc \ documents \ arduino \ ardware \ arduino_stm32-master \ stm32f1 \ cores \ maple \ stream.CPP: в функции участника 'Long Int Stream :: Parseint (char)':
C: \ users \ jean-marc \ documents \ arduino \ ardware \ arduino_stm32-master \ stm32f1 \ cores \ maple \ stream.CPP: 140: 3: ошибка: «логическое» не было объявлено в этой области
логический isnegative = false;
^

Я проверил, где логические или Bool изначально определены в базовой системе Arduino, но я не уверен, где это.
Я нашел 2 разных определения логического типа, но ни один из них не идеален.
Насколько я знаю, логический может быть любого целочисленного типа, но лучшие определения для истинного и ложного:

#define true (0 == 0)
#define false (0!= 0)

Я боюсь, что другие определения могут привести к несоответствиям.

На данный момент я просто сообщаю о первой проблеме, и мне было бы рад, если будет найдено исправление.

Для вашей информации моя цель - переходить от Maple IDE, которая устарела в Arduino, чтобы сохранить возможность программировать платы Olimex STM32, которые я использую широко.

Библиотеки, которые мне нужны:
Eeprom
OneWire
Ethernet
Wifly
Freertos
Liquidcrystal
Hardwarecan

Для последнего я использовал тот, который упоминался на форуме Maple, и я даже внес свой вклад в отладка. Я думаю, что могу помочь перенести это в Arduino.

Спасибо за помощь

Жан-Марк

Мадиас
Вторник 5 мая 2015 г. 7:58 утра
Как ни странно, у меня не было таких сообщений об ошибках, независимо от того, какая плата.
Но вы правы, есть двойные определения (контролируется некоторыми #ifdef's):
STM32F4/cores/maple/wirish.h Showing the top match. Last indexed on Dec 28 2014. 68 bitClear(value, bit)) 69 #define bit(b) (1UL << (b)) 70 71 typedef uint8 boolean; 72 typedef uint8 byte; 73 74 #endif STM32F3/cores/maple/wirish/wirish_types.h Showing the top match. Last indexed on Feb 20. 63 #define __FLASH__ __attr_flash 64 65 typedef uint8 boolean; 66 typedef uint8 byte; 67 68 #endif

Rogerclark
Вторник 5 мая 2015 г. 9:56 утра
Просто чтобы набрать.

Транслировать.CPP и поток.H были взяты из версий Arduino IDE примерно на 1.5.8 Поэтому я, если что -то не компилируется, лучше всего попробовать считать, как в основном тот же код.

У нас были экземпляры, когда у людей есть код, который не компилируется, но это показало, что он не будет компилироваться или из -за некоторых различий в компиляторе ARM и т. Д

Я знаю, что в этом случае вы бы уже использовали компилятор ARM, но версия, вероятно, другая.

Пса. Это возможный поток.CPP и .В настоящее время немного устарели с файлами, отправленными в Arduino IDE, в связи с этим, но невозможно не отставать от массы небольших изменений, которые команда IDE постоянно вносит, и обычно их изменения в основных файлах не являются чем -то Остановите вещи компиляция

Фоно
Вторник 5 мая 2015 г., 19:44
Я провел эксперимент.
Я использую новый Skectch, так как вы начинаете IDE.
Я выбрал "Arduino Due с портом программирования".
Тогда он собирает ОК.
Я меняю доску на «Leaflabs Maple Rev 3+ на Flash», и я начинаю компиляцию.
Я снова получаю ошибку с логическим типом.

C: \ users \ jean-marc \ documents \ arduino \ ardware \ arduino_stm32-master \ stm32f1 \ cores \ maple \ stream.CPP: в функции участника 'Long Int Stream :: Parseint (char)':
C: \ users \ jean-marc \ documents \ arduino \ ardware \ arduino_stm32-master \ stm32f1 \ cores \ maple \ stream.CPP: 140: 3: ошибка: «логическое» не было объявлено в этой области
логический isnegative = false;
^

Фоно
Вторник 5 мая 2015 г. 8:19 вечера
Хорошо, я переустановил файлы ARDUINO_STM32-MASTER и попытался собрать пустой набросок.
Это работает лучше. Пока что я могу включить следующие библиотеки:
Eeprom
Liquidcrystal
OneWiRestm
Wifly
SPI

Эскиз:

#включать <SPI.час>

#включать <Отлаживать.час>
#включать <Wifly.час>

#включать <OneWiRestm.час>

#включать <Liquidcrystal.час>

#включать <Eeprom.час>
#включать <flash_stm32.час>

void setup () {
// Поместите здесь код настройки, чтобы запустить один раз:

}

void loop () {
// Поместите свой главный код здесь, чтобы запустить многократно:

}

********************************************* ********
НО !!!

Если я добавлю Freertos, я получаю:

В файле, включенном из C: \ users \ jean-marc \ documents \ arduino \ arpware \ arduino_stm32-master \ stm32f1 \ cores \ maple/boards.H: 38: 0,
от c: \ users \ jean-marc \ documents \ arduino \ ardware \ arduino_stm32-master \ stm32f1 \ cores \ maple/wirish.H: 53,
от c: \ users \ jean-marc \ documents \ arduino \ ardware \ arduino_stm32-master \ stm32f1 \ cores \ maple/arduino.H: 30,
от c: \ users \ jean-marc \ documents \ arduino \ библиотеки \ freertos_arm \ freertos_arm.C: 6:
C: \ users \ jean-marc \ documents \ arduino \ arpware \ arduino_stm32-master \ stm32f1 \ cores \ maple/wirish_types.H: 66: 1: Ошибка: неизвестное имя типа 'Bool'
Typedef Bool Boolean;


Если я удалю Freertos и добавлю Hardwarecan, я получаю

В файле, включенном из C: \ users \ jean-marc \ documents \ arduino \ библиотеки \ hardwarecan/hardwarecan.H: 8: 0,
от sketch_may05b.Ино: 1:
C: \ users \ jean-marc \ documents \ arduino \ библиотеки \ hardwarecan/utility/can.H: 8: 28: фатальная ошибка: libmaple_types.H: нет такого файла или каталога
#include "libmaple_types.час"
^
Если я удалю Hardwarecan и добавлю SDFAT:


В файле, включенном из C: \ users \ jean-marc \ documents \ arduino \ библиотеки \ sdfat/sdfat.H: 38: 0,
от sketch_may05b.Ино: 10:
C: \ users \ jean-marc \ documents \ arduino \ библиотеки \ sdfat/sdfile.H: 44: 7: Ошибка: Конфликтный тип возврата, указанный для «Virtual int sdfile :: write (const char*) '
int write (const char* str);
^

Мадиас
Вторник 5 мая 2015 г., 8:45 вечера
Не решение, но вы можете попробовать это:
Переместите/скопируйте все ваши используемые (не включенные в STM32-Arduino) библиотеки из библиотеки/arduino/arduino/arduino/ardware/arduino-stm32/stm32f1/библиотеки.

Фоно
Вторник 5 мая 2015 г., 8:56 вечера
Я тоже, но с такими же ошибками.

Rogerclark
Вторник 5 мая 2015 г., 21:49
Я думаю, вам нужно будет опубликовать некоторые из вашего кода

Если возможно, сделайте простую программу тестирования, которая демонстрирует проблему, а не публиковать весь исходный код

КСТАТИ.

Я не уверен, что кто -то недавно попробовал библиотеку RTOS, он, вероятно, не сработает. Это оригинальный RTOS LIB из Maple IDE, но Maple IDE использовал ARDUINO API 0022, который немного отличается от Arduino 1.0 API, а также изменения - 1.5 и теперь 1.6

Можете ли вы также опубликовать ссылки на

#включать <Отлаживать.час>
#включать <Wifly.час>

Mrburnette
Вторник 5 мая 2015 г. 11:17
Rogerclark написал:Просто чтобы набрать.

<...>
Пса. Это возможный поток.CPP и .В настоящее время немного устарели с файлами, отправленными в Arduino IDE, в связи с этим, но невозможно не отставать от массы небольших изменений, которые команда IDE постоянно вносит, и обычно их изменения в основных файлах не являются чем -то Остановите вещи компиляция

Rogerclark
Вторник 5 мая 2015 г. 11:37
Я думаю, что разница в любом, очень незначительна

Фоно
Ср. 06 мая 2015 г. 16:28
Роджеру Кларку:
У меня нет абсолютно никакого кода, чтобы показать вам, потому что я только что открыл IDE и включил упомянутые библиотеки в код скелета, который затем составлен.

Rogerclark
Чт, 7 мая 2015 г. 1:25
Многие библиотеки, на которые вы ссылались, не были перенесены на STM32

В целом лучше предположить, что любая библиотека, которая не является частью репо, может не работать

Это не обязательно проблема STM32, это может быть проблема с компилятором ARM против AVR

Попробуйте переключить тип платы на должность и посмотреть, компилируется ли он. Это будет выделять проблемы с компиляторами и прочих, не специфичные для STM32

Другой вариант - добавить либера.

Затем вам нужно будет опубликовать индивидуально о каждой LIB, чтобы увидеть, переносили ли кто -нибудь ранее, или вам нужно переносить его самостоятельно

Фоно
Чт, 7 мая 2015 г., 5:31
Пожалуйста, объясните следующее из вашей процедуры установки:

* При использовании Maple или Maple Mini под Windows страница драйверов Maple:
это предложение неполное. Вы можете завершить это?

Я сделал именно так, как вы сказали: из чистого наброска я добавляю одну библиотеки, пока не компилируется.
Те, которые не компилируются

Freertos_arm
Hardwarecan
SDFAT

Не могли бы вы взглянуть?
Для Hardwarecan я внес свой вклад в отладка для Maple, чтобы помочь, но я не знаю API для Arduino. Не могли бы вы дать мне подсказки, чтобы начать портирование?

Rogerclark
Чт, 7 мая 2015 г., 5:55 утра
Re: Sdfat

Я думаю, что есть специальная / обновленная версия этого.

Victorpv работал с первоначальным автором SDFAT, и я думал, что последняя версия SDFAT имеет поддержку STM32, но она может быть не такая же, как вы используете.

Re: Libs, такие как аппаратная банка и RTO, которые работали с оригинальной Maple IDE. Ядро Libmaple было обновлено из оригинальной версии, которая была эквивалентна Arduino 0022, как правило, соответствует новому API в 1.0 и теперь в 1.5+

Вполне вероятно, что эти изменения могут остановить работу старых библиотек, так как они были записаны на взаимодействие со старой кодовой базой

Вы, конечно, можете вернуться к использованию оригинальной IDE и оригинального Libmaple, если хотите.

Однако, если вы хотите использовать эту версию (e.глин. совместим с Arduino 1.0+ Вам нужно будет обновить свои либера