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 Оракул

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