Удалось (с некоторыми заглушками в коде) скомпилировать ArduinoBASIC для STM32F103C8T6:
Цитата:
Скетч использует 61 896 байт (94%) памяти устройства. Всего доступно 65 536 байт. Глобальные переменные используют 5 576 байт динамической памяти.
Т.е. с доступной для Basic программ памятью, как и ожидалось, дело обстоит значительно лучше, чем на UNO.
P.S. В чип пока не заливал, нужно еще поковырять код...
Добавлено after 7 hours 1 minute 9 seconds: Дополнение Увеличил доступную память под Basic программу с 1024 до 15000, залил, попробовал - местами (кроме нерешенных вопросов) даже работает (см. картинку) Нужна оптимизация кода, поскольку вычерпаны почти все ресурсы МК по памяти,
Код:
Скетч использует 61 888 байт (94%) памяти устройства. Всего доступно 65 536 байт. Глобальные переменные используют 19 552 байт динамической памяти.
а еще хотелось бы сохранять и загружать программы: отвык я уже с клавы их каждый раз набирать Спойлер
Это я уже проверил: действительно, в МК на моей платке можно шить код размером больше 64 К, но, это дело случая. Кстати, может кто знает простую реализацию функции dtostre для STM32F103? Или ее аналог? Это осталось, вроде, единственным куском кода, который нужно переделать.
У F103C8 и F103CB один и тот же кристалл, но в первом случае производителем протестировано 64 КБ, а во втором случае 128 КБ Falsh. Точнее даже у F101C8/B, F102C8/B и F103C8/B идентичные кристаллы. Этим китайцы пользуются ставя в ST-Link STM32F101CBT6 вместо STM32F103C8T6 и все работает, несмотря на то что по документации в F101 нет USB.
Цитата сообщения bolekСпойлер
bolek писал(а):
Результаты компиляции примера SSD1306ShowFont:
Код:
плата размер кода использовано ОЗУ Arduino UNO 3490 28 Arduino Leonardo 6960 168 STM32F103C8T6 15028 2824
Результат не радует: несмотря на "всё больше" в STM32F103C8T6, видимо, сказывается неоптимальная генерация кода (использовано ОЗУ) и разрядность (код в памяти программ). Даже не знаю, стоит ли продолжать рыть дальше...
Upd: Подумал, ещё поковырял и, вроде, не все так грустно, как сначала показалось:
"Пустышка" - это фактически только код инициализации МК и пустой цикл:
Код:
void setup() {} void loop() {}
Из таблицы видно, что инициализация STM32 съедает значительно больше ресурсов, но зато "полезный" код отъедает меньше ресурсов. Пожалуй, следует STM32 поковырять ещё...
Не компилируйте в ArduinoIDE для STM32F103C8T6. "Пустышка" должна занимать около 1 КБ flash и не больше сотни байт ОЗУ. Как-то так (результат компиляции кода мигающего светодиодом с использованием SPL).
Цитата:
Program size (bytes): 764 Data size (bytes): 0 BSS size (bytes): 0
Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей.
Не компилируйте в ArduinoIDE для STM32F103C8T6. "Пустышка" должна занимать около 1 КБ flash и не больше сотни байт ОЗУ. Как-то так (результат компиляции кода мигающего светодиодом с использованием SPL).
Да это понятно, можно и не в ардуиносреде сгенерить большой код, например, использовать HAL. Весь смысл затеи и был в том, чтобы это было сделано a-la ардуино. Не думаю, что переписать код из ino на С большая проблема, но это уже будет не то, к тому же потащит за собой адаптацию или замену библиотек, wire, например. Проще будет начать новый проект...
Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре.
Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.
Сейчас этот форум просматривают: maxlab и гости: 31
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения