Прошло 2 года и в мультиклеточной семье произошло пополнение, и мир увидел Мультиклет R1. В этой статье мы в деталях рассмотрим отладочный комплект для первого процессора с реконфигурацией клеток, а также продемонстрируем самый бюджетный вариант отладочной платы.
Рис 1. Эскиз процессорной платы
1. Ожидания и результат
Поскольку данная статья имеет своей целью обзор отладочного комплекса, но могут возникнуть вопросы по процессору, поэтому я подготовил список моих публикаций по процессорам.
Перед тем, как разрабатывать новую отладочную плату, были проанализированы конкуренты, а также на разных форумах проведено обсуждение того, какой должна быть отладочная плата. В итоге, в связи с расширением линейки процессоров, чтобы места в доме хватило всем и с целью снижения затрат по изготовлению процессорной платы, было принято решение о модульной структуре отладочной системы.
На рисунках 1 и 2 показаны эскизы отладочного комплекта плат, т.е. то, что мы хотели получить 2 года назад и к чему пришли совместно с нашим сообществом. Выражаем признательность всем, кто поделился советами и поучаствовал в создании концепции новой платы.
Рис 2. Эскиз базовой платы
Разработку отладочной платы доверили профессионалам из LDM-Systems. Мы конечно предполагали, что получится в итоге, т.к. данная компания уже изготавливала для нас отладочную плату для процессора Мультиклет P1. Но результат превзошел все наши ожидания.
Был разработан отладочный комплект, состоящий из базовой универсальной платы и подключаемой к ней процессорной платы, см рис.3.
Рис 3. Полная версия отладочного комплекта
Процессор R1 запустился с первого раза и замигал светодиодами. Конечно, изготовить такую достаточно объемную вещь идеально было непросто. Но было от чего отталкиваться и без особых проблем мы пришли к версии отладки, которая мне нравится, и надеюсь, удовлетворит потребности большинства наших пользователей. Стоит отметить, что в какой-то момент пришлось достаточно много линий развести заново на плате(в очередной раз я настоял на этом, поэтому отчасти это моя вина, что первым пользователям была немного сдвинута дата доставки), чтобы всё было эстетично и удобно для пользователей со всеми блоками периферии, как говорится «встречают по одёжке». За что мы очень благодарны нашим мастерам из LDM-Systems, которые построили уютный пункт управления для Мультиклет R1.
2. Обзор отладочного комплекта
На сегодняшний день мы в меру своих возможностей продолжаем развиваться и если абстрагироваться к автомобильной тематике, то наш модельный ряд пополнился и на данный момент включает три типа авто.
Первым типом у нас является отладочный набор, состоящий из базовой платы MB501, содержащей полный набор необходимых интерфейсов, процессорной платы и необходимых разъемов и проводов, см рис 4.
Рис 4. Максимальная комплектация базовой платы
Второй тип отличается базовой платой, которая называется pMB101 и имеет несколько урезанный набор разъемов на борту, но позволяет воспользоваться всеми необходимыми интерфейсами и собрать свое устройство в виде компактного готового модуля, см рис 5.
Рис 5. Версия компактной базовой платы
Третий тип также имеет отличие в версии базовой платы, которая называется uMB301 и позволяет состыковать процессорную плату в максимально компактном виде, см рис 6.
Рис 6. Версия микро базовой платы
Таким образом, мы получили комплектации седан, хэтчбек и купе. На рис 7 показано с какими основными интерфейсами возможно работать на базовой плате, хотя имеются также интерфейсы SPI, I2C, I2S и другие, которые можно задействовать через выводы на процессорной или базовой плате.
Рис 7. Основные интерфейсы базовой платы
Также мы подготовили видео демонстрацию работы отладочной платы:
Но возможны и альтернативные варианты для управления мультиклеточным процессором, об этом далее.
3. Минимальная комплектация
Как и в автомобильной промышленности, по многочисленным заявкам была выпущена минимальная комплектация отладочного комплекта. Но почти каждый автомобиль, купленный в минимальной комплектации можно затем довести до комплектации «Люкс» и приобрести зимнюю резину. Мы решили не отходить от этой концепции и в результате мы сняли часть элементов процессорной платы, а также защитный корпус программатора. Мы не стали действовать столь радикально как в фильме Марсианин и с нашего модуля скинули только некоторые компоненты периферии, что позволило снизить затраты на производство процессорной платы с Мультиклет R1 с учетом программатора в комплекте до уровня отладочной платы предыдущего поколения с Мультиклет P1.
Получилась минимальная комплектация процессорной платы, см рис 8.
Рис 8. Процессорная плата с сокращенным количеством элементов
На процессорную плату не были установлены некоторые компоненты для работы периферии и их обвязка, на рис. 9 продемонстрированы данные элементы.
Рис 9. Основные элементы, которые не были установлены на плату
Таким образом, основными не установленными компонентами стали 2 памяти SRAM, 2 памяти SDRAM, микросхемы физического уровня для USB, ETHERNET. Вы можете довести процессорную плату до максимальной комплектации. Для этого достаточно обратиться к официальному дилеру или в любой салон паяльных услуг. По компонентам вы также в праве сами решать, какие устанавливать, оригинальные или нет.
В состав минимальной комплектации также входит программатор без корпуса (см рис. 10) и microUSB – USB шнур для подачи питания от порта USB.
Рис 10. Бюджетный вариант программатора
Бюджетная версия отладочного комплекта является своеобразным конструктором, и в принципе в зависимости от потребностей можно будет сразу выбирать устанавливаемые элементы. В отсутствие базовой платы, да и при её наличии может потребоваться стыковка отладочной платы с другими внешними пользовательскими устройствами. Для этой цели разработаны специальные переходники с цанговых выводов платы, см рис 11.
Рис 11. Переходники для процессорной платы с цанговых разъемов
Таким образом, минимальная комплектация, состоящая из процессорной платы, бюджетного программатора и шнура microUSB-USB позволяет осваивать мультиклеточный процессор R1 и проводить разработку и отладку различных устройств.
Как и полный комплект плат, так и плату в минимальной комплектации можно «прокачать» под свои нужды, прикрепив в качестве следующего этажа плату с навигационным оборудованием, силовыми ключами, модулем управления шаговыми двигателями. Разработчик дополнительных модулей, которые позиционируются как Slave-модули конечно не Xzibit, но рассматривает предложения пользователей на изготовление дополнительных модулей. Навигационный модуль, модуль с силовыми ключами и модуль для подключения системы экранов показаны на рис 12.
Рис 12. Slave модули
Следует отметить, что все принципиальные схемы плат с указанием элементов являются открытыми, и мы рекомендуем воспользоваться нашими наработками при создании собственных устройств. С отладочными платами возможно работать на ПК под управлением ОС Windows, Linux, проводить отладку программы в модели и в железе и разрабатывать собственное ПО на языке Си или ассемблере.
4. Заключение
И напоследок хотелось бы сказать, что сейчас полным ходом идет разработка всего необходимого ПО (в т.ч. компилятора llvm), заработала лаборатория в УрФУ в радиотехническом институте (ИРИТ-РТФ). В лаборатории установлены комплекты максимальной комплектации, для удобства организации учебного процесса. Робототехнические наборы «Роботология» выходят на серийное производство, но их специфика больше направлена на освоение «Робототехники» школьниками, а также на быстрое знакомство с отечественным процессором, хотя отдельные элементы могут найти свое применение и в промышленности.
В ближайшее время у нас планируется организовать бесплатный удаленный доступ к отладочной плате, чтобы большее число желающих смогли попробовать работу с платой в нашей среде. У нас будет вестись трансляция на youtube отладочной платы, чтобы пользователи могли видеть, что происходит. В качестве ОС будет Fedora. Подключиться удаленно смогут как пользователи Linux, Mac так и Windows, достаточно просто запросить временной интервал.
Спасибо всем, кто проявляет интерес к нашему развитию, и ожидаем новую волну пожеланий, критики и предложений. Именно Вы делаете нас лучше!
Комментарии (42)
kloppspb
09.04.2016 15:42Наверное, потому, что этот регексп неправильно работает?
http://pastebin.com/BfcXd425grossws
09.04.2016 16:38Там много фреймворков, да
Bormoglotx
09.04.2016 17:39+1Это не один роутер, а два. Вы отправите пакет с ttl 5 и четвертый роутер балансируя попакетно трафик отправит пакеты двум роутерам (так как идет серия из трех пакетов), согласно его маршрутам. Те уже ответят, что Time Exceeded.
urticazoku
09.04.2016 22:11+2Извиняюсь за оффтоп: попробуйте traceroute к 162.252.205.157. Раньше такое срабатывало с 216.81.59.173 (Звездные войны и сетевые технологии).
Demogor
10.04.2016 16:19В-основном тем, что с питоном я практически не знаком)
Что до широкого круга людей — ну вон, к примеру, тот же popcorn time написан на nw.js(https://github.com/popcorn-official/popcorn-desktop) — это что, кого-то отпугивает? Если программа приносит пользу, мыши будут плакать, колоться, но кушать кактус серебряной ложечкой и запивать чаем, манерно оттопырив палец.
И еще раз — я не призываю активно бросать все языки разом и бодро учохивать с электроном под мышкой в сторону рассвета. Я вполне понимаю Ваши аргументы, мне самому не нравится расход памяти на рендер и все такое. А статья просто рассказывает о том, что есть такая вот хорошая и интересная штука, на которой можно делать разные прикольные вещи. Подтекающие памятью и жрущие CPU убогие подделки же можно и на ассемблере написать, было бы желание и упорот… упорность.Halt
22.10.2015 19:59У меня никакой. Просто раньше ребята утверждали, что LLVM не подходит для мультиклета ввиду особенностей его архитектуры. Как работает LLVM на традиционных архитектурах я знаю, а про их опыт хотел бы услышать.
32bit_me
22.10.2015 20:07Да подходит, конечно, и не очень сложно это сделать. Я сунулся к ним на форум, просто послали в грубой форме.
Demogor
10.04.2016 20:20Насколько понимаю, web audio API умеет FFT из коробки — https://developer.mozilla.org/en-US/docs/Web/API/Web_Audio_API/Visualizations_with_Web_Audio_API. Также гугл сходу выдает https://github.com/livejs/audio-rms на тему RMS. Другой вопрос, что я довольно отвратительно помню те куски теории звука, что остались в памяти из универа, потому без помощи толкового математика вряд ли смогу сделать что-то быстро, довольно большой объем теории придется перешерстить. Если сильно интересно — отпишитесь в личку.
golovim
10.04.2016 22:00+1Это очень здорово! Есть только один вопрос: а вы случайно не путаете средства предоставляемые окружением разразботки языка и средства самого языка? Вы пишите о том, что у вас есть тесты, макросы, песочница. Эти вещи предоставляет ваш язык?
golovim
10.04.2016 22:01Спасибо! Чуть позже постараюсь написать о более сложных конструкциях языка и проблемах их трансляции в JS
krufter
22.10.2015 23:16+1Подскажите ваш ник на нашем форуме, я проанализирую переписку. Обычно я стараюсь отвечать максимально корректно. Но вы же приходили лично к нам и общались со мной, Стрельцовым(автор мультиклеточной архитектуры). В общих чертах вы показали куда встраиваться нам, но это мы уже знали, там вариантов немного. Детального обсуждения как вы планируете обходить основные преграды не было высказано. Как я понял Вы сейчас сами в процессе изучения LLVM пишете под какой-то процессор компилятор, но всё в стадии разработки.
Один из наших сотрудников за несколько месяцев собрал компилятор на базе lcc и пообещал за полгода сделать на базе своих наработок собственный компилятор для мультиклеточного процессора. Прошло больше двух с половиной лет, нашлись грабли и трудности, которые надо отлаживать. Разработчики из компании Embox после портирования своей ОС заявили, что не могут идти дальше только за счет одного компилятора стандарта Си99, нужны и расширения. А для их поддержки нужен приличный штат(не забываем, что финансирование у нас не как у Эльбруса и то, что мы вступили в 2012 в Сколково не принесло до сегодняшнего дня грантов, но мы не теряем надежды, т.к. кому-то гранты всё-же выдают), если мы пишем своё. В итоге после появления машины времени вернемся назад в 2012 и попытаемся всеми силами изменить решение в пользу разработки компилятора на базе LLVM. Хотя нельзя сказать, что эта база нам подходит, придется разработчику(а то что, если ему дадут время, компилятор он напишет я не сомневаюсь) компилятора на базе LLVM прилично подумать, как что-то появится дельное в открытый доступ должны выложить.
К сожалению, в этом суровом мире не всё происходит объективно и честно и зачастую кажется, что всё против тебя и ничего не получается, хочется уехать в другую страну. Но я люблю свою Родину, даже свою первую машину ВАЗ 21065 с полным багажником запчастей мне нравится вспоминать и у нее были плюсы по сравнению с мерседесом S класса, и я стараюсь делать хоть что-то, чтобы в России стало чуточку лучше. Очень жаль, что вы так быстро сдаетесь. Если сделать компилятор действительно просто, то попробуйте его написать и если это нам понравится, то вы сможете продать его за хорошие деньги.vintage
11.04.2016 10:58Эти проблемы решаются нормализацией и отсутствием суррогатных пар (ucs4).
Milfgard
11.04.2016 12:25+25Что-то мне GTA вспомнился. Потрачено!
kolyaflash
11.04.2016 13:34+5> В сети можно легко найти достаточно сложные и, порой, запутанные алгоритмы интеграции в ваш программный код подобной системы
Думаю, уж лучше они, чем предложенный.Alexeyslav
11.04.2016 13:49Только в очень простых случаях. Из-за эффекта «дверного проёма» есть огромные шансы упустить важные детали и по этой причине очень быстро закопаться в многочисленных недоработках, недодумках и банальной забывчивости.
32bit_me
23.10.2015 11:55+1OK, я также по общался с этим вашим стрельцовым. Я после вашего «семинара» предложил ему помочь с LLVM, без всякой задней мысли, просто видя из ваших ответов на форумах, что у вас есть затруднения с этой системой. Сейчас я жалею, что это сделал, конечно. Ваш стрельцов, во-первых, позвонил через три недели, после того, как мы с ним договаривались, во-вторых, тыкал, хотя я с ним, кажется, не пил, в-третьих, сразу стал что-то требовать, какие-то сроки.
Мне это не нужно.SvyatoslavMC
11.04.2016 15:06+1Существуют и такие, и такие методологии обучения, у всего есть плюсы/минусы, свои требования к аудитории. Я вот увидел статью в таком ключе.
yegorf1
11.04.2016 17:30+1На xkcd.ru нет указания лицензирования контента
Ну тогда вы вообще не могли использовать картинку без согласования с авторами.krufter
23.10.2015 23:26-1По факту нелепая и немотивированная агрессия, по Вашему мнению, заключается в комментарии одного из пользователей на нашем форуме в Вашу сторону и в том, что наш технический директор якобы (этого я не могу подтвердить или опровергнуть) общался с Вами напрямую не на «Вы» по телефону.
fediq
12.04.2016 11:50+23Я вам — подробную статистику, а вы мне — голословные суждения. Нехорошо. Могли бы хоть википедией прикрыться.
Если вкратце — есть способы засунуть «не все» доходы в статистику.zedalert
12.04.2016 12:57+1Да куда им до рынка виртуализации, если они часовые пояса на своём же сервисе вебинаров не могут исправить уже 2 года, там видимо вообще не осталось специалистов.
guai
12.04.2016 13:11все свои знания по юникоду перечислили? :)
действительно, многие языки исторически выносили все эти проблемы за рамки, попросту забивали, сваливая на библиотеки, но появляются и такие, которые не забивают.
Если б я пилил язык, скорее бы на уровне этого языка организовал бы минимум пару типов данных под utf-8 строки и 32-битный массив символов. первые для компактности, вторые для charAt за константное время, плюс трансформирование одного в другое. нормализацию кодпоинтов хотелось бы оставить за рамками, но она может быть нужна, например, для работы с файловой системой, и тогда нет смысла от нее отказываться еще где-то. и тут всё зависит от философии языка, батарейки включены, или как.
короче, смотреть надо на то, что может компилятор сделать, имея знания о строках, и что из этого мы хотим, чтобы он делал. в iconv, например, мог бы сделать проверку в начале, совпадают ли входная и выходная кодировка, а потом собрать в одном бинарнике один и тот же алгоритм с трансформацией во внутреннее представление строк и без. круто? я не знаю, возможно, смотря что нам надо.
оставив всё на откуп либам, лишаем себя подобных возможностей.
что компилятор мог бы делать со знаниями о длине строчек в пикселях — я не представляю, возможно что-то и мог бы, но скорее это задача гуя.
stifff
12.04.2016 13:13+1Т.к. через форму обратной связи мне за пару месяцев так никто и не ответил, продублирую тут.
Анонсировать в игротеке игры, которых там физически нет — злодейство.
А ещё злодейство не предупреждать, что игротека будет проходить в кишащем детьми помещении.
А книга хороша. Даже автограф захотелось )
osipov_dv
11.04.2016 13:15+9Пора писать книгу, про то как продавали первую книгу :)
Книга хорошая, очень легко читается, проглотил на работе за сутки-двое.
Спасибо!
shiftedreality
11.04.2016 15:101. Ведь необязательная зависимость выглядит как противоречие. В таком случае хватит только геттера.
Использование геттеров необходимо в случае обеспечения обратной совместимости. Вот пример поддержки BC во второй Мадженте
2. В вашем примере метод вызывается на clone(), то есть в приниципе не влияет на создание обьекта.sajtpro
11.04.2016 15:35Если работать честно, то страха не должно быть. Данные потерять можно и на собственном сервере, если человеческий фактор проявится.
A_J
11.04.2016 16:03+1Верно и обратное: если вы привыкли работать с нормальной системой (P4) то переход на марсианскую (Git), или даже SVN доставит вам много боли.
HeaTTheatR
11.04.2016 15:47И в чем минус предложенного?
zirf
11.04.2016 16:01Мы немного о разном. Ошибка допускается во время проигрыша операции в голове, скобки не помогут. Человек так производит операцию. Я говорил об этом, его так учили.
ns5d
11.04.2016 18:20+1устал скролить, может поправите статью?
gandjustas
11.04.2016 23:05Это больше, чем некоторые заказчики ожидают.
Все же сравнивают цены с 1С, где "готовая конфигурация" стоит дешево.
kav4ik
К сожалению не подходит, т.к. студенты учат программирование, а как я понимаю если будут белые списки, то скомпилированные их программы работать не будут.
nazarpc
Статья банально некорректная, она не может быть правильной. Если она будет кому-то нужна — она не поможет, так как примеры не работают как положено. Комментарий же это аргументированное мнение относительно статьи. Если он неправильный и некорректный — то я трамвай, а хабр болото.
По всей статье: пример на flexbox, альтернатива, скриншот. Вот если бы 2 скриншота было бы рядом… впрочем, они были бы разными:)
Уважаемый, давайте ФАКТЫ. К примеру, был опрос на х тысячах пользователей iOS версии 7+, у процентов сказали что они откатились бы на более старую версию. Тогда это было бы аргументом. Иначе это ваше персональное мнение, которое совершенно не репрезентативно, увы.
овер 24% юзверей сидит на < 4.4
Давайте конкретно. В играх с движком Unity (мы говорили про браузеры, ну да ладно) пользователей с Android 4.3- 24,1%, что отличается от указанного мною выше числа на целых 0.6%. Что существенно, но кардинально картину не меняет.
Сколько пользователей с каких устройств будет заходить именно на ваш сайт тоже, конечно, вопрос открытый. Но всё не так грустно и неизбежно как вы тут рисуете.
brntsrs
В дропбоксе
vitalybaev
Если это сайт вроде VK, то, скорее всего, обновят. А вот если это интернет-магазин, найденный в поисковике — то не будет, он закроет вашу страницу и пойдёт к следующему. Минус клиент. А специфика некоторых магазинов такова, что людей со старыми браузерами может быть много
Corsi
Хотел добавить. У вас была такая вкладоччка «проверка WIFI», при клике на неё всплывало окно для ввода логина и пароля роутера. После ввода логина и пароля было сообщение, что роутер не поддерживается. Просто складывается ощющение, что всё это для сбора паролей доступа к роутерам пользователей.
dom1n1k
На многие очень дешевые или устаревшие смартфоны Chrome не ставится вообще, ругается на несовместимость железа.
mr_molodoy
>> А заказ большой, включает в себя далеко не только верстку и качать права — дохлый номер.
потом
>>… и приходится потом долбаться с шимами или переверстывать сайт/громоздить костыли.
Получается Вы беретесь за проект, только потому что за него платят больше чем обычно, но нужно мучатся с поддержкой устаревших браузеров, а после жалуетесь, что времени на него тоже уходит больше чем обычно? Тогда у меня вопрос почему бы не взяться за нормальный проект без «извращений», чувствую, что соотношение объем работы и оплаты за нее, получатся такие же как и с приведенным примером, но нервы Вы себе сохраните.