[Завершено] сочетание мигания & Считайте загрузку

Rogerclark
Пн 19 июня 2017 г. 1:52 утра
[Обновление администратора]

Это предложение было сделано для загрузчика, за исключением того, что эскиз не мигает, так как это потребовало бы другого бинарного эскиза для каждого загрузчика / платы. Таким образом, вместо этого он печатает сообщение для серийного






Ребята

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

Но, объединяя мигание & Ссылка графа в двоичный диапазон загрузчика, так что, когда новые пользователи загружают загрузчик, появляется плата и имеет COM -порт, который может увидеть IDE, кажется возможным решением для этого.

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


У кого -нибудь есть какие -либо мысли об этом.

Также... Я не знаю простого способа слияния двоичных файлов или шестнадцатеричных файлов. У меня есть инструмент под названием MergeHex (от Nordic Semi), но он, похоже, не работает для этого (возможно, он работает только на конкретных диапазонах адресов)

Zoomx
Пн 19 июня 2017 г., 6:06
Возможно, редактор HEX?

Rogerclark
Пн 19 июня 2017 г., 7:18
Я могу сделать это, используя инструмент Jlink Jflash, поскольку он имеет функцию слияния, но это больно делать вручную для всех файлов.

Я попробую еще раз посмотреть, смогу ли я сделать утилиту MergeHex от Nordic

Даниэфф
Пн 19 июня 2017 г., 7:54 утра
Но разве это не просто добавляет одно к другому? Я знаю, что вы используете Windows, но: cat bootloader.bin > bootloader_plus_blink.bin truncate -s8192 bootloader_plus_blink.bin cat blink.bin >> bootloader_plus_blink.bin

Стивестронг
Пн 19 июня 2017 г. 9:15 утра
Я использую HXD: https: // mh-nexus.de/en/hxd/
Он поддерживает среди многих интересных функций, расщепления или объединения файлов тоже.

Rogerclark
Пн 19 июня 2017 г. 10:35 утра
[Даниэфф - Пн 19 июня 2017 г., 7:54 утра] - Но разве это не просто добавляет одно к другому? Я знаю, что вы используете Windows, но: cat bootloader.bin > bootloader_plus_blink.bin truncate -s8192 bootloader_plus_blink.bin cat blink.bin >> bootloader_plus_blink.bin

Rogerclark
Пн 19 июня 2017 г. 10:36 утра
[Стивестронг - Пн 19 июня 2017 г. 9:15] - Я использую HXD: https: // mh-nexus.de/en/hxd/
Он поддерживает среди многих интересных функций, расщепления или объединения файлов тоже.
Спасибо

Я надеялся найти что -то, что я мог бы запустить из файла летучей мыши Windows

Даниэфф
Пн 19 июня 2017 г. 10:39
[Rogerclark - Пн 19 июня 2017 г. 10:35] -
[Даниэфф - Пн 19 июня 2017 г., 7:54 утра] - Но разве это не просто добавляет одно к другому? Я знаю, что вы используете Windows, но: cat bootloader.bin > bootloader_plus_blink.bin truncate -s8192 bootloader_plus_blink.bin cat blink.bin >> bootloader_plus_blink.bin

Rogerclark
Пн 19 июня 2017 г. 10:41
[Даниэфф - Пн 19 июня 2017 г. 10:39] -
[Rogerclark - Пн 19 июня 2017 г. 10:35] -
[Даниэфф - Пн 19 июня 2017 г., 7:54 утра] - Но разве это не просто добавляет одно к другому? Я знаю, что вы используете Windows, но: cat bootloader.bin > bootloader_plus_blink.bin truncate -s8192 bootloader_plus_blink.bin cat blink.bin >> bootloader_plus_blink.bin

Стивестронг
Пн 19 июня 2017 г., 11:42
Для вашей ориентации, вот шестнадцатеричный редактор командной строки, с исходным кодом:
https: // sourceforge.net/projects/hexciting/

Zoomx
Пн 19 июня 2017 г. 14:10
[Rogerclark - Пн 19 июня 2017 г. 10:41] - Я посмотрю, есть ли у Windows есть это

Редактировать.

Нет. У него нет этой команды.
Я считаю, что на Cygwin он будет работать, так как у него есть команды кошки и усечения.

Rogerclark
Пн 19 июня 2017 г. 22:20
У меня есть Cygwin, но это большой пакет для других людей, чтобы установить только для объединения файлов

Я написал какой -нибудь код, чтобы сделать это, но я еще не тестировал его.

Пожалуйста, скажите мне, если вы видите какие -либо ошибки

Примечание. Моему компилятору не понравился тип unit8_t, поэтому я объявил буфер как void *, и я не уверен, что это будет работать.

Мне нужно выяснить, где определяется unit8_t,

#include #include int main(int argc, char **argv) { FILE *fpBootloader; FILE *fpSketch; FILE *fpOutput; int sketchSize; int bootloaderSize; void *buf; const int SKETCH_OFFSET = 0x2000; if (argc!=3) { printf("mergebin bootloader.bin sketch.bin output.bin\nNote. The sketch start address is presumed to be 0x2000 from the start of the binary file\n"); return -1; } fpBootloader = fopen (argv[1], "r"); if (fpBootloader==NULL) { printf("Unable to open bootloader binary file %s\n",argv[1]); return -2; } fpSketch = fopen (argv[2], "r"); if (fpSketch==NULL) { fclose(fpBootloader); printf("Unable to open sketch binary file %s\n",argv[2]); return -2; } fpOutput = fopen (argv[3], "w"); if (fpSketch==NULL) { fclose(fpBootloader); fclose(fpSketch); printf("Unable to open output file %s for writing \n",argv[3]); return -2; } fseek(fpSketch, 0, SEEK_END); // seek to send of sketch to determine its length sketchSize = ftell (fpSketch); fseek(fpSketch, 0, SEEK_SET); // go back to start, so we can read from the beginning buf=malloc(sketchSize + SKETCH_OFFSET); if (buf==NULL) { fclose(fpBootloader); fclose(fpSketch); fclose(fpOutput); printf("Unable to open allocate memoery\n"); return -3; } fseek(fpBootloader, 0, SEEK_END); // seek to send of bootloader to determine its length bootloaderSize = ftell (fpBootloader); fseek(fpBootloader, 0, SEEK_SET); // go back to start, so we can read from the beginning fread(buf,bootloaderSize,1,fpBootloader); fclose(fpBootloader); fread(buf + SKETCH_OFFSET,sketchSize,1,fpSketch); fclose(fpSketch); fwrite(buf,sketchSize+SKETCH_OFFSET,1,fpOutput); fclose(fpOutput); return 0; }

Рик Кимбалл
Пн 19 июня 2017 г. 11:04
Почему не сценарий, который просто загружает загрузчик на 0x8000000, а затем загружает мигание на 0x8000000+8192. Два шага вместо одного

Rogerclark
Пн 19 июня 2017 г. 11:06 вечера
[Рик Кимбалл - Пн 19 июня 2017 г. 11:04 вечера] - Почему не сценарий, который просто загружает загрузчик на 0x8000000, а затем загружает мигание на 0x8000000+8192. Два шага вместо одного
Зависит от того, как люди загружают файл.

Многие люди используют инструмент GUI Windows Windows

Я просто должен сделать это идиотское доказательство как можно больше для всех платформ

Rogerclark
Пн 19 июня 2017 г. 11:09
КСТАТИ.

Если у меня будет время, я сделаю утилиту общего назначения

эн.глин. Mergebin In1, Offset1, In2, Offset2, In3, Offset3, Out

Rogerclark
Пн 19 июня 2017 г., 11:25 вечера
Ммм.

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

мммм. Больше осложнений.

Если в загрузчике есть место, я могу просто положить строку CONST, которая имеет идентификацию в нем, а также использовать его для чтения контакта светодиода

Rogerclark
Вт 20 июня 2017 г. 12:10
Были некоторые ошибки в моей первой попытке. Я не установил режим бинарного чтения (DOH)!


Но я думаю, что это работает сейчас, и вот комбинированный бинарный (прикрепленный)

Я не уверен, является ли код кросс -платформ (и я хотел бы сделать его общей целью, если у меня будет время)

Примечание. Этот код не является эскизом, его необходимо собирать в Windows с помощью GCC или аналогичного.
Я использовал код :: блоки
#include #include #include int main(int argc, char **argv) { FILE *fpBootloader; FILE *fpSketch; FILE *fpOutput; int sketchSize; int bootloaderSize; uint8_t *buf; const int SKETCH_OFFSET = 0x2000; if (argc!=4) { printf("\nUsage. mergebin bootloader.bin sketch.bin output.bin - Incorrect number of args\n\n"); return -1; } fpBootloader = fopen (argv[1], "rb"); if (fpBootloader==NULL) { printf("Unable to open bootloader binary file %s\n",argv[1]); return -2; } fseek(fpBootloader, 0, SEEK_END); // seek to send of bootloader to determine its length bootloaderSize = ftell (fpBootloader); fseek(fpBootloader, 0, SEEK_SET); // go back to start, so we can read from the beginning printf("Opened bootloader file %s : size is %d\n",argv[1],bootloaderSize); fpSketch = fopen (argv[2], "rb"); if (fpSketch==NULL) { fclose(fpBootloader); printf("Unable to open sketch binary file %s\n",argv[2]); return -2; } fseek(fpSketch, 0, SEEK_END); // seek to send of sketch to determine its length sketchSize = ftell (fpSketch); fseek(fpSketch, 0, SEEK_SET); // go back to start, so we can read from the beginning printf("Opened sketch file %s : size is %d\n",argv[2],sketchSize); buf=malloc(sketchSize + SKETCH_OFFSET); if (buf==NULL) { fclose(fpBootloader); fclose(fpSketch); printf("Unable to open allocate memory\n"); return -3; } printf("Allocated %d bytes for buffer\n",sketchSize + SKETCH_OFFSET); fread(buf,bootloaderSize,1,fpBootloader); fclose(fpBootloader); fread(buf + SKETCH_OFFSET,sketchSize,1,fpSketch); fclose(fpSketch); fpOutput = fopen (argv[3], "wb"); if (fpOutput==NULL) { fclose(fpBootloader); fclose(fpSketch); printf("Unable to open output file %s for writing \n",argv[3]); return -2; } fwrite(buf,sketchSize+SKETCH_OFFSET,1,fpOutput); fclose(fpOutput); printf("Wrote combined file to %s \n",argv[3]); return 0; }

Rogerclark
Вт 20 июня 2017 г., 7:11 утра
Я отказался от идеи сделать эскиз частью комбинированного загрузчика, мигает светодиод. Потому что мне нужны отдельные наброски для каждой платы.


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

Ахулл
Вт 20 июня 2017 г. 11:29
Не могли бы вы указать два контакта для кнопки и светодиод в сценарии Make для загрузчика и Blink, создавая загрузчик, тогда становится чем -то вроде.

mkbootloader button_pin LED_PIN, который вызывает подпрограммы для составления загрузчика и мигания, а затем объединяет их в один .Файл корзины?

Это устранит необходимость поддерживать целую кучу предварительно скомпилированных загрузчиков в первую очередь. На самом деле вы могли бы сделать эту идею дальше на один этап и добавить таблицу поиска для общих плат, так что что -то вроде Mkbootloader blue_pill или mkbootloader maple_mini

Rogerclark
Вт 20 июня 2017 г. 12:00 вечера
Привет, Энди

Я не уверен, что вы имеете в виду в.

У меня уже есть Makefile, который может построить все цели, хотя я недостаточно знаю о Makefiles, чтобы «делать все» делает все загрузчики

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

Я думаю, что легче просто иметь предварительно скомпилированный пробел.корзин для всех общих плат (не Maple Mini и т. Д.), А затем заставьте MakeFile для объединения.

Но, к сожалению, я не очень хорош в написании Makefiles.

Ахулл
Вт 20 июня 2017 12:25
Я использовал Makebootloader в общем смысле, а не в создании файла, но я думаю, что мы могли бы использовать способности сделать что -то вроде

Сделайте загрузчик клен
или
Сделайте Bootloader BluePill
или
Сделать Bootlader PB1 PC13
или
Сделать загрузчик $ кнопка $

РЕДАКТИРОВАТЬ:
На самом деле производить использование синтаксиса
Сделайте Target foo = bar, так что приведенные выше примеры могут быть

Make Bootloader Board = Bluepill | Maple | Uglyboard и т. Д

или

Сделать кнопку загрузчика = PB1 LED = PC13

.. и так далее ...

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

https: // Stackoverflow.COM/Вопросы/282 ... ne-to-make

Первоначально я предполагал, что сценарий или программа, которая при вызове с правильными параметрами генерирует подходящий Boot+Blink в совокупности .корзина на основе деталей, которые он был передан. Однако получение работы для работы осла может быть более портативным решением, так как автономный сценарий не будет агностиком ОС, и предположительно, предположительно (по большей части).

Рик Кимбалл
Вт 20 июня 2017 12:29
Если весь смысл состоит в том, чтобы сделать USB -сериал, почему бы не пропустить мигание?

Ахулл
Вт 20 июня 2017 12:35
Насколько я понимаю, идея состоит в том, чтобы включить миган.

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

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

Затем это удалило кучу сомнений и вопросов NOOB.

Rogerclark
Вт 20 июня 2017 12:37
[Рик Кимбалл - Вт 20 июня 2017 г. 12:29 вечера] - Если весь смысл состоит в том, чтобы сделать USB -сериал, почему бы не пропустить мигание?
Да.

Вот в заключение я пришел к.

Я только что собрал пустой набросок, чтобы получить серийный USB, чтобы появиться

Затем запустил мою утилиту, чтобы объединить generic_boot20_pc13.корзин с пустым.Ино.generic_stm32f103c.бин

Все, что мне нужно сделать, это добавить что -то в Makefile, чтобы он запустил утилиту Mergebin после составления корзины Bootloader Bin

Рик Кимбалл
Вт 20 июня 2017 г. 13:05
Как насчет извержения информации о сборке о загрузке на серийном выходе?

Что -то вроде:

"Успех! Версия загрузчика Blah и Blah установлены."
Тогда, возможно, выбросьте информацию об используемых светодиодах и используемых кнопках? И короткое руководство о том, как использовать все функции.

Ахулл
Вт 20 июня 2017 г. 13:30
[Рик Кимбалл - Вт 20 июня 2017 г. 13:05] - Как насчет извержения информации о сборке о загрузке на серийном выходе?

Что -то вроде:

"Успех! Версия загрузчика Blah и Blah установлены."
Тогда, возможно, выбросьте информацию об используемых светодиодах и используемых кнопках? И короткое руководство о том, как использовать все функции.
Хороший ход, учебник может быть просто ссылкой на соответствующую страницу вики.

Стивестронг
Вт 20 июня 2017 г. 14:07
Возвращаясь к разделению/слиянию и другим вещам, я нашел этот пакет утилит GNU для Windows, это может быть удобно для кого -то:
http: // unxutils.Sourceforge.сеть/

Rogerclark
Вт 20 июня 2017 г. 22:24
[Рик Кимбалл - Вт 20 июня 2017 г. 13:05] - Как насчет извержения информации о сборке о загрузке на серийном выходе?

Что -то вроде:

"Успех! Версия загрузчика Blah и Blah установлены."
Тогда, возможно, выбросьте информацию об используемых светодиодах и используемых кнопках? И короткое руководство о том, как использовать все функции.

Это то, что я тоже рассмотрел.

Я изначально сделал мгновение & Считайте эскиз,. Поместите какой -то другой текст.

Но я согласен, наличие абзаца текста, который он неоднократно отправляет один раз за секунду - хорошая идея

Zoomx
Ср 21 июня 2017 г. 7:39
Классический «Быстрый коричневый лиса перепрыгивает через ленивую собаку» или «Lorem Ipsum Dolor Sit Amet Cescetur Adipiscing Elit», которая кажется латинской, но ничего не значит....
Или таблица ASCII.
Или идентификация и версия загрузчика.

Rogerclark
Ср 21 июня 2017 г., 7:56 утра
[Zoomx - Ср 21 июня 2017 г. 7:39] -
Или идентификация и версия загрузчика.
Я подумал об этом, но мне нужно поместить несколько магических номеров в источник загрузчика, чтобы эскиз мог искать и найти версию и т. Д

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

victor_pv
SAT 24 июня 2017 г. 9:15 вечера
Я думаю, что это может быть легче:
1.- Возьмите Maple Mini и протрите его.
2.-Загрузить загрузчик.
3.-Загрузите мигание или любой пример наброска.
4.-Загрузите Flash до конца фактического кода со ST-Link, и у вас есть объединенная мусорная корзина, которая может быть загружена.

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

Rogerclark
SAT 24 июня 2017 г. 22:54
Привет, Виктор

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

Но я уже сделал Exe, чтобы объединить двоичные файлы.

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

Я постараюсь написать немного текста, который будет отображаться часть эскиза на 1 -секундной цикле

AG123
Солнце 25 июня 2017 г., 7:58 утра
До сих пор я вполне доволен только загрузчиком «RAW», на самом деле после того, как я установил загрузчик, я намеренно нулевой разоблачивает блоки Flash после 0x8002000
Если я правильно помню, это оставляет его в режиме «вечного» загрузки, ожидая установки эскиза
В любом случае «вечный режим» сохраняет светодиод
Тогда необходимо установить эскиз, скажем, из Arduino IDE или через DFU-UTIL
Для новых пользователей это, вероятно, должно быть первой вещей, которую им нужно учиться - для компиляции и установления миганистого эскиза
что также даст им USB-сериал
всего 2 цента

Rogerclark
Солнце 25 июня 2017 г. 10:43
[AG123 - Солнце 25 июня 2017 г. 7:58] - До сих пор я вполне доволен только загрузчиком «RAW», на самом деле после того, как я установил загрузчик, я намеренно нулевой отброс вспышки после 0x8002000
Если я правильно помню, это оставляет его в режиме «вечного» загрузки, ожидая установки эскиза
В любом случае «вечный режим» сохраняет светодиод
Тогда необходимо установить эскиз, скажем, из Arduino IDE или через DFU-UTIL
Для новых пользователей это, вероятно, должно быть первой вещей, которую им нужно учиться - для компиляции и установления миганистого эскиза
что также даст им USB-сериал
всего 2 цента
Зависит от того, как люди его устанавливают, вполне возможно, что у BP уже есть бинар.

Bootloader просто ищет волшебный номер (я думаю, он ищет адрес или его часть в начале сегмента кода эскиза).
Это маловероятно, но не невозможно, чтобы он обнаружил что -то еще как действительный набросок и прыгнуть к нему, а затем сбой

Rogerclark
Сб 22 июля 2017 г., 4:36 утра
Ребята.

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

Видеть

https: // github.com/rogerclarkmelbourne/ ... erged_bins

Я сделал простой набросок, который распечатывает сообщение
Поздравляю, вы установили загрузчик STM32Duino Bootloader
Для получения дополнительной информации об Arduino на STM32
Видеть https: // github.com/rogerclarkmelbourne/ ... загрузчик
и http: // www.STM32duino.компонент
Я проверил это на синей таблетке, и это отлично работает.

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

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



КСТАТИ. Я не могу вспомнить, имеют ли другие более крупные кленовые доски, есть различное оборудование отключения от Maple Mini, и в этом случае мне нужен другой эскиз для них, что не то, что я сделал в данный момент.

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

Mrburnette
Солнце 23 июля 2017 г. 15:00
[Rogerclark - Пн 19 июня 2017 г. 1:52] - Ребята

Проблема, которую мы переживаем снова и снова, заключается в том, что люди ожидают получить последовательное устройство, когда они сначала загружают загрузчик
<...>

История


Давным-давно форум был оказался от очень долгого Arduino.CC Thread от группы продвинутых пользователей Arduino; Указанная цель этого нового сайта - дать знающим пользователям UC ядро, совместимое с IDE 1.5x для поддержки STM32F103XX MAPLE MINI Недорогие китайские доски от Baite. Сказал, что Core был взломом от заброшенных усилий Leaflabs Core.

Идея состоит в том, что плата STM32F103 даст предыдущим пользователям AVR Arduino дешевое решение для расширения производительности и запасного руля, сохраняя при этом, как у Arduino'ish. В то время участники согласились с тем, что форум будет обращаться к продвинутым пользователям, поскольку 8-битный официальный официальный форум AVR Arduino был укомплектован и модерирован для новичков.

ИМО:

Новички должны начать с 8-битного Arduino Uno и изучать основные терминологии и процедуры и возможности и ограничения. Когда они познакомились с основы языка Arduino, загрузчиков, сериала, I2C, SPI и основной электроники, тогда у них есть основание для перемещения экосистемы и продуктивности с платами STM32F1XX.

Время перемещения от 8-битного Arduino к 32-битному STM32 будет зависеть от человека; Но с таким большим количеством интернет -материалов, доступного для Arduino atmega328p, сроки могут быть столь же короткими, как несколько недель отпуска. Соедините в некоторых проршенных видео на YouTube на Arduino и C/C ++, как это реализовано в экосистеме Arduino, и многие люди могут пролить ручку новичка через несколько месяцев. (Студенты на 300-400 или продвинутых классах, вероятно, имеют официальные классы, которые предоставляют необходимые основополагающие предпосылки.)

Я не думаю, что если мы предоставим истинную услугу, делая вещи надежными и дружелюбными для начинающих. У Роджера есть несколько отличных видео на YouTube, и есть вики, которая учитывается гораздо больше, чем коммерческий Maple Mini Product of Leaf Labs.

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

Мнение по Луча

AG123
Пн 24 июля 2017 г., 7:56 утра
У меня на самом деле не было AVR, я начал связываться с MCU в STM32 & очень счастлив таким, :ржу не могу:
Я думаю, что STM32F1 на самом деле является хорошим MCU, чтобы начать работу богатым, но начальная довольно крутая кривая обучения. Первоначальные дураки, казалось, что, как правило, связываются с этими кнопками «вечной загрузки» с Maple Mini и, возможно, устанавливают сам загрузчик для Bluepill

Для тех, кто действительно является «новичками» в мире MCU или даже STM32, они, вероятно, должны начать с Maple Mini, который имеет загрузчик, предварительно установленный поставщиком. Это, по -видимому, дело для досок Maple Mini от Baite & Олимекс. https: // www.Олимекс.com/products/duino/s ... E-Hardware. Я на самом деле начал с доски Olimex, которая находится на несколько премиум -класса против дешевой китайской MM и BP. Правление Olimex по -прежнему является хорошим значением, так как это STM32F103RB и что он соответствует заголовкам Arduino Uno, что делает его пригодным для использования с помощью щитов и упакована в дополнение к слоту для карт USD, отдельным LDO для аналога & Digital, на борту Lipo Charger

Но предварительно установленный загрузочный погрузчик означает, что я на самом деле начал без ST-Link, FT232 USB-сериал и т. Д., Я начал прямо устанавливая мигающий набросок через USB с оригинальным загрузчиком Maple, установленным Olimex. Я предполагаю, что это в значительной степени сократило первоначальную кривую обучения.
& Из всех вещей, которые я на самом деле использовал «Древний» *Maple IDE *, простой беззаботный, маленький след, работает прямо из коробки на Maple Mini & Правление Олимекс
:ржу не могу:

HALMX ROADMAP.