Представляем Sduino для STM8

Тенбат
Ср 11 октября 2017 г. 16:06
Привет,

В прошлом году я принял окружающую среду Arduino как можно более близко для STM8. Теперь пользователь Kenjutsu предложил связать доску STM8 этого форума с моего веб -сайта проекта как место для общих обсуждений о моем проекте. Я надеюсь, что это нормально? Пока я не публиковал ссылки.

Майкл

Rogerclark
Ср 11 октября 2017 г. 20:49
Привет...

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

Afik Никто не написал полное ядро, которое C ++ совместимо с STM8, но я думаю, что работа все еще продолжается

Или, возможно, лучшее, что достижимо, - это система C, с обходными путями для классов

Тенбат
Ср 11 октября 2017 г. 9:20 вечера
Привет, Роджер!
Да, это то, что я сделал. Используйте Pure C, но благодаря какой -то препроцессорной магии она почти выглядит как C++. Во многих случаях вы уходите с простой поиском и заменой для обмена всем. Преобразование существующей библиотеки Arduino сложнее, хотя.
Было бы здорово, если бы кто -то найдет способ использовать SDCC для реального ввода C ++. Есть некоторые идеи вокруг, но пока нет, пока не работает.

Rogerclark
Ср 11 октября 2017 г., 21:37
Прохладный

Вы интегрированы в IDE в IDE ?

Я посмотрел на ссылку GitHub, и она выглядит как ее автономная.

Мы немного повезло с SM32, потому что компилятор ARM устанавливается, если вы установите Arduino Due или Zero, но я знаю, что другие компиляторы можно использовать с IDE, потому что ESP8266 использует совершенно другой компилятор.

Поэтому я предполагаю, что можно было бы интегрироваться в IDE

Rogerclark
Чт 12 октября 2017 г. 1:11
Где вы получаете компилятор ?

Это отсюда

http: // sdcc.Sourceforge.сеть/

Тенбат
Чт 12 октября 2017 г., 7:15 утра
Да, это SDCC.
Я хотел бы интегрировать его в IDE. Я попробовал это в начале, но я никогда не заставлял его работать, не имея хотя бы одного входного файла c ++. Я больше не помню полную информацию, но это было что -то о жестком предположении об эксплуатации имени файла в этой программе сборки, которое распространяется как только EXE.
Если бы кто -то найдет способ заставить его работать только с C, будет отличным! Прямо сейчас я использую Makefile на основе Arduino.Mk Makefile https: // github.com/sudar/arduino-makefile.
Это прекрасно работает на Linux и MacOS и является моим любимым рабочим стилем, но, к сожалению, Windows не очень хорошо подходит для этого, и все становится медленным. Очень медленно. Это происходит потому, что «Сделай Небесный» полагается на развязка текущего процесса, который не поддерживается в окнах и внутренне эмулируется путем запуска новых процессов с нуля. И это требует времени. Много времени. Компилирование MAM-пример-пример TAKES-40-секунды Время. Время потрачено впустую, чтобы просто запустить и убить подпроцессы. Я думаю, именно поэтому ребята из Arduino придумали свою собственную систему сборки в первую очередь.
Кто -то придумал внедрение Python простой системы сборки. Это может быть улучшением, но использование акций Arduino One будет лучшим.

Rogerclark
Чт 12 октября 2017 г. 8:58 утра
@tenbaht

Не беспокойся

Я посмотрел на структуру каталогов и она похожа на Arduino STM32, но не совсем то же самое

Я также не уверен, как Arduino IDE создает список файлов, которые необходимы для отправки компилятору.

Дэнниф
Солнце 15 октября 2017 г., 19:55
Тенбахт: Добро пожаловать. Ваш порт Sduino является ценным вариантом для пользователей STM8.

При использовании SPL: когда я перенес STM8Sduino, я фактически использовал средний слой (моего), который построен на SPL. Накладные расходы составляет около 2 кб (используя IAR). Поскольку моей целью была маленькая STM8S (STM8S003F), я подумал, что это слишком дорого и пошел на средний слой, который не полагается на SPL, а затем полностью выписал средний слой - накладные расходы сейчас около 0.5 - 0.75 КБ.

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

Только мои 2 пенса.

Тенбат
Пн, 16 октября 2017 г. 8:27 утра
Привет, Дэнни,

Да, SPL - это свинья памяти и довольно сложный в использовании. Единственное преимущество, которое я вижу при использовании, - это быть готово для более легкой миграции в STM32.

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

Чтобы избежать штрафа в размере 2 КБ, связанный с мертвым кодом, я написал Makefile, который разбивает исходные файлы SPL в однофункциональные исходные файлы и компоненты отдельно. Таким образом, только те функции, которые фактически используются, попадают в проект, и не осталось мертвого кода. Так что можно использовать SPL, но он ничего не стоит, если вы этого не сделаете.

AG123
Сб 21 октября 2017 г. 16:49
Казалось, что поиск в Google для SDCC и STM8 обнаруживает довольно много статей?

Казалось, с STM8s одна из главных проблем, казалось, отлаживала, так как STM8 не делают SWD
https: // www.CNX-Software.com/2015/04/13 ... -in-linux/

кто -то выяснил больше, чем выше? которые, кажется, предполагают отладку для STM8S, вероятно, попадает в стену с помощью инструментов с открытыми источниками.

Маркб
Пн 23 октября 2017 г. 16:41
[AG123 - Сб 21 октября 2017 г. 16:49] - кто -то выяснил больше, чем выше? которые, кажется, предполагают отладку для STM8S, вероятно, попадает в стену с помощью инструментов с открытыми источниками.
Упав в глубине души, я не смог попробовать ее, но в начале этого года здесь есть STM8 в проекте GDB: https: // sourceforge.net/projects/stm8-b ... GDB/файлы/

Тенбат
Пн 23 октября 2017 г., 21:01
Поддержка STM8 в SDCC прогрессирует быстро за последние 12 месяцев, и IMHO идеально подготовлен. Размер кода все еще кажется больше, чем с компиляторами, но я никогда не изучал подробно, насколько велика на самом деле разница.

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

Симулятор также прогрессирует, но это еще не для производственного использования.

STM8 поддерживает отладку через ST-Link. Вы знаете об этом проекте: https: // stm8-binutils-gdb.Sourceforge.io/ ? Поддержка OpenOCD и GDB для STM8 через ST-Link. Я еще не пробовал сам, но это звучит очень интересно.

Гунгсукма
Пн 27 ноября 2017 г., 7:31
Пожалуйста, добавьте меню или что -то в этом роде, чтобы разблокировать защищенный чип

На терминале Linux это:
Echo "00 00 ff 00 ff 00 ff 00 ff 00 ff" | xxd -r -p > factory_defaults.бин
stm8flash -c stlinkv2 -p stm8s103f3 -s opt -w factory_defaults.бин

evildave_666
Ср. 06 декабря 2017 г. 3:29 утра
Намеренно, что установка менеджера платы не может напрямую доступ к непосредственному доступу, и мне все еще приходится вручную скопировать файлы заголовка/библиотеки из библиотечных каталогов при использовании IDE или моя установка каким -то образом повреждено (что -то не совсем маловероятно, поскольку у меня есть половина дюжина других установленных ядер)?

Тенбат
Ср. 06 декабря 2017 12:31
Нет, вы не должны скопировать файлы библиотеки. Это должно просто работать - так же, как и для обычных либеров Arduino. Но это работает только для библиотек, которые изменены для использования с Sduino, поскольку большинство либеров Arduino написаны в C ++ вместо простого c.

Что именно вы пытаетесь сделать?

Тенбат
Ср. 06 декабря 2017 12:39
[Гунгсукма - Пн 27 ноября 2017 г. 7:31] - Пожалуйста, добавьте меню или что -то в этом роде, чтобы разблокировать защищенный чип
Хорошее предложение, спасибо. Я настроил запрос на функцию: https: // github.com/tenbaht/sduino/uppels/37
Я немного занят прямо сейчас, но я рассмотрю это, как только позволит время.

evildave_666
Ср. 06 декабря 2017 г. 15:38
[Тенбат - Ср. 06 декабря 2017 12:31] -
Что именно вы пытаетесь сделать?
Просто компилирование простой программы зачистки с использованием библиотеки сервопривода не удается из -за того, что не найдет сервопривод.H, если я не скопирую его и остальную часть библиотечного каталога в свой эскиз.

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

Джиммсу
Чт, 04 января 2018 г., 21:33
Я люблю эти вещи! Я купил 5 мини -досок из Гонконга, потому что это было 4 доллара.95 и мне нравится идея. Я думал, что это может быть боль, чтобы заставить их идти, или мне, возможно, придется программировать их в ассемблере или что -то в этом роде. Благодаря Тенбату, это было намного проще, чем я ожидал.

Мне потребовалось около 20 минут, чтобы выяснить, как заставить мой гаджет Stlink работать. И выяснить, какие булавки подключиться к последовательному адаптеру и как преобразовать сериал.print () для вызовов serial_print_s () занял немного больше времени. Я бы хотел, чтобы где -то было несколько образцов программ, которые я мог бы посмотреть. Они могли бы сэкономить мне некоторое время.

Мне очень нравится терпимость 5 В этих вещей. Почему у них даже есть регулятор напряжения? Я разорвал регулятор напряжения, и индикатор питания вывел один из них, чтобы я мог пнуть его в режим сохранения питания. Он все еще работает с одной батарейки 18650 или трех AAA. Это, безусловно, облегчает выяснение, как его питать.

ZMEMW16
Пт 05 января 2018 12:50
Почему бы вам не опубликовать свой код «Noddies» в фрагментах ?
Просто то, что у вас есть, поможет нам всем.
SRP

Mrburnette
Пт 05 января 2018 г. 12:56 утра
[Джиммсу - Чт, 04 января 2018 г. 9:33 вечера] - Я люблю эти вещи!
<...>
Просто любопытно, как я получал несколько ударов от Attiny85... (дешево, используется для покупки их в 25x qty.)

Я получаю 1 доллар каждая окно. цена доски, но Можете ли вы поделиться своими вариантами использования для STM8?

Синие платы STM32-бита стоят 2 или 100%
8-битный Atmega328p Mini представляет собой премию затрат на 70%*, 2x SRAM и на 100% Arduino совместим (также более высокий Isink и Isource) тоже)

* Mini Atmega328p составляет 1 доллар США.70 Qty 10x от Aliexpress)

Луча Key Features Core 16 MHz advanced STM8 core with Harvard architecture and 3-stage pipeline Extended instruction set Memories Program memory: 8 Kbyte Flash; data retention 20 years at 55 °C after 10 kcycle Data memory: 640 byte true data EEPROM; endurance 300 kcycle RAM: 1 Kbyte Clock, reset and supply management 2.95 to 5.5 V operating voltage Flexible clock control, 4 master clock sources Low power crystal resonator oscillator External clock input Internal, user-trimmable 16 MHz RC Internal low-power 128 kHz RC Clock security system with clock monitor Power management: Low-power modes (wait, active-halt, halt) Switch-off peripheral clocks individually Permanently active, low-consumption power-on and power-down reset Interrupt management Nested interrupt controller with 32 interrupts Up to 27 external interrupts on 6 vectors Timers Advanced control timer: 16-bit, 4 CAPCOM channels, 3 complementary outputs, dead-time insertion and flexible synchronization 16-bit general purpose timer, with 3 CAPCOM channels (IC, OC or PWM) 8-bit basic timer with 8-bit prescaler Auto wake-up timer Window watchdog and independent watchdog timers Communication interfaces UART with clock output for synchronous operation, SmartCard, IrDA, LIN master mode SPI interface up to 8 Mbit/s I2C interface up to 400 kbit/s Analog to digital converter (ADC) 10-bit, ±1 LSB ADC with up to 5 multiplexed channels, scan mode and analog watchdog I/Os Up to 28 I/Os on a 32-pin package including 21 high sink outputs Highly robust I/O design, immune against current injection

Тенбат
Пт, 05 января 2018 13:42
[Джиммсу - Чт, 04 января 2018 г. 9:33 вечера] - Мне потребовалось около 20 минут, чтобы выяснить, как заставить мой гаджет Stlink работать. И выяснить, какие булавки подключиться к последовательному адаптеру и как преобразовать сериал.print () для вызовов serial_print_s () занял немного больше времени. Я бы хотел, чтобы где -то было несколько образцов программ, которые я мог бы посмотреть. Они могли бы сэкономить мне некоторое время.
Я рад слышать, что этот проект немного помог вам!
Пошаговый учебник для начинающих явно был бы полезным дополнением к веб-сайту проекта. К сожалению, сейчас я довольно занят и не смогу продвигать вещи вперед до апреля или мая. Не могли бы вы подготовить свои шаги и добавить несколько полезных фотографий? Я был бы очень рад добавить его в документацию.

Маркб
Пт, 05 января 2018 г., 17:11
[Mrburnette - Пт, 05 января 2018 12:56] - Просто любопытно, как я получал несколько ударов от Attiny85... (дешево, используется для покупки их в 25x qty.)

Я получаю 1 доллар каждая окно. цена доски, но Можете ли вы поделиться своими вариантами использования для STM8?
Незначительный пункт, но для сравнения затрат на Aliexpress можно найти минимальные доски для разработки STM8S103F3P6.70 отправлено.

Поскольку абсолютно минимизация повторяющихся затрат имеет значение для производства объема, чем для электронных любителей, различные продукты на основе STM8, которые можно взломать для своих собственных целей, возможно, более убедительны, чем простые доски разработки, а некоторые доступны очень недорого.
https: // github.com/tg9541/stm8ef/wiki/s ... ne-gadgets

Например, термостат W1209 как «совет по разработке» составляет менее 2 долларов США.00 в комплекте с 3 -цифровым дисплеем, 3 кнопками, определенными пользователем, реле, датчиком NTC и программным шрифтом Stlink, выведенными на печатной плате (через отверстия слева от дисплея в этом случае).
Изображение
https: // www.eBay.com/itm/1pcs-red-w1209 ... SW8ZDAAEFF

Дешевые продукты STM8, как правило, используют устройство STM8S003F3P6, которое идентична STM8S103F3P6, за исключением меньшего количества EEPROM (128 против 640 байтов) и более низкое гарантированное количество циклов флэш -. Как и в случае с EEPROM STM32, устройства 003 на самом деле имеют больше EEPROM, чем указано чаще, чем нет.

Очевидным недостатком STM8 на уровне любителей является то, что поддержка начального уровня сильно отсутствует по сравнению с Arduino. Усилия Tenbaht по отношению к окружающей среде почти Arduino являются большим шагом в снижении этого барьера для входа. Я думаю, что Роджер упомянул, что ST работает над поддержкой Arduino для STM8. Проект EFORTH STM8 из ссылки выше также очень хорошо сделан, хотя, скорее всего, будет открыть руководство по программированию раньше, чтобы использовать периферийные устройства в этой среде. В проекте EFRTH есть работа вокруг (один (мультиплексированный в/OUT) и два SIN -программных программных серийных) для того факта, что многие из устройств на основе STM8 используют серийные выводы.

Rogerclark
Пт, 05 января 2018 г. 20:05
Я заметил, что STM8 используется как минимум в 2 устройствах, которые у меня есть.

Многое, если эти USB -ток / датчики с током / напряжением с OLED -дисплеем, похоже, используют STM8
Также у меня есть 4 -значный счетчик, установленные на панели, напряжение и ток, который также использует STM8

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

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

Поэтому я согласен с Марком, что “вариант использования” Для этих устройств, чтобы не создавать проекты с нуля с использованием этих дешевых Dev Boards, а для взлома/перепрофилирования/улучшения существующих устройств

Джиммсу
Сб 06 января 2018 г. 5:00 утра
Сонофагун! Маркб, этот контроллер температуры станет моим вторым проектом! Может, я просто куплю эту вещь. За исключением 12V, это в значительной степени то, что я хотел, с добавлением 7-сегмента считывания и кнопок и тому подобного.

Я недавно попал в приготовление пищи Sous Vide. Коммерческие устройства, которые вы можете получить в Walmart за 65 долларов, и они позволяют вам подключиться к мобильному телефону и управлять и контролировать приготовление пищи. Мне это не нужно, но я хотел попробовать это. Я вытащил свой старый горный горшок и подключил свой Arduino Uno до датчика температуры DS1B20 и доски сахарного куба, и прошел несколько тестов. Мне было интересно, какую точность температуры я мог бы получить. Я был приятно удивлен. Я думал, что мне, возможно, придется сделать какой -то алгоритм PID или гистерезис, но с простой »< Порог включается, > Порог выключить «алгоритм» он держал воду в пределах 1.5 градусов по фл. Это было достаточно хорошо для меня, поэтому я пригнал несколько стейков, сунул их в мешки Ziploc и бросил в воду. О, черт возьми! Это было почти тривиально готовить таким образом, и это был один из лучших стейков, которые я когда -либо ел. Я даже не ценитель тонкого стейка, но я продан! Мне так понравилось, что я готовил похожие вещи несколько раз в неделю в течение последних нескольких недель, и я не вижу, как в ближайшее время сокращается. Это увлекает мой arduino uno, и я хочу, чтобы он вернулся. Мне нужно выяснить, как сделать OneWire на STM8, а затем построить цепь с опто-изолятором и Triac вместо ретрансляции, и я буду хорошо идти.

Проект, над которым я сейчас работаю, - это открытый детектор двери почтового ящика. Это просто сигнализирует меня, когда приходит почтальон. В конце концов я планирую, чтобы это фактически предупредило меня через текст, Wi -Fi или что -то в этом роде, но первый этап - это просто светодиод на почтовом ящике, указанный в моем доме, который мигает после того, как почтальон пришел. Плата STM8 идеальна, потому что она будет включать аккумуляторную батарею, и провести подавляющее большинство времени в режиме низкой мощности. Я планировал использовать Arduino Pro Mini и построить схему с парой МОП -трансфер, которые будут включать меня, когда переключатель был активирован, и позволить мне включить в программное обеспечение после отправки сигнала. Но я уже разорвал регулятор напряжения, а индикатор питания вывел одну из моих плат STM8 и протестировал его, и он будет работать нормально только в режиме низкой мощности.

Рэй, я считаю, что подавляющее большинство моих проектов не нуждаются даже в 32 КБ вспышки. Я делал проекты с Attiny85s или даже Attiny13s, которые все еще используются. Я даже сделал один с Attiny9. Но я устал от того, как неудобно было писать в Ассамблере и подключить провода, чтобы загрузить программы. Я ожидаю, что с каждым новым датчиком и приводом будет какая -то кривая обучения, но, поскольку я уже обнаружил, где скрыты основные файлы, это не будет так плохо. Греп мой друг. Кстати, я также нашел пример набросок. Было бы неплохо узнать, что они существовали. И где их найти.

Джиммсу
Сб 06 января 2018 г., 5:47 утра
Тенбат, я не помню именно те шаги, через которые я должен был пройти, но я думаю, что я помню пару вещей, с которыми у меня были проблемы...

Во -первых, когда я подключил свое устройство Stlink, как -то Linux не узнал его. Я не знаю почему, потому что я связывался с этим и смотрел DMESG, и он начал работать. Я думаю, что отключение его и подключившившись назад, мая сделали это. В любом случае, мне пришлось немного связываться с этим.

Во -вторых, на странице установки была ссылка, в которой что -то сказано о программе Flash. Ссылка была сломана, но я посмотрел программу STM8FLASH, загрузил ее и все равно построила. My Arduino IDE не загружался правильно в этот момент, но он успешно создал .HEX -файл, который я смог мигать, используя программу STM8FLASH из командной строки. Я должен был использовать Sudo. Я не знал, было ли это так, как я собирался делать это все время. К счастью, в конце концов я заставил IDE, чтобы Flash, используя его копию программы STM8FLASH.

Мне пришлось связываться с IDE, чтобы заставить его вспыхнуть. Я помню, как получил странную ошибку, которую я исправил, вступив в предпочтения и не проводившись в ядре «Агрессивно скомпилированного ядра». Устройство Stlink V2 никогда не появлялось ни в каком меню, ни в чем -то еще в IDE. Это просто сработало.

Аппаратные серийные булавки - это D5 и D6. Я должен был убедиться, что у моего последовательного устройства были правильные разрешения.

Довольно легко увидеть, как использовать функции serial_begin () и serial_print_s ().час. Как только вы обнаружите, что ядра и прочее окажутся в подкатарии скрытой папки .Arduino15, который находится в ~/ каталог.

Примеры наброски находятся где -то в .Arduino15 филиал тоже. ~/.arduino15/packages/sduino/harpware/stm8/0.3.3/библиотеки/generic_examples/Примеры

Mrburnette
Сб 06 января 2018 г. 15:09
[Маркб - Пт, 05 января 2018 г., 17:11] - <...>
Различные продукты на основе STM8, которые можно взломать для своих целей, возможно, более убедительны, чем простые доски разработки, а некоторые доступны очень недорого.
https: // github.com/tg9541/stm8ef/wiki/s ... ne-gadgets
Имеет смысл с точки зрения взлома; Особенно для некоторых необычных устройств.

Луча

Тенбат
Сб 06 января 2018 г. 16:44
[Джиммсу - Сб 06 января 2018 г. 5:47] - Во -первых, когда я подключил свое устройство Stlink, как -то Linux не узнал его. Я не знаю почему, потому что я связывался с этим и смотрел DMESG, и он начал работать. Я думаю, что отключение его и подключившившись назад, мая сделали это. В любом случае, мне пришлось немного связываться с этим.

Во -вторых, на странице установки была ссылка, в которой что -то сказано о программе Flash. Ссылка была сломана, но я посмотрел программу STM8FLASH, загрузил ее и все равно построила. My Arduino IDE не загружался правильно в этот момент, но он успешно создал .HEX -файл, который я смог мигать, используя программу STM8FLASH из командной строки. Я должен был использовать Sudo. Я не знал, было ли это так, как я собирался делать это все время. К счастью, в конце концов я заставил IDE, чтобы Flash, используя его копию программы STM8FLASH.
Есть что-то в необходимых разрешениях и хорошо известной проблеме драйвера с интерфейсом ST-Link/V1 на платах STM8S-раскрытия на https: // tenbaht.GitHub.io/sduino/warmware/flashtool/ Может быть, лучшая ссылка на стартовой странице?
[Джиммсу - Сб 06 января 2018 г. 5:47] - Мне пришлось связываться с IDE, чтобы заставить его вспыхнуть. Я помню, как получил странную ошибку, которую я исправил, вступив в предпочтения и не проводившись в ядре «Агрессивно скомпилированного ядра». Устройство Stlink V2 никогда не появлялось ни в каком меню, ни в чем -то еще в IDE. Это просто сработало.
Спасибо за это отзыв! Это все проблемы, которых здесь не произойдет, потому что я уже давно его настроил. Но по причине это важно знать, что впервые пользователю. Я добавил это в свой список Todo:
  • Запись меню для устройств ST-Link находится на моем списке TODO.
  • Укажите, что вам все еще нужно предоставить разрешения вручную, даже для автоматической установки.
  • Объясните, как установить разрешения для последовательного устройства
  • Краткое руководство, упомянутое хотя бы некоторые из «методов печати», таких как print_s, print_u и т. Д.
Но пройдет некоторое время, прежде чем я смогу найти время для работы над этим.

HALMX ROADMAP.