BBC Micro: bit — это Mbed-устройство на C / C ++


Micro: bit уникален как образовательная платформа — проста в использовании и поддерживается простыми языками, но вы, возможно, не заметили, что он построен на основе программного обеспечения ARM mbed IoT, и теперь поддерживающие его библиотеки C / C ++ были с открытым исходным кодом.

ARM анонсировала mbed, попытку захватить рынок Интернета вещей, в прошлом году и недавно сделала программное обеспечение доступным. Идея состоит в том, что вы можете установить mbed на любой из большого количества одноплатных компьютеров (SBC), работающих на чипах ARM Cortex-M. Обычный способ использования mbed — подключить SBC к ПК через USB. Он устанавливается как стандартный USB-накопитель, и любой код, который вы перетаскиваете на накопитель, загружается и запускается SBC.

Основным языком разработки является C / C ++, а ARM предоставляет бесплатный веб-компилятор. Вы регистрируетесь и начинаете писать код. Чтобы скомпилировать его, просто нажмите кнопку компиляции. Компилятор выдает ошибки времени компиляции, и, хотя есть подсветка синтаксиса, все это немного примитивно, если вы привыкли к NetBeans или Visual Studio. Если ваша программа компилируется, она загружается, и вы просто перетаскиваете загрузку на диск SBC.

Конечно, большая проблема в том, что это медленно и нет реальных средств отладки. Вы можете настроить последовательную консоль на ПК и отправлять отладочные сообщения, но это все. Нет ни одного шага, ни инспектора переменных, ни точек останова, условных или иных. Это делает отладку, которая традиционно является сложной задачей в системах реального времени, еще более сложной и требует много времени.

Вы можете увидеть в действии базовый онлайн-компилятор в этом видео:

Существует возможность скомпилировать программу с использованием локальной автономной IDE, но инструкции о том, как это сделать, крайне сложны, когда все, что вам нужно сделать, это заняться программированием. Основная причина в том, что mbed использует новую систему сборки под названием Yotta и систему описания модулей, основанную на файлах json. Это совершенно нестандартно и означает, что вам придется очень много работать, чтобы получить хорошую автономную систему, которая не требует от вас дополнительной работы.

На данный момент вы можете позволить себе игнорировать mbed и продолжать использовать GCC, Arduino или любую другую систему разработки, которую вы использовали. Однако это может скоро измениться.

BBC Micro: bit основан на mbed и программном обеспечении, разработанном Ланкастерским университетом. Университет создал DAL — уровень абстракции устройства — в комплекте с драйверами для всего, что предлагает Micro: bit — AtoD, светодиодного дисплея, кнопок и т. Д. Он был использован другими партнерами для создания онлайн-компиляторов языков для JavaScript, Touch Develop и MicroPython. Опять же, подключение к сети затрудняет отладку, а это не та характеристика, которую вы действительно хотите в образовательной системе. Редакторы перетаскивания по крайней мере следят за тем, чтобы вы не могли написать синтаксически неправильный код, но они генерируют ошибки времени выполнения, которые нелегко отладить.

Онлайн-компилятор MicroPython особенно плох, поскольку он позволяет вам делать синтаксические ошибки, и вы не узнаете о них, пока они не будут запущены на Micro: bit. Что еще хуже, ошибки времени выполнения появляются на прокручивающемся светодиодном дисплее, и их трудно прочитать, если вы не установите последовательную консоль — то, что документация не может объяснить.

Быть отброшенным назад к отладке с помощью оператора печати — это нехорошо, а для образовательного инструмента вы могли бы сказать, что это непростительно.

Тем не менее, Университет Ланкастера теперь открыл исходный код DAL и предоставил довольно много документации, которая позволяет программировать Micro: bit как универсальное устройство mbed на C / C ++. Это открывает новые возможности как для Micro: bit, так и для mbed.

Поскольку один миллион битов Micro: бит теперь находится в руках 11-летних детей и, что, возможно, более важно, всех взрослых, стремящихся научить их программированию, mbed внезапно имеет огромную потенциальную базу пользователей. Добавьте к этому тот факт, что когда Micro: bit поступит в продажу сообществу Интернета вещей, mbed почти наверняка станет хитом. Внезапно mbed больше не выглядит поздно начинающим, а крупным игроком.

Micro: bit — это очень способное устройство IoT — у него достаточно контактов GPIO, AtoD, DtoA, I2C, SPI, PWM и т. Д., Чтобы взаимодействовать практически с чем угодно. Программирование на C / C ++ означает, что он может быть быстрым, и операционная система не мешает. В Micro: bit нет Linux, поэтому программирование в реальном времени должно быть возможно.

Короче говоря, Micro: bit выглядит как первое успешное устройство mbed, и с его доступностью у Arduino и Raspberry Pi внезапно появилась конкуренция. Как устройство IoT, Micro: bit напрямую противостоит Arduino. Raspberry Pi — это не просто IoT-устройство, и бывают случаи, когда наличие полноценной ОС, такой как Linux, — это хорошо. Интересно то, что в тех случаях, когда Pi будет использоваться в качестве устройства IoT, Micro: bit имеет много преимуществ.

Однако есть проблемы. Самая большая проблема заключается в том, что mbed является открытым только частично. Некоторые важные его части держатся в секрете ARM. Также существует проблема онлайн-характера системы разработки. Поддержка Micro: bit на данный момент также очень неоднородна — кажется, никто в ARM mbed не понял, что это самое важное устройство для передачи, поэтому многие ссылки не работают, а документация очень бедные.

Будем надеяться, что они вовремя проснутся. На самом деле, будем надеяться, что они осознают тот факт, что онлайн-компиляция — это глупость, когда ваши пользователи собираются насчитывать потенциальные миллионы, не говоря уже о необходимости хороших средств отладки. Micro: bit нуждается в автономной среде IDE, которая проста в использовании.

Видеть:

Начало работы с C / C ++ в Micro: bit

Автономная разработка на C / C ++ с помощью Micro: bit


Добавить комментарий