Visual C++ for IoT Development: Прорив чи розчарування?

enter image description here
Як відомо світ не стоїть на місці і активно розвивається. Особливо в сфері IT і конкретно розробки ПО. Найважче в цій справі це встежити за всіма новинками і вихопити найбільш цінні і корисні з них. Ось і я тільки недавно натрапив на додаток до Visual Studio під назвою Visual C++ for IoT Development, яке існує вже майже рік. Потенційно — дуже корисна штука, але поки це більше яскраву назву, ніж даний Visual C++ для IoT. Давайте розберемося чому.
Ідея використовувати Visual Studio при роботі з мироконтроллерами відвідує мене давно і регулярно. А останнім часом ця ідея перетворилася в практику. Всі мої проекти давно щільно інтегровані з Visual Studio. Перший час я використовував її просто як засіб взаємодії з системами контролю версій. Потім почав частково писати в неї код, а тепер ще й використовую вбудовану в неї систему Unit тестів. Але компіляції і налагодження завжди залишалися десь за бортом.
Побачивши заголовок Visual C++ for IoT Development, я подумав, що вік мук закінчився! Вистачить писати код в одному місці, а компілювати і налагоджувати в іншому постійно перемикаючись то туди, то сюди. З'явилася надія все робити в Visual Studio.
enter image description here
Це розширення з'явилося ще в березні 2016 року. І відгуки про нього не дуже хороші. Мабуть, тому майже цілий рік воно залишалося в тіні.
Так що ж таке Visual C++ for IoT Development? Виявилося, що це "побічний" продукт спроб підключити GDB Debugger до Visual Studio.
Ця історія началась в 2014 році. Спочатку в Visual Studio з'явилася можливість віддаленого налагодження С++ коду під Android. Через пів року була анонсирована можливість віддаленого налагодження С++ коду вже просто під Linux системами. У листопаді 2015 появилась Preview версія. Ну а зараз додаток для віддаленого налагодження коду на Linux з-під Visual Studio вже повністю доступно і активно розвивається. Останнє оновлення було 22.12.2016. Про це вже навіть писали на хабре.
Причому тут IoT? А виявилося, що вже давним-давно існує проект під назвою OpenOCD. Повна його назва Open On-Chip Debugger Free and Open On-Chip Debugging, In-System Programming and Boundary-Scan Testing. Сенс даного проекту полягає в тому, що він є "єдиним" випробувальні інтерфейсом практично для будь-якого мікроконтролера. Апаратна система налагодження або програмна, зовнішній чи JTAG/SWD адаптер або він "розмазаний" на налагоджувальної платі — йому все одно. На поточний момент OpenODC має конфігураційні файли практично під всі існуючі налагоджувальні кошти. І уніфікує він все це як раз в GDB.
Виглядає це приблизно так:
enter image description here
При цьому відкривається сокет за адресою localhost:3333. Відповідно це і є GDB сервер, який дозволяє виконувати віддалену налагодження. До нього то і підключається Visual Studio.
У загальному-те, це все. Більше Visual C++ for IoT Development нічого нового робити толком і не вміє. Так, там можна налаштувати NMake і все-таки зробити компіляцію в консольному режимі. І ще є налаштування IntelliSense. Але це все і так було в проектах Makefile.
enter image description here
На поточний момент розробники протестували всі спільно з ARM GCC tools. OpenOCD, pyOCD і JTAG відладчиком Segger.
Чого б хотілося від цього доповнення? Повноцінної роботи з ARM GCC так само як з звичайними проектами, а не налаштовувати NMake. Тоді можна весь проект буде вести в Visual Studio, користуючись усіма зручностями.
Причому технічних перешкод для цього немає. Мало того, такі спроби вже робилися. Навіть є комерційні проекти — VisualGDB. Чому це не зробить сама Microsoft — залишається загадкою.
Підводячи підсумки, можна сказати, що Visual C++ for IoT Development це здорово і користуватися ним цілком можна. Але незручно. Є кілька сценаріїв і всі вони припускають "милиці" у кращому випадку у вигляді NMake. Сподіваюся, що це розширення не буде занедбана і буде активно розвиватися, як і Visual C++ for Development Linux. Хоча, так як останнє оновлення було 31.03.2016, надії можуть бути і марні.
Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.