Командная строка STM32DUINO

Krbonne
Солнце 10 апреля 2016 г. 22:11
Всем привет,


Я не знаю, было ли это спросили ранее, но есть ли простой способ использовать STM32Duino, используя инструменты простых командных строк на Linux?


Я могу быть маленькой «старой модой» в этом, но я все еще предпочитаю такие инструменты, как GVIM и просто просто "Make".


Cheerio! КР. Бонн.

Rogerclark
Солнце 10 апреля 2016 г., 11:57 вечера
Вы можете написать свой собственный файл Make

С учетом Arduino IDE заключается в том, что он каким -то образом определяет, какие исходные файлы необходимы для компиляции.

Это может просто собрать все .в, .CPP и .S файлы в ядре плюс у вас есть файл "Sketch", но я действительно не уверен.

Я знаю, что есть способ запустить сборку Arduino из командной строки (сделайте поиск в Google)

Или просто посмотрите на то, что делает IDE (в режиме Verbose), и посмотрите, какие файлы он компилирует.

Примечание. IDE копирует все источники в папку с температурой, чтобы скомпилировать их (включая ядро), так что, очевидно, вы не будете этого делать.
(Но это затрудняет выяснение, где исходные местоположения файлов, где :-( )

Mrburnette
Пн 11 апреля 2016 г. 12:06
Общий процесс: http: // Playground.Ардуино.CC/Learning/Commandline

Вам придется отрегулировать, как IDE обрабатывает STM32.

Луча

Tiger762
Вт 26 апреля 2016 г., 22:54
Ты и я оба : mrgreen:

Я был разработчиком системного программного обеспечения в течение 20 лет в телекоммуникационной индустрии и начал с VI, GCC, Make, набора инструментов RCS, GDB, TCPDUP и т. Д.

Умность Arduino IDE (и, вероятно, те, за которые нужно платить деньги), я нахожу смущает. Я постоянно преследую ошибки компиляции, потому что IDE нашел какой -то источник или включает файл, который #Defines "A1". Есть другое странное поведение, подобное оно, помня о файле, который я изменил суффикс, с ".c "to".Donotcompilethis "

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

Я собираюсь продолжить предложение, которое делает Роджер, запустить IDE в режиме Verbose и посмотреть, что он делает...
Krbonne написал: Я могу быть маленькой «старой модой» в этом, но я все еще предпочитаю такие инструменты, как GVIM и просто просто "Make".
Cheerio! КР. Бонн.

Стевех
Ср 27 апреля 2016 г., 4:32 утра
Я использовал Makefiles.
Теперь я использовал хорошие идентификаторы. IDE Arduino - смешная. Это попытка затолкнуть для вычурной толпы университетов.

Мой любимый - IAR, Keil 2nd Place, (бесплатно, если 32KB Limited), атоличный w/gcc (бесплатно), Visual Studio Community (бесплатно) с визуальным микро -микро -или визуальным GDB $ 99.

Мое собственное предпочтение: я бы никогда не вернулся к голым макияжу. Скрипты линкера достаточно!

Werecatf
Ср 27 апреля 2016 г. 8:28
Стевех написал:Теперь я использовал хорошие идентификаторы. IDE Arduino - смешная. Это попытка затолкнуть для вычурной толпы университетов.

Tiger762
Ср 27 апреля 2016 г. 11:24
Хорошо, прошлой ночью имел некоторый успех. Остался спать поздно и пошел психическим в этом : mrgreen:

Следующее предполагает, что у вас есть Arduino IDE версия 1.6.5 установлено, а также инструмент ARM.

Я начал с базового эскиза типа "Blink". Это плата STM32F103C8T6 «Минимальная разработка системы». Встроенный светодиод прикреплен к PC13. Обратите внимание, что светодиод освещается, когда PC13 низкий:
#include void setup () { pinMode (PC13, OUTPUT); } void loop () { digitalWrite (PC13, HIGH); delay (100); digitalWrite (PC13, LOW); delay (100); }

Mrburnette
Ср 27 апреля 2016 г. 12:15
Tiger762 написал:Хорошо, прошлой ночью имел некоторый успех. Остался спать поздно и пошел психическим в этом : mrgreen:
<...>

Сжимать
Ср 27 апреля 2016 г. 13:26
Вы также можете использовать Makefile отсюда:
https: // github.com/sudar/arduino-makefile

Это немного автоматизировано, не нужно включать каждый источник внутри makefile. Он использует небольшой сценарий Python, чтобы найти правильные флаги из данных платформы Arduino (он работает с AVR, STM32, ESP8266 и т. Д.)

Mrburnette
Ср 27 апреля 2016 г. 13:38
Сламмер написал:<...>
Это немного автоматизировано, <...>

Рик Кимбалл
Ср 27 апреля 2016 г. 13:44
Я использовал это в прошлом:

https: // github.com/sudar/arduino-makefile

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

-рик

[Редактировать] .. только что понял, что Сламмер уже упомянул об этом .. Извините [/Редактировать]

Сжимать
Ср 27 апреля 2016 г. 14:37
Да, ты прав.
Я протестировал с помощью STM32 и ESP8266 и работает, как рекламируется. Сначала вы должны определить, путь к каталогу Arduino (чтобы найти определение платформы и платы) и Правление....
На самом деле не делает ничего другого, чем сама среда Arduino.

«Голый металл», такой как Tiger762, часто чище и проще, но требует объявления каждого исходного файла и различных вариантов вручную, особенно если вы хотите включить также файлы либеровых. Таким образом, код полностью независим от системы Arduino.
Я строю свои программы с таким образом, либо по Makefile, либо от Codeblocks IDE (вы просто включаете в проект каждый файл, определяете параметры, и это в качестве бонуса, за исключением очень хорошего редактора, у меня есть завершение кода и просмотр символов).

Рик Кимбалл
Ср 27 апреля 2016 г. 14:49
Сламмер написал:... «Голый металл», такой как Tiger762, часто чище и проще, но требует объявления каждого исходного файла и различных вариантов вручную, особенно если вы хотите включить также файлы либеровых. ...

Сжимать
Ср 27 апреля 2016 г., 15:24
Для меня Arduino не является IDE, не является системой строительства, не является сами оборудованием, не является загрузчиком .... Arduino - это сообщество и библиотеки. Хорошо, IDE - это быстрый способ сделать что -то, проверить небольшой кусочек кода, но для реального программирования я предпочитаю голый «металлический подход», который взял как можно больше с платформы.

Martinayotte
Ср 27 апреля 2016 г. 15:31
Я думаю, что вы используете разные «формулировку» друг друга ... :?
Если вы хотите использовать «голый металл», то это означает, что вы вообще не используете библиотеки Arduino, вы бы кодировали все самостоятельно, даже основные такие, как DigitalWrite (). Другими словами, «голый металл» и «командная линия» имеют 2 разных значения ... : ugeek:

Tiger762
Ср 27 апреля 2016 г., 17:08
О, я слышу тебя. Я начал с Arduino IDE, когда я возился с Atmega328. С тех пор мое пространство разработки было фрагментировано с различными версиями одной и той же конкретной библиотеки и/или других версий библиотеки. IDE просто сбит с толку. Это не столько, что я ностальгию в середине 90-х годов (ну, я, но по другим причинам), скорее, мне нужно иметь возможность отстранить фасад и понять, что, черт возьми, происходит.

В общем, когда я привлекла более функциональность, я просто «обнаруживаю» соответствующие файлы CPP и H и добавляю их в файл Makefile. Затем добавьте объектные файлы в строку, которая создает эльф, чтобы сказать, что «зависит» от существования этих дополнительных объектов, а также сообщите линкеру решить то, что ему не хватает. В качестве примера:
tiger.elf: tiger.o new_file.o ${GCC} -o tiger.elf tiger.o new_file.o

Tiger762
Ср 27 апреля 2016 г., 17:33
Да, точно : D Все, для чего я снимал, - это иметь возможность контролировать процесс компиляции таким образом, чтобы я больше знаком.
Martinayotte написал:Я думаю, что вы используете разные «формулировку» друг друга ... :?
Если вы хотите использовать «голый металл», то это означает, что вы вообще не используете библиотеки Arduino, вы бы кодировали все самостоятельно, даже основные такие, как DigitalWrite (). Другими словами, «голый металл» и «командная линия» имеют 2 разных значения ... : ugeek:

Mrburnette
Ср 27 апреля 2016 г., 21:05
Сламмер написал:Для меня Arduino не является IDE, не является системой строительства, не является сами оборудованием, не является загрузчиком .... Arduino - это сообщество и библиотеки. Хорошо, IDE - это быстрый способ сделать что -то, проверить небольшой кусочек кода, но для реального программирования я предпочитаю голый «металлический подход», который взял как можно больше с платформы.

Rogerclark
Ср 27 апреля 2016 г., 21:25
Mrburnette написал: Я полагаю, что сущность Arduino-это основные файлы, загрузчик и сборка, компиляция, ссылка, методология загрузки, все сняты одним щелчком. Если мы оглянемся вовремя на представление Ардуино, было бы тихо, умный пакет.

Луча

Tiger762
Ср 27 апреля 2016 г., 21:25
Mrburnette написал: Если мы оглянемся вовремя на представление Ардуино, было бы тихо, умный пакет.
Луча

Сжимать
Ср 27 апреля 2016 г., 22:56
Моя первая попытка вооружения мира была до 10 лет с LPC1114 (небольшая кора-M0 с 32 КБ/8 КБ) и LPC2106 (ARM7 с 128 КБ/64 КБ)
Всегда, прежде чем я использую новый чип в профессиональном проекте, который я хочу играть с ним в свободное время, этот этап для меня - это скорее игрушка, чем настоящая работа.
В то время как я был очень опытным со многими 8 -битными микропроминками, я трачу много дней, пробуя разные инструменты, макияж, ссылки на ссылки и тонну информации, разбросанной на различных страницах по всему Интернету и руководствам, чтобы достичь слишком мало вещей.... Наконец, обе доски находятся где -то в «Короне забвения» : ugeek:
Несколько лет спустя, около 2010 года, я купил Olimexino-STM32 (улучшенный клон клена, я все еще использую его) с STM32F103RBT6, через несколько часов, используя Libmaple и среду Leaflabs-arduino, у меня была рабочая система с ЖК-экраном, UARTS , I2c и много времени для программирования приложений.
Arduino дает возможность запустить и оценить очень быстрое новое оборудование (посмотрите, сколько прорывных плат с примерами исходного кода) и программное обеспечение. Есть также блестящие библиотеки для различных проблем. Это для меня сокровище Ардуино.
В качестве процедуры строительства, после первой предварительной стадии разработки с Arduino-ide (да, «Путь с одним щелчком» очень полезен), я предпочитаю Makefile для строительства, Stlink/ISP для загрузки и моего любимого редактора для редактирования.
Как правило, для любого реального проекта, я хочу, чтобы библиотеки и источники были под каталогом проекта, это включает в себя библиотеки и ядро. Мне не нравится идея иметь ядро ​​или библиотеки в общем месте, так как обновление может тормозить вещи на старых проектах (API или/и изменения размера)

Rogerclark
Ср 27 апреля 2016 г. 11:25
Сламмер написал:Как правило, для любого реального проекта, я хочу, чтобы библиотеки и источники были под каталогом проекта, это включает в себя библиотеки и ядро. Мне не нравится идея иметь ядро ​​или библиотеки в общем месте, так как обновление может тормозить вещи на старых проектах (API или/и изменения размера)

Mrburnette
Чт 28 апреля 2016 г. 13:55
Rogerclark написал:Сламмер написал:Как правило, для любого реального проекта, я хочу, чтобы библиотеки и источники были под каталогом проекта, это включает в себя библиотеки и ядро. <...>

Кбахи
Солнце 6 мая 2018 г., 19:28
Я нашел решение, которое работает, без каких -либо дополнительных установок чего -либо из сторонних сторон.

Предполагая, что вы используете Linux, сохраните этот код в качестве Arduino-cli и сделайте его исполняемым. #!/bin/bash # Run this as: # /path/to/arduino-cli /path/to/sketch.ino # ARDUINO="$HOME/arduino/arduino" BOARD="Arduino_STM32:STM32F1:genericSTM32F103C:device_variant=STM32F103CB,upload_method=DFUUploadMethod,cpu_speed=speed_72mhz,opt=osstd" BUILD_DIR="/tmp/build" if [ "$1" = '' ]; then echo "No sketch directory/file passed. Nothing to do ..." exit 1 fi $ARDUINO \ --board "$BOARD" \ --pref "build.path=$BUILD_DIR" \ --upload $1