«Эффективные» менеджеры и поставщики компонентов могут смело проигнорировать этот материал. Эта заметка — для разработчиков аппаратуры, которые уже смотрят, или только собираются смотреть в сторону процессора Байкал-Т1. Так сказать, «информация к размышлению» о реальной истории общения с фирмой Байкал Электроникс (БЭ) и что в результате получилось из прикладного проекта с попыткой применения «импортозамещения».
Итак, все по порядку…
История вопроса
Наше предприятие разрабатывает и производит электронную аппаратуру с 1993г. и мы хорошо известны на своем рынке. С какой только элементной базой мы за эти 25лет не переработали и чего только не переделали! Хотя, правда — с отечественной базой за это время точно уже не работали. Последний раз на моей памяти такое было в далеком 1987г, задолго до образования нашей фирмы — самые лучшие воспоминания о советских аналоговых и цифровых компонентах из Киевского «Кристалла», Новосибирска, Таллина, Риги, Зеленограда, Кишинева, Ленинграда, и др.
Так вот, в конце 2016г. задумали мы одно изделие, который среди прочих компонентов должен включать управляющий контроллер, точнее SoC (System-on-Chip). Никаких специфических требований по скорости и производительности к контроллеру (400МГц-1ГГц вполне достаточно). Необходимо только наличие стандартных портов (1GbE, I2C, SPI, SATA и др.) и внешней DDR памяти до 1GB, а также желательно наличие двух и более процессорных ядер. Тип процессорного ядра в принципе не важен. ARM-ядро желательно, но необязательно. Температурный диапазон — коммерческий и индустриальный. Потребление тоже не важно (опять же, в разумных пределах), т.к. по сравнению с тем, сколько потребляют главные компоненты в этом изделии, так это, как говорят математики, — «о»-маленькое, причем третьего и выше порядка. Главное же требование, как обычно — хорошо отлаженная среда проектирования и отладки софта под Windows, JTAG эмулятор, «базовые» библиотеки для работы с процессором и периферией в режиме «bare-metal», и совместимость с любой из стандартных RTOS, поставляемых в исходных текстах (ThreadX от ExpressLogic, FreeRTOS, и др) с поддержкой IP-протоколов и файловой системы. Linux в принципе не подходит и не рассматривается. Аппаратная часть устройства в целом не очень сложна, а вот программная — «очень и очень» и займет не менее года до первого релиза и с документацией. Устройство, вполне вероятно, подлежит последующей сертификации. Количество небольшое — порядка 100шт в год на первые несколько лет.
Наш опыт применения и наработанный софт для процессоров Freescale/NXP с ядрами PPC и ARM, процессоров TI и Atmel, позволял нам в принципе не задумываться о выборе управляющего контроллера и исключить весь «геморрой» с «базовым» ПО, RTOS и средой разработки ПО. Но черт же меня дернул и клюнул меня тогда в зад какой-то петух… Решил я посмотреть — «не подойдет ли что-нибудь отечественное?» на место управляющего контроллера. Как раз в то время пошел «звон» насчет импортозамещения, и, как нельзя кстати, прочитал я тогда про первый отечественный процессор Байкал-Т1. И закрутилось…
Первое впечатление
Зашел на сайт БЭ, нашел процессор Байкал-Т1, скачал рекламный листок с блок-схемой. Первое впечатление — вполне подходит по параметрам. Ничего экстра-ординарного на 2016г, но вполне недурно для широкого круга встраиваемых приложений и без претензий на «супер-пупер». Молодцы! Если все будет работать так, как задумано, то отличная работа! Хорошее попадание в рынок.
Заполнил «on-line» заявку с сайта с указанием «кто такой», откуда, и с просьбой прислать более детальную техническую информацию по аппаратной и программной частям. И, как обычно, переключился на текучку.
Проходит неделя, вторая, третья… Тишина. Никаких писем и звонков от БЭ. Вспоминаем о БЭ. Звоним сами. Выясняется, что чипов нет (на конец 2016г) и они планируются только к концу 2017г. Никакой технической документации пока нет в доступе.
Что же, подождем… Наше изделие тогда еще было только в стадии осмысления. Время есть.
Второе впечатление, оно же последнее
Февраль 2018г. Наконец, у нас подошло. Концепция изделия готова и рынок понятен и готов. Пора приступать к проектированию. Идея про использование Байкал-Т1 пока в силе. Захожу на сайт БЭ. Нынче сайт красив, все моргает, движется… Шрифт крупный. Круто! Опять заполнил «on-line» заявку с сайта с указанием «кто такой», откуда, и с просьбой прислать более детальную техническую информацию по аппаратной и программной частям. И, как обычно, снова переключился на текучку в ожидании скорого ответа.
Однако, проходит неделя, вторая, начинается третья… Опять тишина. Никаких писем и звонков от БЭ. Крутизна сайта как-то начинает не соответствовать истинному состоянию дел.
Снова вспоминаем о БЭ. Звоним. Выясняем с кем говорить о технических вопросах. Все те-же люди — г-н Р.С. Общаемся.
И вот тут-то выясняется…
Процессор и демо-плата
Цена чипа — примерно 65$ (3.7 т.р.). В наличие есть на складе, бери хоть сейчас. Отлично.
Задаю ряд конкретных технических вопросов по процессору. Получаю в целом адекватные ответы, хотя кое-где человек «плавает», но в пределах разумного (вопросы-то очень конкретные, а недостаток опыта налицо). В любом случае ясно, что для работы будет нужна полная техническая документация.
Спрашиваю «А есть ли тестовая плата для пробы софта и железа?». Ответ — есть, но там какие-то небольшие задержки с новой ревизией. Не вопрос, немного подождем. А вот цена платы ~150т.р. — это действительно круто для чипа ценой 3.7т.р.! Возникает здравый вопрос «С чего бы это?», в то время как тестовые платы от Freescale/NXP, TI, Atmel в диапазоне цен ~60$ (3.6т.р.) до ~400$ (23т.р.) от производителя. Вразумительного ответа по цене, как всегда, нет. Не хочешь — не бери! Делаю вывод — дела с продажей чипов идут плохо, потому и делают упор на тестовые платы и на гос-заказы. Ведь в здравом уме никто (или мало кто) не купит эту плату за такую цену и за свои кровные деньги. Кстати, как раз на днях узнал, что в МГУ открыли учебный класс по Байкал-Т1. Это, конечно, здорово! Но только деньги-то опять государственные и им есть предел и очень много желающих!
Ситуация ясна. Пока не страшно. Надо будет — купим и тестовую плату. Идем далее…
Софт
Спрашиваю «как обстоят нынче дела с софтом у Байкал-Т1?» в соответствии с требованиями нашей задачи?
Да никак! Только Linux. Нет ни поддержки никаких RTOS, ни «bare-metal», ничего более. Как-будто бы, кто-то там портирует QNX на Байкал-Т1, но точно ничего не знаем.
Что-то мне это сильно напоминает «советские» времена, когда процессоры выпускали, давали документацию с описанием системы команд процессора и их кодов, а дальше каждый сам, кто как сможет… Правда, конкуренции не было. Просто стояла задача — сделать любыми средствами!
В целом, для нас это не вопрос. На какие только процессоры мы не перепортировали разные RTOSы за время своей работы. Ну сделали бы еще и порт для Байкала-Т1. Написали бы и «базовые» библиотеки для «bare-metal» применений.
Вот только время свое жаль. А еще больше жаль наблюдать ущербность подхода БЭ к этому вопросу. Ведь «силиконовые» инженеры отлично сделали свою работу. А вот начальники, видимо, вообще не понимают, что софтом надо заниматься в самых разных направлениях (а не только Linux), и именно в самой БЭ. И это надо начинать намного ранее выпуска самого силикона.
По сути, все эти бенчмарки, сравнение процессоров между собой, наличие того или иного аппаратного порта и прочих архитектурных штучек тут и отсутствие их там не имеет принципиально никакого значения для подавляющего большинства приложений. Надо будет — сами добавим то, чего не хватает. Какая разница между 1000MIPS и 800MIPS, или 10000 CoreMarks и 7000 CoreMarks для управляющего контроллера? Да никакой! Реально значение имеет только наличие адекватного поддерживаемого софта и средств разработки, как это имеет место для нашей задачи. И сделать это вполне реально производителю процессоров. Надо только понять что именно это и есть ключевой момент для успешной продажи процессоров. Кстати, тогда и цена на тестовую плату станет вполне адекватной, т.к. приоритеты сместятся в правильном направлении. А тут и новые покупатели подтянутся.
Печально. Но тем не менее, не критично. Идем далее…
Средства проектирования и отладки ПО
Спрашиваю «как насчет средств отладки?». Не поверите, но в 2018г все тоже: Да никак! Ни среды проектирования и отладки, «заточенной» под конкретный чип с его периферией, ни JTAG эмулятора у БЭ нет и не предвидится. Сказали только, что где-то как-будто лежит проект среды на Eclipse, можно скачать. Но он не поддерживается, так что компилируйте и пользуйтесь сами на свой риск! Вот это подход! Класс!
JTAG эмулятор как будто-бы доступен от фирмы OLIMEX (Болгария !). Дали ссылку — там ни слова про MIPS, только эмуляторы для ARM. Причем здесь ARM, когда ядро MIPS? Дали ссылку на JTAG эмуляторы на сайте MIPS. Там что-то похожее на правду. Но мне что, JTAG эмулятор самому везти из США?
Задаю вопрос: «А где же брать отладчик для JTAG эмулятора?» Ответ достойный — «Остается только GDB.» Я что-то не понял. Там что, в БЭ всех покупателей за дебилов что ли считают? Строчный отладчик в 2018г?
И мне это надо? Тем более, для неизвестного мне ядра MIPS P5600 (Байкал-Т1).
Могу повторить только то же самое, что и в предыдущем пункте. «Эффективным» менеджерам из БЭ надо бы понять, что реально значение имеет только наличие адекватного поддерживаемого софта и средств разработки, причем непосредственно от самого производителя чипов. Именно самой фирме БЭ надо поставлять протестированные JTAG эмуляторы и свою «заточенную» под чип среду проектирования и отладки, как это делают все производители процессоров.
Ситуация становится критической. Тем не менее, идем далее…
Достойный финал
Хотя уже было понятно, что положение — «швах», и придется, видимо, окончательно расстаться с мыслью о Байкал-Т1, спрашиваю насчет получения детальной технической документации. Необходимо взглянуть на полное описание портов и спецификации чипа. Особенно хочется взглянуть на список «Silicon Errata», содержащий перечень всех ошибок в силиконе и наличие для них программных «заплаток», т.к. именно это определяет возможность нормального применения чипа под конкретную задачу.
В порядке информации: у большинства производителей чипов детальная техническая документация и Silicon Errata либо сразу доступны для скачивания с сайта, либо после простой регистрации на сайте (в основном для изучения рынка).
В БЭ же просят подписать NDA (non disclosure agreement, Соглашение о неразглашении). Не вопрос — подписывали, и не раз, с разными фирмами-производителями чипов. Обычно это требуется для очень сложных и специальных чипов, по которым идет острая конкуренция по функционалу и IP (intellectual property). Только вот с производителем процессорных чипов общего применения — это впервые на моей памяти. Тем не менее, был уверен, что подпишем без проблем, и попросил прислать на почту файл для заполнения.
И вот тут-то ждала засада…
Через день получаю письмо на почту с файлом NDA и сопровождающим текстом. И тут выясняется, что для подписания NDA для получения всего лишь описания на процессор (!), в БЭ необходимо предоставить следующие документы на фирму (далее привожу точную цитату из письма):
"…
1. Копия свидетельства о госрегистрации.
2. Копия свидетельства о постановке на налоговый учет.
3. Копия устава, заверенная руководителем.
4. Протокол или решение о назначении директора.
5. Копия уведомления о применении упрощенной системы налогообложения (если применимо).
6. Доверенность и контактные данные представителя.
7. Карточка компании.
…"
Вспоминаю этот незабываемый момент когда я это прочитал. Прямо как в слогане от рекламы BMW — «Восторг ...». Высочайший «респект» фирме БЭ с ее юридической службой! В этом она далеко и переплюнула всех, кого только можно и нельзя, в вопросе подписания NDA для получения документации на процессор общего назначения. Видимо, в БЭ взяли юриста из банка и он, очевидно, перепутал, что это мы (покупатели) хотим получить нечто адекватное за свои деньги от БЭ, а не наоборот. Но жизнь уж точно это поправит, и надеюсь, что скоро.
Все, на что я оказался способен в этот незабываемый момент, так это написать ответное письмо в БЭ со скромным вопросом «Может Вам еще и ключи от сейфа, где деньги лежат?» и с предложением забыть друг друга как страшный сон.
«Сухой» остаток
Полный «абзац»!
Чем утешились?
Пришлось вернуться к старым добрым аппаратным ARM-платформам, для которых все давно у нас есть и прекрасно работает. Прикладной софт для нашего изделия — это ключевой момент, и его очень много. И взваливать на себя решения второстепенных и чужих проблем со средствами разработки и отладки, и, возможно, с неизвестной аппаратной частью при таком подходе в БЭ совсем ни к чему.
Вот захотелось же экстриму с применением «импортозамещения» ...!
П.А. Семенов, к.т.н., «МикроЛАБ Системс» (г.Москва)
Автор: Семенов Павел