Написання програми C поза Ardeino IDE?


12

Мені подобається ідея використовувати Arduino IDE для простих проектів та для початку роботи з Arduino, але до цього моменту я дійшов консенсусу, що він призначений для тих, хто не знайомий з Arduino та / або програмуванням взагалі.

Моє розуміння полягає в тому, що можна написати програму C з нуля, повністю поза ID Arduino IDE, а потім використати такий інструмент, як AVRDUDE, щоб завантажити її в MCU Arduino. Цей варіант, хоч і привабливий і цікавий, залишає у мене кілька проблем:

  • Які бібліотеки Arduino потрібно імпортувати / зв'язати за допомогою такої "сировинної" програми? Я припускаю, що коли програма, що базується на Arduino IDE, виконує програму, digitalWrite(...)вона справді викликає C-lib, ймовірно, наданий Arduino, під кришкою. Я стурбований тим, щоб переконатися, що всі ці "основні мочки" включаються до моєї програми C. Думки?
  • Чи є щось інше "втрачене", летячи сольно і вирушаючи за межі Arduino IDE? Будь-які можливості / функції, які мені довелося б зараз «влаштувати»?

arduino.stackexchange.com/questions/9538/… Відповіді на моє запитання допомогли мені налаштувати його. Ви можете замінити / залишити з ардуїно що завгодно. Ви можете: -Зробити власну дошку. -Використовуйте свій власний IDE. -Використовуйте власні бібліотеки.
Павло

Відповіді:


4

Ось дві приємні статті про те, як Arduino насправді працює у фоновому режимі. Як це усувало тертя з програмування мікроконтролерів.

  1. Екскурсія по внутрішніх справах Arduino: Як насправді працює Hello World?
  2. Arduino та GCC, компілюючи та завантажуючи програми, використовуючи лише файли

Тут також обговорювалося. Чи є спосіб або підручник для перетворення коду Arduino в код C?


Дякую @Michal Foksa (+1) - Я думаю, що я просто шокований, що відповідь на це не набагато більше відома! Я б подумав , що Arduino IDE була, скажімо, lib/де - то каталоги в корені установки, мали такі речі , як arduino-core.dll, arduino-io.dllі т.д.
smeeb

@smeeb: Ви маєте рацію, установка Arduino IDE обов'язково включає в себе бібліотеки основних функцій виконання та плюс надані користувачем функції. На півдорозі сторінки посилання 2, в makefile, символ LIBS вказує на них. Вони не є .dlls (які в Windows називають під час виконання); це об’єктні файли (.o в unix-подібних системах, ймовірно, те саме в Windows), які статично пов'язані з вашими компільованими файлами об'єктів у (в кінцевому рахунку) .hex-файл завантаження, який є повним зображенням завантажувача. ...
Дж. Роберт

... Це добре відомо людям, які пишуть програми на життя, але дизайнери інструментів Arduino (бренд) навмисно приховали якомога більше безладних деталей, щоб зробити застосування цифрової електроніки доступним для людей, без того, щоб вони стали професійними рівнями програмісти та інженери для цього. Наскільки ця інформація важко знайти у спільноті Arduino, вони досягли успіху!
JRobert

На жаль, з застарілих причин ви будуєте програмне забезпечення Arduino зовсім інакше, ніж стандартно прийнятий спосіб. "Знявши тертя", щоб спростити це, вони створили величезну несумісну спільноту. Кожен плагін IDE - це спроба зробити щось нестандартне в майже стандартному способі. Майте це на увазі, коли у вас виникають проблеми.

5

Ви абсолютно праві, що вам потрібно зв’язуватися з іншими бібліотеками. Однак вам не обов’язково потрібно турбуватися про всі деталі самостійно, якщо ви не хочете / не повинні зробити щось незвичне. Кілька альтернативних IDE вже підтримують Arduino, як правило, за допомогою плагінів, які обробляють багато деталей автоматично.

Я зазвичай рекомендую Eclipse, оскільки це дуже широко використовується IDE для різних цілей. Однак є кілька інших можливостей. Дивіться це запитання для отримання додаткової інформації:


Дякую @Peter R. Bloomfield (+1) - проте я дуже шукаю нецентричну відповідь. Не те, що я маю щось проти IDE, це просто те, щоб зрозуміти "бібліотечний ландшафт" Arduino, я відчуваю, що IDE - просто зайвий середній чоловік. Сказавши це, я б припустив, що є 1+ "основних ліб", з якими повинні зв’язуватися ВСІ програми Arduino, і що потім є додаткові вкладки, які можуть вам або не знадобляться, залежно від того, що насправді робить ваш додаток. Чи можете ви вказати мені на перелік цих "основних ліб", а також будь-яких інших необов'язкових? Знову дякую!
smeeb

І щоб кваліфікувати те, що я говорив вище про те, що IDE є "непотрібними посередниками", те, що я насправді маю на увазі, це: я повинен мати змогу написати додаток C поза будь-яким IDE (Arduino, Eclipse чи іншим чином), посилання на ардуїнські лайки, які моє додаток потребує і досі компілювати / розгортати додаток до обладнання Arduino. Мені цікаво, що це за бібліотеки, і де я можу знайти на них документацію.
smeeb

@smeeb З огляду на те, що Arduino орієнтований на новачків, я не думаю, що існує багато офіційної документації (якщо така є). Я вважаю, що найкращим способом дослідження було б пошук в Інтернеті прикладів ардуїнових файлів. У нижній частині цієї сторінки є кілька старих прикладів .
Пітер Блумфілд

@smeeb: Як і ви, я не прихильник IDE. У Інтернеті плаває кілька загальних арфійно-файлів. По суті, вам слід скомпілювати основну бібліотеку Arduino в libore.a, а потім зібрати свій файл .ino -x c++ -include Arduino.hдля того, щоб ваш компілятор зрозумів його (плюс купу -D, -Iі т. Д.) Та зв’язав з libcore.a.
Едгар Бонет

0

Так, ви можете написати програму за межами Arduino IDE. Наприклад, я спробував Eclipse IDE з AVR плагіном, і тепер я дотримуюся AVR Studio. Звичайно, у вас не буде функцій, які ви, як правило, використовуєте, коли ви пишете в Arduino IDE, а також у деяких бібліотеках. Але, чому б не спробувати реалізувати речі. Навіщо обмежувати себе функціями та бібліотеками, створеними іншими, коли ви можете вчитися та писати свої власні, можливо, краще, ніж існуючі.


-3

ESP8266 + Arduino IDE 1.6.4 Портативний - Повний посібник із швидкого встановлення www.instructables.com /.../ ESP8266-Arduino-IDE-164-Portable-F ...

Усі ваші файли Arduino IDE v 1.6.4, включаючи розширення ESP8266, ескізи, встановлені бібліотеки тощо, повинні розташовуватися лише у створеній папці "arduino-1.6.4".


Це не дуже корисна відповідь. Посилання не є реальним посиланням. І навіть якби це було, Stack Exchange нахмуриться на відповіді лише для посилань, оскільки пов’язаний сайт може знизитися. Будь ласка, розгорніть свою відповідь.
Нік Гаммон
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.