Компиляция скетча / прошивка платы из .bat-файла

Тема в разделе "Arduino & Shields", создана пользователем Vovka, 2 фев 2019.

  1. Vovka

    Vovka Гик

    Arduino Pro Mini + переходник на CH340
    Подскажите, какая нужна командная строка чтоб сделать подобное?
     
  2. Asper Daffy

    Asper Daffy Иксперд

    Вовка, запусти IDE и поставь в ней опции "подробный вывод" для компиляции и прошивки - все командные строки будут показаны в окне сообщений. Там и посмотришь чего надо.
     
    Andrey12 нравится это.
  3. Airbus

    Airbus Радиохулиган Модератор

    Гадость эта Про мини.Не шьется даже через переходник.Делал так из УНЫ выковыривал чип.Подсодинял RX TX GND Reset на плате УНО с одноименными проводами на Про Мини и шил обычным методом.Больше никак.
     
  4. KindMan

    KindMan Гуру

    Кучу использовал мини, шил через переходник на cp2102 через конденсатор DTR соединить с ресетом и всё нормуль. Какие могут быть проблемы?
     
  5. Vovka

    Vovka Гик

    если б было все так просто... куча команд...
    тут что-то среда делает для компилятора: пока запущена среда, то скомпилировать получается, а если из нее выйти, то сразу ошибка:
    0\\core\\USBCore.cpp.d: No such file or directory

    Вопрос читал?
    Кстати, через переходник шьется без проблем!
     
  6. KindMan

    KindMan Гуру

    Arduino builder только слышал
     
  7. Vovka

    Vovka Гик

    не понял
     
  8. KindMan

    KindMan Гуру

  9. Asper Daffy

    Asper Daffy Иксперд

    Везде пишут про 104 конденсатор, но у меня его как-то не хватило. Не знаю,почему, Посмотрел осциллографом, поставил 224 и всё взлетело.
     
  10. Asper Daffy

    Asper Daffy Иксперд

    Всё там просто. А в куче надо разобраться.
     
    DetSimen нравится это.
  11. Airbus

    Airbus Радиохулиган Модератор

    Что за bat файл?
    Раньше получалось.Даже без него если вовремя нажать ресет.Сейчас пришли 4 платы так они ни на что не реагируют.Уже хотел прошивать по SPI.
     
  12. Vovka

    Vovka Гик

  13. Vovka

    Vovka Гик

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

    parovoZZ Гуру

    У меня шьётся всё без проблем прямо из студии. Может, водовки?
     
  15. Airbus

    Airbus Радиохулиган Модератор

    Завтра.Прям из студии НЕХ файл не актуально мне нужно было из IDE.Но выход нашел.А Про мини больше брать не буду.Уж лучше на голой Меге8.Да и дешевле.
     
  16. Собираю и загружаю ардуиной (не билдером, ардуина сама его вызовет) командной строкой arduino --verify/--upload, устанавливаю опции и более ничего. Подробно о командной строке тут. Ардуино с окнами запускаю только чтоб только опции для выбранной платы подсмотреть. После пользуюсь эклипсом и собираю и гружу из него.
    Например: выбираем проМини/атмега328/3.3В-8МГц, выполняем "Проверить", в подробном выводе видим
    Код (Text):
    /opt/arduino-1.8.8/arduino-builder -dump-prefs -logger=machine -hardware /opt/arduino-1.8.8/hardware -hardware /home/alex/Arduino/hardware -tools /opt/arduino-1.8.8/tools-builder -tools /opt/arduino-1.8.8/hardware/tools/avr -built-in-libraries /opt/arduino-1.8.8/libraries -libraries /home/alex/Arduino/libraries -fqbn=arduino:avr:pro:cpu=8MHzatmega328 -ide-version=10808 -build-path /tmp/arduino_build_862184 -warnings=none -build-cache /tmp/arduino_cache_537654 -prefs=build.warn_data_percentage=75 -prefs=runtime.tools.avrdude.path=/opt/arduino-1.8.8/hardware/tools/avr -prefs=runtime.tools.avrdude-6.3.0-arduino14.path=/opt/arduino-1.8.8/hardware/tools/avr -prefs=runtime.tools.avr-gcc.path=/opt/arduino-1.8.8/hardware/tools/avr -prefs=runtime.tools.avr-gcc-5.4.0-atmel3.6.1-arduino2.path=/opt/arduino-1.8.8/hardware/tools/avr -prefs=runtime.tools.arduinoOTA.path=/opt/arduino-1.8.8/hardware/tools/avr -prefs=runtime.tools.arduinoOTA-1.2.1.path=/opt/arduino-1.8.8/hardware/tools/avr -verbose /tmp/untitled1047927132.tmp/sketch_feb02a/sketch_feb02a.ino
    ...
     
    нас интересует ключ -fqbn, его значение и будем использовать для опции --board, командная строка получится
    Код (Text):

    /opt/arduino-1.8.8/arduino --verify --verbose-build --pref build.path=/tmp/my_sketch_build --board arduino:avr:pro:cpu=8MHzatmega328 /tmp/sketch_feb02a/sketch_feb02a.ino
     
    я дополнительно добавил опцию build.path=/tmp/my_sketch_build чтоб собранный хекс ардуина не удалила его после проверки.
    Код (Text):

    alex@hp-envy13:/tmp/sketch_feb02a$ /opt/arduino-1.8.8/arduino --verify --verbose-build --pref build.path=/tmp/my_sketch_build --board arduino:avr:pro:cpu=8MHzatmega328 /tmp/sketch_feb02a/sketch_feb02a.ino
    Picked up JAVA_TOOL_OPTIONS:
    Загрузка конфигурации...
    Инициализация пакетов...
    Подготовка плат...
    Проверка...
    /opt/arduino-1.8.8/arduino-builder -dump-prefs -logger=machine -hardware /opt/arduino-1.8.8/hardware -hardware /home/alex/Arduino/hardware -tools /opt/arduino-1.8.8/tools-builder -tools /opt/arduino-1.8.8/hardware/tools/avr -built-in-libraries /opt/arduino-1.8.8/libraries -libraries /home/alex/Arduino/libraries -fqbn=arduino:avr:pro:cpu=8MHzatmega328 -ide-version=10808 -build-path /tmp/my_sketch_build -warnings=none -build-cache /tmp/arduino_cache_287962 -prefs=build.path=/tmp/my_sketch_build -prefs=build.warn_data_percentage=75 -prefs=runtime.tools.avrdude.path=/opt/arduino-1.8.8/hardware/tools/avr -prefs=runtime.tools.avrdude-6.3.0-arduino14.path=/opt/arduino-1.8.8/hardware/tools/avr -prefs=runtime.tools.avr-gcc.path=/opt/arduino-1.8.8/hardware/tools/avr -prefs=runtime.tools.avr-gcc-5.4.0-atmel3.6.1-arduino2.path=/opt/arduino-1.8.8/hardware/tools/avr -prefs=runtime.tools.arduinoOTA.path=/opt/arduino-1.8.8/hardware/tools/avr -prefs=runtime.tools.arduinoOTA-1.2.1.path=/opt/arduino-1.8.8/hardware/tools/avr -verbose /tmp/sketch_feb02a/sketch_feb02a.ino
    /opt/arduino-1.8.8/arduino-builder -compile -logger=machine -hardware /opt/arduino-1.8.8/hardware -hardware /home/alex/Arduino/hardware -tools /opt/arduino-1.8.8/tools-builder -tools /opt/arduino-1.8.8/hardware/tools/avr -built-in-libraries /opt/arduino-1.8.8/libraries -libraries /home/alex/Arduino/libraries -fqbn=arduino:avr:pro:cpu=8MHzatmega328 -ide-version=10808 -build-path /tmp/my_sketch_build -warnings=none -build-cache /tmp/arduino_cache_287962 -prefs=build.path=/tmp/my_sketch_build -prefs=build.warn_data_percentage=75 -prefs=runtime.tools.avrdude.path=/opt/arduino-1.8.8/hardware/tools/avr -prefs=runtime.tools.avrdude-6.3.0-arduino14.path=/opt/arduino-1.8.8/hardware/tools/avr -prefs=runtime.tools.avr-gcc.path=/opt/arduino-1.8.8/hardware/tools/avr -prefs=runtime.tools.avr-gcc-5.4.0-atmel3.6.1-arduino2.path=/opt/arduino-1.8.8/hardware/tools/avr -prefs=runtime.tools.arduinoOTA.path=/opt/arduino-1.8.8/hardware/tools/avr -prefs=runtime.tools.arduinoOTA-1.2.1.path=/opt/arduino-1.8.8/hardware/tools/avr -verbose /tmp/sketch_feb02a/sketch_feb02a.ino
    Using board 'pro' from platform in folder: /opt/arduino-1.8.8/hardware/arduino/avr
    Using core 'arduino' from platform in folder: /opt/arduino-1.8.8/hardware/arduino/avr
    Detecting libraries used...
    /opt/arduino-1.8.8/hardware/tools/avr/bin/avr-g++ -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=8000000L -DARDUINO=10808 -DARDUINO_AVR_PRO -DARDUINO_ARCH_AVR -I/opt/arduino-1.8.8/hardware/arduino/avr/cores/arduino -I/opt/arduino-1.8.8/hardware/arduino/avr/variants/eightanaloginputs /tmp/my_sketch_build/sketch/sketch_feb02a.ino.cpp -o /dev/null
    Generating function prototypes...
    /opt/arduino-1.8.8/hardware/tools/avr/bin/avr-g++ -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=8000000L -DARDUINO=10808 -DARDUINO_AVR_PRO -DARDUINO_ARCH_AVR -I/opt/arduino-1.8.8/hardware/arduino/avr/cores/arduino -I/opt/arduino-1.8.8/hardware/arduino/avr/variants/eightanaloginputs /tmp/my_sketch_build/sketch/sketch_feb02a.ino.cpp -o /tmp/my_sketch_build/preproc/ctags_target_for_gcc_minus_e.cpp
    /opt/arduino-1.8.8/tools-builder/ctags/5.8-arduino11/ctags -u --language-force=c++ -f - --c++-kinds=svpf --fields=KSTtzns --line-directives /tmp/my_sketch_build/preproc/ctags_target_for_gcc_minus_e.cpp
    Компиляция скетча...
    /opt/arduino-1.8.8/hardware/tools/avr/bin/avr-g++ -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -MMD -flto -mmcu=atmega328p -DF_CPU=8000000L -DARDUINO=10808 -DARDUINO_AVR_PRO -DARDUINO_ARCH_AVR -I/opt/arduino-1.8.8/hardware/arduino/avr/cores/arduino -I/opt/arduino-1.8.8/hardware/arduino/avr/variants/eightanaloginputs /tmp/my_sketch_build/sketch/sketch_feb02a.ino.cpp -o /tmp/my_sketch_build/sketch/sketch_feb02a.ino.cpp.o
    Compiling libraries...
    Compiling core...
    /opt/arduino-1.8.8/hardware/tools/avr/bin/avr-gcc -c -g -x assembler-with-cpp -flto -MMD -mmcu=atmega328p -DF_CPU=8000000L -DARDUINO=10808 -DARDUINO_AVR_PRO -DARDUINO_ARCH_AVR -I/opt/arduino-1.8.8/hardware/arduino/avr/cores/arduino -I/opt/arduino-1.8.8/hardware/arduino/avr/variants/eightanaloginputs /opt/arduino-1.8.8/hardware/arduino/avr/cores
    ...
    Архивирование откомпилированного ядра (кэширование) в: /tmp/arduino_cache_287962/core/core_arduino_avr_pro_cpu_8MHzatmega328_411693c40cfa1c66fd99e64541b107ac.a
    Linking everything together...
    /opt/arduino-1.8.8/hardware/tools/avr/bin/avr-gcc -w -Os -g -flto -fuse-linker-plugin -Wl,--gc-sections -mmcu=atmega328p -o /tmp/my_sketch_build/sketch_feb02a.ino.elf /tmp/my_sketch_build/sketch/sketch_feb02a.ino.cpp.o /tmp/my_sketch_build/core/core.a -L/tmp/my_sketch_build -lm
    /opt/arduino-1.8.8/hardware/tools/avr/bin/avr-objcopy -O ihex -j .eeprom --set-section-flags=.eeprom=alloc,load --no-change-warnings --change-section-lma .eeprom=0 /tmp/my_sketch_build/sketch_feb02a.ino.elf /tmp/my_sketch_build/sketch_feb02a.ino.eep
    /opt/arduino-1.8.8/hardware/tools/avr/bin/avr-objcopy -O ihex -R .eeprom /tmp/my_sketch_build/sketch_feb02a.ino.elf /tmp/my_sketch_build/sketch_feb02a.ino.hex
    /opt/arduino-1.8.8/hardware/tools/avr/bin/avr-size -A /tmp/my_sketch_build/sketch_feb02a.ino.elf
    Скетч использует 444 байт (1%) памяти устройства. Всего доступно 30720 байт.
    Глобальные переменные используют 9 байт (0%) динамической памяти, оставляя 2039 байт для локальных переменных. Максимум: 2048 байт.
     
     
    Vovka нравится это.
  17. Airbus

    Airbus Радиохулиган Модератор

    А!танцы с бубном?Привет от Ms-Dos из 90х?
     
    parovoZZ нравится это.
  18. Это вы о чем?
     
  19. Vovka

    Vovka Гик

    Ага, вот где собака порылась... :D

    Т.е. получается еще проще: один раз откомпилировал в IDE, а потом этой командой:
    Compile and upload a sketch using the last selected board and serial port
    arduino --upload /path/to/sketch/sketch.ino

    Осталось теперь в Visual C++ прикрутить компиляцию...
     
    Последнее редактирование модератором: 2 фев 2019
  20. Vovka

    Vovka Гик

    Единственное, так ключи --verbose-build --verbose-upload не работают: ничего не выводится!
    Если.bat-файл запускаю, то он запускает IDE и сразу же завершает свою работу, а IDE компилирует, программирует! В Visual C++ в окне компиляции появляется строчка запуска компиляции и висит заставка IDE на период компиляции и прошивки. Все, больше ничего не выводится!
    Командная строка такая:
    arduino --upload --verbose-build --verbose-upload d:\test\test.ino