Беременный.А.С.я.В. Для Ардуино

Саймонф
Солнце 29 мая 2016 г. 22:56
Я наткнулся на это, пока траировал интернет, основной дополнительный станок для Arduino. Это можно найти в https: // www.B4X.com/b4r.HTML. Вы можете встроить код C 'и компилировать / загружать с помощью стандартного Arduino.Exe. При предположении, что это Cross соответствует базовому коду в какой -то эквивалент «C», а затем он скомпилируется и загружается Arduino.Exe.

Я знаю, что все пуристы скажут, что вы должны использовать настоящий язык для этого типа работы бла -бла -бла -бла. Но если вы просто хотите кодировать что -то, что включает нагреватель, если температура слишком низкая, а вентилятор - если температура слишком высока и т. Д., То, возможно, идеальная вещь. Вы можете посмотреть на код, который он производит, но я еще не пробовал его. Если это так, люди могли бы использовать его в качестве основного словаря с C.

Это похоже на это может Работайте с STM32 с небольшими изменениями, поскольку он использует доски.TXT -файл для добавления дополнительных плат.

Вы также можете вызвать существующие функции «c», используя Runnative, чтобы вы могли написать обертки для существующих библиотек «C».

Я буду играть с этим на следующей неделе и посмотрю, насколько хорошо это/плохо.

PS они также делают то же самое для Android и iOS, поэтому вы можете написать проект, который частично работает на устройстве Android Ashipe и Arduino и используйте только один язык.

Mrburnette
Солнце 29 мая 2016 г. 11:43
https: // www.B4X.com/магазин.HTML Приложения, разработанные с B4A, B4I или B4J, не имеют роялти.
Лицензии на одного разработчика. Каждому разработчику требуется одна лицензия.
Платежи выполняются по защищенному серверу.
После покупки вы получите электронное письмо со ссылкой на полную версию и файл лицензии. Электронная почта должна прибыть через 10-15 минут после покупки.
Выберите вариант Fastspring для покупки с помощью кодов купонов. Введите код на странице второго порядка.
Вы можете занять:
https: // github.com/esp8266/basic
Я знаю, что все пуристы скажут, что вы должны использовать настоящий язык для этого типа работы бла -бла -бла -бла. У меня нет «проблемы» с базовой как языком ... В конце концов, Arduino является псевдоязычным в одном смысле, но типы данных и синтаксис более тесно связаны с C/C ++, IMO.
Похоже, это может работать с STM32 с небольшими изменениями... Маловероятно, так как AVR 8-битный. Но я часто ошибаюсь.

Моя самая большая какашка в этом продукте - это Microsoft .Сеть должна быть установлена. В Аиде будет холодный день, прежде чем я разбес на установку Linux с .Сеть.


Луча

Саймонф
Пн 30 мая 2016 г., 12:31
Mrburnette написал: Вы можете занять:
https: // github.com/esp8266/basic


Саймонф
Пн 30 мая 2016 г. 11:41
Мне удалось получить час, чтобы попробовать B4R. Я воспользовался возможностью, чтобы обновить до 1.69, а затем попробовал следующий мигающий пример.

На Uno он сразу же и бежит
#Region Project Attributes #AutoFlushLogs: True #CheckArrayBounds: True #StackBufferSize: 300 #End Region Sub Process_Globals Public Serial1 As Serial Private Timer1 As Timer Private pin13 As Pin End Sub Private Sub AppStart Serial1.Initialize(115200) Log("AppStart") pin13.Initialize(13, pin13.MODE_OUTPUT) Timer1.Initialize("Timer1_Tick", 1000) '1000ms = 1 second Timer1.Enabled = True End Sub Private Sub Timer1_Tick Dim currentState As Boolean = pin13.DigitalRead Log("CurrentState: ", currentState) Dim NewState As Boolean = Not(currentState) Log("NewState: ", NewState) pin13.DigitalWrite(NewState) End Sub

Rogerclark
Вторник 31 мая 2016 г. 3:48
@Simonf

Некоторые ошибки вызваны тем, что Libmaple использует специальную переменную тип/перечисление WheningPinmode вместо байта для PinMode

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

Я не уверен, почему есть проблемы с определением ложного

Это сделано так же, как и ядро ​​Arduino Sam делает это


Вероятно, лучше всего попытаться скомпилировать базовую для Arduino Due и посмотреть, были ли у него такие же проблемы (а также скомпилировать для Uno - или любого ядра AVR)

Саймонф
Вторник 31 мая 2016 г. 12:48
Rogerclark написал:@Simonf

Некоторые ошибки вызваны потому, что Libmaple использует специальную переменную тип/перечисление winingpinmode вместо байта для Pinmode

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

Стевех
Вторник 31 мая 2016 г., 19:23
На борту PIN #

Я отмечаю, что Raspberry Pi назвал все GPIO как GPIO -1, -2 и т. Д. Не связанный с номером PIN -кода на разъеме заголовка. Кажется, все легко адаптируются к этому; эн.глин., Экземпляры класса библиотеки GPIO просто используют номер GPIO, и у людей есть маленькие цветные простыни для кроваток, чтобы показать, что GPIO # где на заголовке. Несмотря на то, что схема заголовка одинакова для всех досок ожидается, и включая меньшую нулевую доску.

Интересно, стоило ли это, задним числом, чтобы Ардуино зафиксировал на портовой штифте против. штифт платы так, чтобы упор был скрыт от кодера.

Саймонф
Ср. 01 июня 2016 г., 21:54
Стевех написал:
Интересно, стоило ли это, задним числом, чтобы Ардуино зафиксировал на портовой штифте против. штифт платы так, чтобы упор был скрыт от кодера.

Стевех
Ср. 01 июня 2016 г., 22:13
[QUOTE = "SIMONF"
Это не фактический номер PIN -кода против номера порта, который является проблемой, как хранится PinMode, в данном случае прошел.
Проблема заключается в том, что тип переменной, используемый для описания режима PIN в Arduino, является байтом, тогда как Maple/STM32Duino использует перечисление.
Я быстро посмотрел на сеть, и я вспомнил, что в дни C# вы могли бы сделать что -то подобное
enum MyEnum : unsigned char { i ,j, k, w };

Starchild
SAT 11 июня 2016 г. 13:17
У меня есть B4R, чтобы успешно компилировать для STM32NUCLEO F103

Мне нужно было внести несколько изменений.
Внутри файлов B4R, а также внутри файлов библиотеки arduino_stm32.

Он компилируется и работает. т.е. B4R Blink Пример.

Но я получаю дополнительное 64K, добавленное к размеру файла выходного корзина.
Даже когда я составляю пустой проект.

Я думаю, что отследил его до B4rscheduler.Файл CPP
Я думаю, что это в классе Pollernode и может быть вызвана объявлением
void* Tag;

Мне интересно, может ли эта декларация сделает ссылку на 00000
в файле ELF и сразу же, вызывая при увеличении бина в размере на 64 тыс?
Я считаю, что код STM32 начинается на первой границе 64K.

Несмотря на то, что файл составляет 66 тыс. Он по -прежнему загружается ОК в ядро ​​F1 (FLASH 128K), но для платы STM32F103C8 (64K Flash) результирующий минимальный размер - 66K. Погрузчик не передаст его до платы.

Я был бы признателен за любое понимание кого -либо.
Я могу опубликовать свои моды B4R, если кто -то заинтересован.

Starchild
Солнце 12 июня 2016 г., 3:45
Я не уверен, был ли мой последний (самый первый) пост успешным, так как я не могу найти на него ссылку.

У меня есть B4R, компилирование и работает для платы STM32NUCLEOF1.

Было необходимо несколько изменений для преодоления несовместимости между библиотеками STM32 и библиотеками Arduino AVR и B4R, лежащими в основе исходных файлов C.

Ниже приведены мои изменения.
Mods for STM32F1 ============== This file details the changes made in implementing the Arduino_STM32 libraries and B4R libraries so that B4R can successfully compile to target a STM32F103RB Nucleo Dev board. Other changes may still need to be made as further libraries and hardware support are confirmed. I have only made changes to support the STM32F1 series. The Arduino_STM32 libraries appear to support the other microcontrollers in the ST family. Last Revised: 10th June 2016 ------------------------------------------------------------------------- Added the following to lines to the STM32 file: ..//Arduino_STM32/STM32/STM32F1/cores/maple/print.h size_t print(const Printable&); size_t println(const Printable&); Also added: #include "printable.h" This file was already in the maple folder just not included. --------------------------------------------------------------------------- Seems that the STM32 libraries use an enumerated type (WiringPinMode) for the pin mode value. STM32 supports many more pin modes. In Arduino the pin mode is a numeric value only defined as INPUT, OUTPUT and INPUT_PULLUP. A type mismatch error occurs at compilation. To translate the types, I edited the SetMode function in the B4R file. ..//B4R/Libraries/rCore/B4RArduino.cpp void Pin::setMode(Byte arduino_Mode) { #ifdef USING_STM32 WiringPinMode stm32_Mode; switch (arduino_Mode) { case INPUT: stm32_Mode = INPUT; break; case OUTPUT: stm32_Mode = OUTPUT; break; case INPUT_PULLUP: stm32_Mode = INPUT_PULLUP; break; } pinMode(PinNumber, stm32_Mode); #else pinMode(PinNumber, arduino_Mode); #endif if (arduino_Mode == INPUT_PULLUP) CurrentValue = true; } You need to define a compiler symbol "USING_STM32"to ..//B4R/Defines-Template.h #define USING_STM32 Remove this define to compile B4R code for microcontrollers other than stm32. ------------------------------------------------------------------- Also need to extend the process timeout in B4R so that the compilation results get displayed. Menu: Tools/IDE-Options/Configure-Process-Timeout Set it to 45 seconds. ------------------------------------------------------------------

Starchild
Пн 13 июня 2016 г., 6:32
Далее к моему последнему сообщению, void* Tag; Объявление не является причиной дополнительного распределения памяти в мусорном ведре.

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

Это простой фрагмент кода Arduino, чтобы повторить проблему. class MyClass { }; MyClass* fred; void setup() { fred = new MyClass(); }

Rogerclark
Вт 14 июня 2016 г. 10:12
Причина, по которой файл bin большой, заключается в том, что «новый» оператор читает в загрузке библиотек.

Это было отмечено в других публикациях.

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

КСТАТИ.
Большинство устройств STM32F103C8 на самом деле имеют 128K Flash, даже если они спецификации на 64K.

Starchild
Вт 14 июня 2016 г. 10:39 утра
Только что, если компиляция в Arduino uno разница составляет всего 600 байтов, а не 64 тыс.
Я предположил, что что -то не так с обращением с новым для STM32.

Спасибо.

Стивестронг
Вт 14 июня 2016 г. 11:36 утра
КСТАТИ.
Большинство устройств STM32F103C8 на самом деле имеют 128K Flash, даже если они спецификации на 64K.
Роджер, как ты это узнал?
Как проверить/воспроизводить?

Mrburnette
Вт 14 июня 2016 г. 11:53
Стивестронг написал:КСТАТИ.
Большинство устройств STM32F103C8 на самом деле имеют 128K Flash, даже если они спецификации на 64K.
Роджер, как ты это узнал?
Как проверить/воспроизводить?

Стивестронг
Вт 14 июня 2016 г. 11:59
Спасибо, Рэй, приятно знать, не хватает ли в одном из моих приложений только пара байтов выше предела 64 тыс :)

Mrburnette
Вт 14 июня 2016 г. 12:24
Стивестронг написал:Спасибо, Рэй, приятно знать, не хватает ли в одном из моих приложений только пара байтов выше предела 64 тыс :)

Rogerclark
Вт 14 июня 2016 г., 22:22
Офтопический... Но просто примечание, что GD32F103C8 имеет только 64K, а не 128 тыс. Поскольку его внутренняя архитектура совершенно другая.

Mrburnette
Вт 14 июня 2016 г., 11:14
Rogerclark написал:Офтопический... Но просто примечание, что GD32F103C8 имеет только 64K, а не 128 тыс. Поскольку его внутренняя архитектура совершенно другая.

Rogerclark
Вт 14 июня 2016 г. 11:54
Луча
Согласованный. SPI, кажется, не работает так же.

Саймонф
Ср 15 июня 2016 г. 18:38
Mrburnette написал:Rogerclark написал:Офтопический... Но просто примечание, что GD32F103C8 имеет только 64K, а не 128 тыс. Поскольку его внутренняя архитектура совершенно другая.

Саймонф
Ср 15 июня 2016 г. 18:55
Starchild написал:У меня есть B4R, чтобы успешно компилировать для STM32NUCLEO F103

Я могу опубликовать свои моды B4R, если кто -то заинтересован.

Mrburnette
Ср 15 июня 2016 г., 21:32
Саймонф написал: <...> И вы даете GD32F103C8 A -1.

Саймонф
Ср 15 июня 2016 г. 22:20
Mrburnette написал:Саймонф написал: <...> И вы даете GD32F103C8 A -1.

Starchild
Чт 16 июня 2016 г., 7:38 утра
Саймонф написал:Starchild написал:У меня есть B4R, чтобы успешно компилировать для STM32NUCLEO F103

Я могу опубликовать свои моды B4R, если кто -то заинтересован.

Starchild
Сб 18 июня 2016 г., 5:08
Саймонф написал:Starchild написал:У меня есть B4R, чтобы успешно компилировать для STM32NUCLEO F103

Я могу опубликовать свои моды B4R, если кто -то заинтересован.

Rogerclark
Сб 18 июня 2016 г., 5:42
Любой шанс вы можете прикрепить PDF к своему сообщению, чтобы просмотреть его на сайте B4X, вам нужно иметь учетную запись :-(

Starchild
Сб 18 июня 2016 г. 8:44
Rogerclark написал:Любой шанс вы можете прикрепить PDF к своему сообщению, чтобы просмотреть его на сайте B4X, вам нужно иметь учетную запись :-(

Rogerclark
Сб 18 июня 2016 г. 9:34 утра
Спасибо

STM32 Powered Multieter

RPI Zero - за 5 долларов

Найдите ошибку