Фоно
Вторник 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.
Спасибо за помощь
Жан-Марк
Я установил пакет 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):
Но вы правы, есть двойные определения (контролируется некоторыми #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 постоянно вносит, и обычно их изменения в основных файлах не являются чем -то Остановите вещи компиляция
Транслировать.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;
^
Я использую новый 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);
^
Это работает лучше. Пока что я могу включить следующие библиотеки:
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/библиотеки.
Переместите/скопируйте все ваши используемые (не включенные в 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.час>
Если возможно, сделайте простую программу тестирования, которая демонстрирует проблему, а не публиковать весь исходный код
КСТАТИ.
Я не уверен, что кто -то недавно попробовал библиотеку 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 постоянно вносит, и обычно их изменения в основных файлах не являются чем -то Остановите вещи компиляция
<...>
Пса. Это возможный поток.CPP и .В настоящее время немного устарели с файлами, отправленными в Arduino IDE, в связи с этим, но невозможно не отставать от массы небольших изменений, которые команда IDE постоянно вносит, и обычно их изменения в основных файлах не являются чем -то Остановите вещи компиляция
Rogerclark
Вторник 5 мая 2015 г. 11:37
Я думаю, что разница в любом, очень незначительна
Фоно
Ср. 06 мая 2015 г. 16:28
Роджеру Кларку:
У меня нет абсолютно никакого кода, чтобы показать вам, потому что я только что открыл IDE и включил упомянутые библиотеки в код скелета, который затем составлен.
У меня нет абсолютно никакого кода, чтобы показать вам, потому что я только что открыл IDE и включил упомянутые библиотеки в код скелета, который затем составлен.
Rogerclark
Чт, 7 мая 2015 г. 1:25
Многие библиотеки, на которые вы ссылались, не были перенесены на STM32
В целом лучше предположить, что любая библиотека, которая не является частью репо, может не работать
Это не обязательно проблема STM32, это может быть проблема с компилятором ARM против AVR
Попробуйте переключить тип платы на должность и посмотреть, компилируется ли он. Это будет выделять проблемы с компиляторами и прочих, не специфичные для STM32
Другой вариант - добавить либера.
Затем вам нужно будет опубликовать индивидуально о каждой LIB, чтобы увидеть, переносили ли кто -нибудь ранее, или вам нужно переносить его самостоятельно
В целом лучше предположить, что любая библиотека, которая не является частью репо, может не работать
Это не обязательно проблема STM32, это может быть проблема с компилятором ARM против AVR
Попробуйте переключить тип платы на должность и посмотреть, компилируется ли он. Это будет выделять проблемы с компиляторами и прочих, не специфичные для STM32
Другой вариант - добавить либера.
Затем вам нужно будет опубликовать индивидуально о каждой LIB, чтобы увидеть, переносили ли кто -нибудь ранее, или вам нужно переносить его самостоятельно
Фоно
Чт, 7 мая 2015 г., 5:31
Пожалуйста, объясните следующее из вашей процедуры установки:
* При использовании Maple или Maple Mini под Windows страница драйверов Maple:
это предложение неполное. Вы можете завершить это?
Я сделал именно так, как вы сказали: из чистого наброска я добавляю одну библиотеки, пока не компилируется.
Те, которые не компилируются
Freertos_arm
Hardwarecan
SDFAT
Не могли бы вы взглянуть?
Для Hardwarecan я внес свой вклад в отладка для Maple, чтобы помочь, но я не знаю API для Arduino. Не могли бы вы дать мне подсказки, чтобы начать портирование?
* При использовании 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+ Вам нужно будет обновить свои либера
Я думаю, что есть специальная / обновленная версия этого.
Victorpv работал с первоначальным автором SDFAT, и я думал, что последняя версия SDFAT имеет поддержку STM32, но она может быть не такая же, как вы используете.
Re: Libs, такие как аппаратная банка и RTO, которые работали с оригинальной Maple IDE. Ядро Libmaple было обновлено из оригинальной версии, которая была эквивалентна Arduino 0022, как правило, соответствует новому API в 1.0 и теперь в 1.5+
Вполне вероятно, что эти изменения могут остановить работу старых библиотек, так как они были записаны на взаимодействие со старой кодовой базой
Вы, конечно, можете вернуться к использованию оригинальной IDE и оригинального Libmaple, если хотите.
Однако, если вы хотите использовать эту версию (e.глин. совместим с Arduino 1.0+ Вам нужно будет обновить свои либера