company_banner

Galileo developer kit для Internet Of Things и программа для разработчиков

    На позапрошлой неделе на Mobile World Congress президент Intel Рене Джеймс анонсировала программу для разработчиков Internet Of Things. Всякие конкурсы-призы-хакатоны, короче — маркетинговая программа. Но были некоторые новости и по технической части. На MWC и Embedded World наша команда продемонстрировала некоторые новые возможности в разработке софта для IOT. Мы опубликовали два бинарных образа дисков (и соответствующие исходники для самостоятельной сборки), которые позволяют серьезно сократить время, необходимое для настройки системы для разработки софта для Galileo.

    Плату Galileo вот уже несколько месяцев можно достаточно недорого купить, например, в некоторых европейских интернет-магазинах. Купив плату, счастливый покупатель получает синюю коробочку, блок питания, и, возможно, мягкую игрушку bunnyman. На Galileo практически «из коробки» можно запускать код, разработанный для Arduino в Arduino IDE. Во флэш прошит минималистический Yocto Linux образ на ucLibc и busybox, который умеет, в основном, загружать и исполнять Arduino скетчи. Если вдруг разработчику захочется поставить более функциональный дистрибутив Линукса, то сборка и конфигурация займет несколько часов. Вот, например, очень неплохая инструкция от Сергея Киселева, где описывается, как скомпилировать Yocto со всевозможными gcc/g++/python/etc, чтобы один образ можно было использовать и на хосте (через chroot) и на Galileo.

    Мы еще раз протестировали Yocto 1.5 на Galileo, включили в билд рецепты для некоторых полезных драйверов и библиотек для разработки на C/C++/Python/Node.js, добавили несколько фич, облегчающих установку и конфигурирование, и сделали два образа диска — один загрузочный для микро-СД карты Galileo, и один «живой» USB образ с Дебианом и настроенными Yocto Eclipse ADT, Yocto Hob — для разработки на хосте. Одна из основных задач, которые мы пытались решить — сделать так, чтобы время от распаковки коробки до компиляции и исполнения Hello IoT World не превышало десяти минут.

    Многие спрашивают, причем здесь вообще Интернет Вещей? Galileo — типичная мэйкерская борда, со своими преимуществами и недостатками. В комментариях к недавней статье моего коллеги, даже было утверждение, что при помощи Galileo Intel пытается конкурировать с популярнейшей платформой Arduino. Я считаю, что плату Galileo с нашим билдом Yocto можно использовать для IOT, т.к. в поставке есть IOT kit agent и совместимость с Mashery. Это облегчает разработку Intelligent gateway — устройства, собирающего данные с сенсоров, осуществляющего первичную обработку, и отсылающего результат в облако.

    Помимо образов дисков, которые можно скачать с сайта Intel, есть еще и осязаемая аватара IOT Devkit. Мы собрали в одну коробку немного полезной перефирии, и уже раздали порядка 150 коробок наиболее везучим посетителям MWC и EW в Барселоне и Нюренберге.

    В набор входил 2x16 экран, PCIe карта для беспроводной сети, usb камера и микрофон, и все необходимые кабели. (См. заглавную фотографию, но NUC в поставку не включен :))

    Про кабели нужно сказать отдельно. Многие покупатели Galileo недовольны тем, что для того, чтобы достучаться до UEFI и grub требуется редкий и дорогой Audio(TRS 3.5мм)-RS232 кабель. (Хотя я лично не считаю это особой проблемой, для себя и коллег я спаял несколько таких из дешевых наушников) Ну и потом еще RS232-USB нужен тем, у кого на компе нет последовательного порта (что сейчас совсем не редкость). Некоторые покупают TRS serial-USB кабель, но почти всегда это оказывается TTL, а не RS232 адаптер, и он не работает с Galileo UART0. (C UART1 он работает, но UEFI использует UART0). Правильный кабель мы тоже включили в набор. Через некоторое время, когда начнутся более массовые хакатоны, этот (возможно, с небольшими улучшениями) набор будет раздаваться всем участникам, мы планируем раздать так несколько тысяч наборов. (Записывайтесь по ссылке выше!)

    Если вы внимательно прочитаете статью на IDZ о программе, то там упомянаются продукты Windriver: VxWorks и Workbench. На MWC мы демонстрировали, как они работают на Galileo, но скачать их пока можно только у Windriver с соответствующим контрактом. Также на Embedded World я показывал, как VI, скомпилированный National Instruments Labview 2013 может исполняться на Galileo, но Labview Runtime Engine также придется скачивать отдельно с сайта National Instruments.

    Кстати, кроме Galileo на Embedded World показывали еще один продукт от Intel на процессоре Quark. Это Gateway for Internet Of Things, более продвинутый продукт с кучей видов IO включая fieldbus'ы.

    Это был анонс и краткое описание Galileo IOT development kit, далее последуют две статьи — про то, как мы при помощи этого devkit делали одно из самых посещаемых демо на MWC с гонками игрушечных машинок,
    Видео исчезло из youtube, но остался линк: bcove.me/7fs0b04u
    и подробнее о том, как можно использовать Labview при программировании для Galileo.
    Метки:
    Intel 140,51
    Компания
    Поделиться публикацией
    Похожие публикации
    Комментарии 20
    • +1
      Я так и не понял, можно ли его программировать и прошивать через JTAG? Мне хотелось бы изучить архитектуру, поработать напрямую с прерываниями, а не использовать Linux API, к примеру.
      • +2
        У него есть 10 pin JTAG. Intel System Studio поддерживает его через переходник на Intel JTAG, а потом нужен еще и Intel JTAG (или Macgraigor). Достаточно дорого, к сожалению.

        Без отладчика можно baremetal/efi/grub разрабатывать и сейчас.

        Мы скорее всего летом выпустим baremetal примеры. Я был удивлен, что очень многие хотят использовать baremetal. Интересно, почему?
        • 0
          Только что поговорил с нашим разработчиком jtag, он сказал что можно при помощи openocd и ftdi адаптера дебажить.
          • +1
            здесь есть ссылка на то, как приладить jtag к galileo без Intel XDP Jtag.
          • 0
            Если вдруг разработчику захочется поставить более функциональный дистрибутив Линукса, то сборка и конфигурация займет несколько часов.

            Это вы хорошо пошутили. Не забудьте дописать что i5 минимум и памяти тоже побольше надо. А то иначе это займет не пару часов.
            • +1
              Да, у меня заняло 3 часа на моей рабочей станции. Старенький Xeon-EP Sandy Bridge…
              • +4
                Sandy Bridge то даа сильно старенький :)
            • +2
              Можно я задам, наверное, очень глупый, но подозреваю, крутящийся не у одного у меня в голове вопрос — в чем selling point этого направления Intel? Какие для меня, как для разработчика, плюсы перехода с ARMовых Arduino на Galileo?

              Я пока вижу один и то, относительно призрачный — наличие шин вроде PCI/PCIe.

              Поправьте меня, но по всем остальным направлениям с точки зрения массмаркета все будет относительно плохо ведь? Дешевизна в mass production — сильно вряд ли, сомневаюсь, что в планы Intel входит побить китайские ARMы ценой. Удобство разработки — весьма относительное. Быстродействие — о нем речь как таковом не идет. Сверхминиатюрность — тоже нет, Quark относительно большой. Потребление — на уровне с аналогичными ARMами, а никак не на порядок лучше. Я, видимо, как-то не так понимаю, для чего это все?
              • +2
                Эм. Вообще говоря это скорее конкурент RasberryPi и его аналогов, нежели Arduino. К примеру на борт можно засунуть полноценный linux и писать под него.
                • 0
                  да, там, где не нужна графика — собрать данные с сенсоров — датчиков, обработать, послать наверх. или мозги не очень продвинутого робота.
                  • 0
                    Внезапно, на Arduino ARM — тоже почти полноценный Linux и все возможности писать под него. Плюс shield'ы, куча вводов-выводов, JTAGи и все такое.

                    Пока у меня складывается впечатление о том, что Intel пытается изо всех сил запрыгнуть на уходящий поезд, и получается как-то загадочно. Да, проделали огромную работу в попытке догнать ARM, но в итоге каких-то сверхкрутых плюсов пока толком и нет.

                    Сейчас Intel попытается продавить это все маркетингом, чтобы за счет весьма дешевых железок попытаться создать какую-то движуху и коммьюнити вокруг Galileo — посмотрим, получится ли. Если честно, что-то сомневаюсь.
                    • 0
                      Пусть Tre сначала выйдет, тогда посмотрим, что там с конкуренцией. Или вы имеете в виду Due?
                      • 0
                        Да я, собственно, и не пытаюсь так сильно сравнивать с Arduino. Из того, что я вижу по поводу ARMовых Arduino — тот же Due по сути играет совсем на другом поле, нежели предыдущие AVRовские Arduino — и в 99% случаев его используют, как еще-один-девборд-на-каком-то-там-не-очень-мощном-и-весьма-generic ARM, нежели что-то самоценное.

                        Что будет с Tre — действительно, еще посмотрим. Но что-то мне подсказывает, что перевернуть сознание людей, делающих железки на «давайте у нас будет два процессора — один для высокоуровневого менеджмента, другой для низкоуровневого управления какими-то там контактными группами» — это еще сильно не факт, что выйдет.

                        Я-то, собственно, и не ратую как бы особенно за Arduino. Грубо говоря, из того, что я сейчас вижу — у тех, кто занимается железками — де факто в подавляющем большинстве случаев проще и дешевле приобрести готовый дизайн законченного блока (который будет либо на ARM, либо на MIPS), чем делать что-то совсем уникальное свое на универсальной платформе. Особенно если мы говорим о той самой зоне плюс-минус шаг вправо-шаг влево, которая несколько выходит за базовые возможности.
                      • 0
                        Эм. На текущий момент нет. В Due стоит M3 туда linux запихать невозможно, слишком мало памяти.
                    • +3
                      > призрачный — наличие шин вроде PCI/PCIe
                      Да, вся PC перефирия на USB/PCIe работает из коробки, драйвера для Linux/x86 — наиболее стабильные/оттестированные.

                      > Удобство разработки — весьма относительное
                      Наша команда будет стараться, чтобы превратить это в важное преимущество.

                      По предыдущему пункту, разработка для embedded как на PC, используя все возможные PC development perks — python/node.js, labview/mathalb, библиотеки типа opencv, и тд в этом духе может быть преимуществом. В последние года софт экосистемы ARM серьезно продвинулась в этом направлении, но еще не совсем догнала PC.
                      • 0
                        Да, вся PC перефирия на USB/PCIe работает из коробки, драйвера для Linux/x86 — наиболее стабильные/оттестированные.

                        Вот здесь позволю себе определенный скепсис. Если взять какие-нибудь NVIDIA / ATI (AMD), то уже не единожды натыкались на то, что, скажем, драйверы, которые якобы собраны для x86, на практике даже на Atom работают либо сильно медленнее тех же драйверов, но на современных i3 / i5, либо, в худшем случае, не работают вообще (видимо, если очередную версию кто-нибудь сильно умный соберет с какой-то оптимизацией и инструкциями, которые есть только на Core).

                        С менее consumer-железками, например, типа тех же гигагерцовых многоканальных осцилографов — там проблема будет, боюсь, будет банально в том, что поддержки Linux зачастую нет вообще никакой. Плату продают вместе с соответствующим софтом, который Windows-only — и все.

                        Год назад, например, я делал проект, в котором нужна была плата видеозахвата на много камер и много одновременных FPS. Пытались сделать маленькую коробочку на Atom + одна-две PCIe плат. Перепробовали штук 5, в итоге плюнули и просто закупили готовых китайских видеорегистраторов на ARMах и похакали им прошивку, чтобы выполнять наш специфичный workflow. Плохо все было и с драйверами, и с производительностью для наших задач, и с доступностью железок и т.д.

                        «Про разработку для ARM» — боюсь, что ничем из вышеперечисленного особенно не удивишь. И языки / фреймворки практически любые на Linux под ARM запустятся и будут вполне работоспособны, и opencv работает и т.п.

                        Labview — возможно, будет неким selling point, но это примерно как с PCI — во-первых, так ли там все гладко, во-вторых, настолько ли многим оно нужно?
                        • +2
                          >драйверы, которые якобы собраны для x86, на практике даже на Atom работают либо сильно медленнее тех же драйверов, но на современных i3 / i5
                          а на galileo будет еще медленнее, чем на Atom, увы. Инструкции, которых нет на Atom/Quark — в-основном SIMD, которые в kernel mode драйверах обычно не используют.

                          >гигагерцовых многоканальных осцилографов
                          У quark на такое мощИ не хватит, конечно. Как и у бОльшей части ARMов.
                          • +2
                            Ну, собственно, поэтому смысл использовать производительные потоковые PCI-e карточки — какой-то призрачный. К сожалению, видимо, в драйверах видеокарточек такие части есть.

                            Про осцилографы — мощь там и не нужна. Там по сути отдельный компьютер-в-компьютере. Я помню, что игрался с четырехканальным гигагерцовым осцилографом лет 7-8 назад — прекрасно работало чуть ли не на хосте с Pentium 3 и Windows 2000. У нее собственная память и обработчики внутри, скорость компьютера влияет только в одном случае — когда пойманный массив или какие-то его производные начинаешь сгружать на хост — но в этом случае зачастую все упирается в производительность HDD, а совсем не процессора. Думаю, что оно прекрасно работало бы и на Atom, и на Quark, только, возвращаясь к началу разговора, энтузиастов покупать железки по 40-50K$, а потом реверсить их и писать драйверы под Linux — видимо, нет.
                        • 0
                          Вы используете стандартный openembedded. Все что собирается им под x86 так же спокойно собирается под ARM. Это основная фича. Ну разве что вы отдельный layer сделаете с фичами для gallileo
                          • 0
                            да, yocto сейчас работает практически одинаково на arm и x86 платформах. Но PC перефирия просто более оттестирована на x86, багов меньше.

                      Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                      Самое читаемое