CodeBlocks Arduino IDE

Тема в разделе "Флудилка", создана пользователем NR55RU, 2 дек 2014.

  1. NR55RU

    NR55RU Гик

    Если вас по каким либо причинам не устраивает штатная Arduino IDE, то есть более чем отличная альтернатива.
    Свое мнение я выразил в небольшой статье, тут.

    Скажу в крации лишь то, что после установки CodeBlocks Arduino IDE, я больше не запускаю Arduino IDE вовсе. Ибо в ней больше нет никакой необходимости.

    Одним словом, рекомендую попробовать.
     
    Unixon нравится это.
  2. Unixon

    Unixon Оракул Модератор

    Более, чем одноразовые, проекты тоже переношу в C::B, но только без всяких "CodeBlocks Arduino IDE". В C::B совершенно замечательная система управления сборкой проекта. Для сборки проекта через Makefile без C::B можно воспользоваться cbp2make, только нужно скопировать конфигурацию для avr-gcc из C::B.
     
  3. NR55RU

    NR55RU Гик

    А вы могли бы рассказать как можно с помощью C::B без готовых аддонов собрать и залить проект на ардуин по USB ?
     
  4. Unixon

    Unixon Оракул Модератор

    Если совсем "в лоб" - просто включаете в проект нужные файлы из arduino-1.0.x/hardware/arduino/cores/arduino и добавляете этот каталог в пути поиска инклудов. Заливка в контроллер через avrdude из скрипта на bash/bat.

    Если хочется чуть большей похожести на оригинальную IDE - можно воспользоваться ino, добавив его в pre-build скрипт и в меню tools для заливки в контроллер. Но этим я не занимался, т.к. не особо нужно было. Обычно наоборот, приходится не автоматически искать все cpp к прописанным include, а резать Wiring на мелкие кусочки, чтобы уместиться в мегу 48/88.
     
  5. NR55RU

    NR55RU Гик

    То есть, получается.
    Подключаем нужные файлы, компилируем проект в AVR-GCC с созданием hex файла, затем используя avrdude загружаем hex на ардуин .. так ?
    Ну и все эти действия как я понимаю можно прописать в C::B

    Кому любопытно, нашел тут статейку на тему как hex через avrdude залить на арудин.
     
  6. Unixon

    Unixon Оракул Модератор

    Да, верно.
     
  7. NR55RU

    NR55RU Гик

    Можно вот этот момент прояснить.
    Поправьте меня если я ошибаюсь.
    Компилятор компилирует весь код для всех подключенных файлов, и даже те функции и классы которые в программе явно не используются, так как компилятору не известно будут ли эти функции вызваны динамически.
    Таким образом все это включается в код программы, а вы разбиваете один большой файл на множество мелких чтобы подключать только тот код который фактически используюется, я все верно понял ?
     
  8. Unixon

    Unixon Оракул Модератор

    Обрамляю функции #ifdef...#endif и в настройках проекта отключаю через глобальные макросы неиспользуемые части функционала Wiring. Список исходников не меняется. Если в настройках проекта ничего не указано - компилируется полный вариант.
     
    NR55RU нравится это.
  9. ИгорьК

    ИгорьК Гуру

    Я думал что знаю русский язык...
     
  10. NR55RU

    NR55RU Гик

    Unixon. спасибо вам, хорошее решение, возьму его на вооружение :)
     
  11. Unixon

    Unixon Оракул Модератор

    Много памяти отъедает работа с вещественными числами, потом идут некоторые операции со строками, потом еще что-то. На всем этом можно неплохо сэкономить, если оно в проекте по факту не используется.
     
  12. AlexVS

    AlexVS Гик

    Пробую работать с C::B, но некоторые моменты не совсем понятны.
    Например, почему некоторые файлы библиотек он видит только если их скопировать в каталог проекта, хотя они явно присутствуют в С:\CodeBlocks\arduino\libraries\ ?
     
  13. Unixon

    Unixon Оракул Модератор

    Не знаю, как именно вы пытаетесь их подключать, но нужно сделать две вещи: добавить сами файлы в проект и добавить пути к заголовочным файлам .h в пути поиска проекта.
     
  14. AlexVS

    AlexVS Гик

    Создал проект заново, добавил в проект только свои файлы (те что сам написал), добавил пути к библиотекам (h-файлам). Проект компилируется. Но, при компиляции в C::B - размер получается 48626 байт, а если Arduino IDE, то 46502 байт.
    При добавлении файлов в проект я указал только 1 контроллер, может какие-то настройки проекта нужно сделать?
     
  15. Unixon

    Unixon Оракул Модератор

    Ну, как обычно, в Release включаются опции "-O2" "-s", в Debug "-g".
     
  16. Maxmi

    Maxmi Нуб

    Не смог завести проект под Linux в codeblocks.
    При попытке компилировать открывает CDC.cpp , где только #include "CDC.cpp"
    Кто-нибудь в курсе что не так?
     
  17. Unixon

    Unixon Оракул Модератор

    Если проект не секретный, выложите куда-нибудь, гляну что не так.
     
  18. Deni

    Deni Нуб

    Здравствуйте! Подскажите, как настроить С::B для прошивки плат Uno, Leonardo, Iskra, Nano, Mega? Cпасибо.
    C::B 20.03
    Arduino IDE 1.8.13
    Win 10

    #include <Arduino.h>
    void setup(){
    // initialize the digital pin as an output.
    // Pin 13 has an LED connected on most Arduino boards:
    pinMode(13, OUTPUT);
    } void loop() {
    digitalWrite(13, HIGH); // set the LED on
    delay(1000); // wait for a second
    digitalWrite(13, LOW); // set the LED off
    delay(1000); // wait for a second
    }
    gcc version 8.1.0 (x86_64-posix-seh-rev0, Built by MinGW-W64 project)

    -------------- Build: Arduino Leonardo in 2 (compiler: GNU GCC Compiler for AVR)---------------

    avr-g++.exe -mmcu=atmega32 -Wall -fno-exceptions -ffunction-sections -fdata-sections -x c++ -s -DF_CPU=16000000L -DARDUINO=103 -DUSE_EEPROM=0 -DUSE_ETHERNET=0 -DUSE_FIRMATA=0 -DUSE_LCD=0 -DUSE_LCD4884=0 -DUSE_OBD=0 -DUSE_SD=0 -DUSE_SERVO=0 -DUSE_SOFTSERIAL=0 -DUSE_SPI=0 -DUSE_STEPPER=0 -DUSE_TINYGPS=0 -DUSE_WIRE=0 -Os -std=c11 -mmcu=atmega32u4 -D__AVR_ATmega32U4__ -DUSB_VID=0x2341 -DUSB_PID=0x803C -I. ....................

    IC:\WinAVR\avr\include -c cores\wiring_pulse.c -o .objs\cores\wiring_pulse.o
    .............
    cc1plus.exe: error: unrecognized command line option "-std=c11"
    Process terminated with status 1 (0 minute(s), 0 second(s))
    13 error(s), 0 warning(s) (0 minute(s), 0 second(s))
     
  19. Ariadna-on-Line

    Ariadna-on-Line Гуру

    Почему-то не указывается что дистрибутив только под 64-битную машину. Скачал, да напрасно.
     
  20. Unixon

    Unixon Оракул Модератор

    Прошивку через IDE не настраивал, обошелся bash-скриптами на все случаи. Про Win10 не подскажу, очень давно с нее слез (WinXP).
    В принципе, под виндами все то же самое -- скрипты с другим синтаксисом, какие-то команды можно прописать в саму IDE.