Обновить
128K+

Программирование микроконтроллеров *

Учимся программировать микроконтроллеры

317,4
Рейтинг
Сначала показывать
Порог рейтинга

Меня в разных постах обвиняли, что я якобы базирую свою критику AI только на старых бесплатных моделях. Что-ж, пару недель назад я дал задачку самой последней самой платной версии Claude и вот мои наблюдения. Если кратко, из него можно выбить правильный ответ, если знать какой ответ должен быть, но в процессе выбивания оно демонстрирует целый букет наивностей, свойственный людям, которые перешли на верилог из Си. Я аж прослезился, вспомнив как я делал такие же ошибки 30 лет назад. При этом оно еще и пытается спорить и что-то доказывать, что я у него запросил якобы "теоретически невозможно".

Конечно самое коронное из наивностей - это перепутать стадии конвейера и состояния последовательного конечного автомата. Даю ему задачу спроектировать блок, который принимает транзакции TIn и выдает транзакции TOut после применения некоторого алгоритма. Вообще-то такой блок уже существует, поэтому любые попытки Claude сказать "теоретически невозможно" сразу шлются подальше. Если все транзакции потока - простые, то блок должен принимать транзакции Tin каждый такт и выдавать результат Tout каждый такт (после задержки в фиксированное количество тактов).

И что же ИИ делает? Оно строит последовательный конечный автомат с 5-ю стадиями, в котором начинает обрабатывать новую транзакцию только когда, через пять тактов, заканчивает обрабатывать старую. При этом в комментариях оно пишет что это якобы pipeline, то бишь конвейер. Что разумеется ерунда, поскольку в конвейер можно засовывать следующую транзакцию как только предыдущая прошла первую стадию, не дожидаясь пока она докатится до пятой.

Помимо меня в 1996 году я такую же ошибку видел в последнее время у одного хоббиста из Израиля, который стал в своем блоге учить мир как писать процессоры, и в ответ на возражение "это не конвейер" стал оправдываться что это "конвейер" в некотором абстрактном смысле, типа поэтическом. А также у вышедшего на пенсию профессора программирования из Шотландии, который решил на старости лет также поучить людей тому что он сам неверно понимает. Это вообще свойственно программистам на Си которые впервые увидели верилог. Что показывает кому Антропик дает тренировать клод.

Итак, я пишу клоду "это не конвейер, я запросил конвейер". В ответ оно соглашается и меняет в комментариях "pipeline" на "state machine states". Но код остается тот же самый.

На это я ему говорю "каждое процессирование занимает 5 тактов для любой транзакции, я же запрашивал back-to-back для простых транзакций". ИИ в ответ оптимизирует два состояния и далее заявляет, что якобы три такта это "теоретический предел".

И вот тут я обнаружил интересную фичу: если на Клод наорать капслоком, оно перестает трендеть про "теоретический предел" c последовательным многотактовым конечным автоматом - и строит конвейер.

Но если бы с ним сидел не я, а джун после коледжа, он бы поверил клауду про "теоретический предел" и вот так бы и оставил. И что потом делать с результатом? Смириться что телефон выводит на экран игры по одному пикселю в секунду и батарейка здыхает через 5 минут?

Именно поэтому я убежден, что студентов нужно тренировать так, чтобы они умели решать задачки такого типа безо всякого ИИ. А если не хотят - пусть идут в Макдональдс или собирать клубнику на плантациях в Вилсонвилле, замещать там нелегальных мексиканцев, которых Трамп пытается высылать.

Как их сейчас тренируют в вузах? Набивают всякими мусором, который потом превращается в кашу в голове из JK-триггеров и карт Карно. Там и про конвейеры и FIFO есть, они просто висят как сферические кони в вакууме, без понятия как это прилагать к решению задач.

Теги:
+6
Комментарии6

Монитор CAN из Отладочной Платы JZ-F407VET6 и TFT экрана.

Реализовав на этой отладочной плате функционал PCAN, можно получить мощный инструмент анализа CAN-шины на компьютере. Но иногда удобнее использовать автономный монитор расшифровывая пакеты в контроллере и выводя их на экран.

Экран подлючается по SPI, а на плате единственный порт выведенный на разъём SPI2. Также на разъёме платы P3 присуствует питание 3.3В, а кроме SCK и MOSI выведено еще 4 сигнала, задействуем их для CS, DC, RST экрана и на оставшийся сенсорную кнопку для отправки управляющей команды.

Проверяемое ЭБУ передаёт значения напряжения и тока АКБ, следовательно расшифровав их, можно вывести на экран значения в виде стрелочных приборов. Остальные параметры выводятся в окне статуса. В нижней части экрана выводятся принятые пакеты в шестнадцатиричном виде и общий счетчик пакетов.

В качестве основы проекта использовался pcan_pro_x, упомянутый в одной из публикаций Александра посвящённых этой плате, код инициализации и отрисовки экрана любезно предоставил Google Gemini.

Ссылки на матерьялы:

Обзор учебно-тренировочной платы JZ-F407VET6 (или электронная парта)

Переходник с USB на CAN из Отладочной Платы JZ-F407VET6

Теги:
+7
Комментарии10

«Народная отладка» многоядерных приложений ARM Cortex

преамбула:
..попала мне в руки плата с 2х ядерным Cortex-A7

амбула:
Как оказалось, нельзя просто так подключиться ко всем (2м в моем случае) ядрам Cortex-A7 при помощи JLink и IAR

И нельзя останавливать по software breakpoint ядро0 (к которому легко и просто цепляется отладчик IARa), ибо в этом случае ядро1 может налететь на измененный код (breakpoint) и, если не повезет, (что случается, как оказалось, чаще) debug-сессия зависает наглухо вместе с процессором (почему не разобрался пока).

Однако нас это не остановит! Как известно, технология Segger RTT умеет несколько каналов как upStream, так downStream.

Нас в данном случае интересуют up (от нашего процессора к компутеру). По умолчанию их даже и сконфигурировано 2!. В памяти они расположены независимо, каждый имеет свой буфер и свои указатели голова-хвост.

Эврика! Пишем простейший враппер на SEGGER_RTT_WriteString:

unsigned int RTT_WriteStringEx(unsigned char* str)
{
unsigned int rc=0,bufN=getCPUID();
if(bufN<SEGGER_RTT_MAX_NUM_UP_BUFFERS)
{
rc=SEGGER_RTT_WriteString(bufN,(const char*
)str);
}
return(rc);
}

Все, что он делает, запрашивает номер ядра на котором работает ( вызовом getCPUID() ) , и отправляетстроку в соответствующий буфер. Таким образом, нам не нужно заботиться о взаимоблокировках при вызовах WriteString из разных ядер.

Со стороны компьютера поток rtt0 смотрим, как обычно, RTTViewer'ом, поток rtt1 он не умеет к сожалению, поэтому используем JlinkRTTLogger.exe (его путем нехитрых танцев с бубном можно направить в консоль)

И вот такую красоту получаем на экране:

PS. Останавливать ядро0 (к которому, как мы помним, подключен наш отладчик IARa) можно!
там где код гарантированно выполняется на ядре0, что можно обеспечить в случае режима SMP заданием affinity_mask при создании задачи rtos.

PPS Данный прием может пригодиться и для отладочной печати, например, из прерывания.

PPPS Вопрос, сколько потоков upStream умеет RTT? Мне пока хватило 2, но, видимо, скоро захочется 4 или 5.

PPPPS "Антинародная" отладка выглядит сильно круче. В кустах случайно оказался рояль, причем не меньше, чем Беккер. Я говорю про связку IAR и IAR i-Jet TRACE. Полноценная отладка обоих ядер, с раздельными старт-стоп ядер, окна регистров.. Но там нет RTT. Хотя и это нас тоже не остановит!.. Продолжение следует

Теги:
+9
Комментарии0

Моя реакция на новость "Сочинский филиал РУДН первым в России отменил дипломные работы из-за нейросетей":

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

И экзаменционные лабы типа “покажи-ка как ты делаешь семиступенчатый синтез органического соединения с бумажным учебником и бумажным же справочником в руках”. Для тех кто такого не делал: это на самом деле очень творческое задание, требует тонкой наработанной упражнениями интуиции о побочных эффектах ~тысячи реакций из учебника Vollhardt & Schore, который используется в американских вузах. И карты местности органических соединений в голове.

При этом домашние задания нужно конечно же раздавать, но оценки за них не ставить. Если студент или школьник хочет их делать, не подглядывая в ИИ - хорошо, молодец, тем самым он себя натренирует, будет хорошо чувствовать на экзамене и в будущей профессии. Не хочет - тоже хорошо, получит кол на экзамене, вылетит из вуза, меньше нагрузки на систему образования. Пусть идет в “ИИ-университет”, где за значительные родительские деньги получает “ИИ-диплом” который будет рассматриваться работодателями как филькина грамота.

При этом разумеется из вузовских программ нужно убрать всякие скопившиеся там ветхости. Например мне в 2015 году декан вуза из Поволжья жаловался что министерство образования требует от них учить студентов микроконтроллерам на основе КР1816ВЕ48, советского аналога Intel 8048, предшественника Intel 8051. Эта фиговина из 1976 года использовалась вроде в клавиатурах ранних IBM PC.

Тут проблема даже не в том, что этот микроконтроллер старый - есть куча полезных для целей образования старых компьютеров, например CDC 6600 из 1964. Проблема в том, что 8048 ничего такого интересного не иллюстрирует, что можно проиллюстрировать на современных актуальных RISC-V микроконтроллерах. А вот в CDC 6600 есть в довольно чистом виде идея out-of-order scoreboard (внеочередного выполнения инструкций), которая актуальна и для современного проектирования, вместе с алгоритмом Томасуло из 1967 года (IBM System/360 Model 91). Томасуло учат во всех серьезных американских вузах, и даже ИИ вставляет их в резюме, которое оно пишет студентам.

Я бы на месте российского министерства образования требовал от вузов быстро повнедрять курсы программирования встроенных систем с российскими RISC-V микроконтроллерами К1921ВГ1Т от НИИЭТ и Baikal-U от Байкал Электроникс. Они уже человеческие по мировому гамбурскому счету (то есть это не ухудшение по сравнению с преподаванием западных STM32 или ESP32), их можно привязать к курсам компьютерной архитектуры на основе RISC-V, и это связка вузов с промышленностью. Учить на них также какую-нибудь российскую RTOS итд.

Теги:
Всего голосов 25: ↑23 и ↓2+28
Комментарии29

Недавно я работал над встраиваемой системой, где на FPGA крутится EKF и немного управляющей логики. Кодировать такое на RTL — занятие в лучшем случае неблагодарное, поэтому я обратился к HLS (high-level synthesis) и стал смотреть, что предлагает индустрия.

У меня уже была довольно обширная обвязка для моделирования и верификации на питоне, поэтому в идеале хотелось чего-то, что принимает его напрямую, желательно с минимальной адаптацией: скормить инструменту нужные куски моих моделей и сразу получить рабочий RTL на выходе. Ещё хотелось плавающую точку. Добавлю, что у меня используется Lattice ECP5, а значит Vitis и вот это всё отпадает, так что я смотрел в сторону вендор-независимых инструментов.

Те, что умеют переваривать питон, есть, но на практике они, честно говоря, малопригодны — разве что для очень узкого набора задач. Я тестировал Polyphony, PyLog, Allo+XLS, Allo+Vitis (тоже мимо из-за Lattice) и Veriloggen. Они работают в том смысле, что переводят какой-то питон в какой-то RTL, но не в том смысле, что можно получить что-то практически пригодное, если нужно собрать, скажем, фильтр Калмана или хотя бы базовый ПИД-регулятор. Есть и мощные инструменты (XLS, Bambu и прочие), но они не поддерживают питон, плюс к ним есть ряд вопросов (особенно по части ECP5), о которых я как-нибудь расскажу отдельно.

Я сделал Holoso: https://github.com/Zubax/holoso

Лично для меня это важная вещь, потому что она уже позволила сильно ускорить мою работу. Возможности сейчас в основном определяется моими насущными нуждами, но всё это расширяемо, и любой вклад приветствуются.

Подробное описание того, как оно устроено, есть по ссылке, но основная идея такая: парсим питон, строим граф потока управления, определяем, какие операторы нужны, конструируем минимальное специализированное VLIW-ядро, планируем микрокод (полностью статически, чтобы ядро оставалось простым) и генерируем Verilog вместе с дополнительными артефактами вроде Cocotb и отчётов. В комплекте есть примеры.

Я уже прогнал бенчмарки бок о бок с Bambu, XLS, Dynamatic и Vitis — результаты выглядят достойно; напишу об этом отдельно, если будет интерес (пока ещё в работе).

Теги:
Всего голосов 2: ↑2 и ↓0+5
Комментарии0

Как разработать Linux-драйвер реального устройства для платформы RISC-V

Если вы хотите лучше разобраться во внутреннем устройстве Linux и узнать, как его ядро взаимодействует с физическими устройствами, то приходите на бесплатный офлайн мастер-класс YADRO. Вместе пройдем полный цикл создания драйвера дисплея LCD1602 для VisionFive2: от теории до добавления новых функциональных элементов и запуске на одноплатнике.

Что будем делать:

  • загрузим информацию о дисплее в ядро через Device Tree Overlay;

  • выведем текст на дисплей через драйвер Linux для embedded-систем;

  • считаем содержимое дисплея из ядра Linux и выведем в консоль;

  • научимся управлять подсветкой и курсором через интерфейсы Linux Kernel Driver;

  • займемся обработкой IRQ по нажатию кнопки;

  • разберем типичные ошибки при разработке Linux-драйверов.

Мастер-класс проведет Никита Косырев, инженер-программист группы системного ПО в YADRO. Никита — энтузиаст embedded-систем и архитектуры RISC-V, несколько лет занимался разработкой драйверов периферийных устройств в ядре Linux. 

Приглашаем инженеров, которые хотят лучше разобраться в низкоуровневой разработке для Linux и особенно тех, кто работает с user space-приложениями. 

Мастер-класс пройдет офлайн 3 июля в московском офисе YADRO, количество мест ограничено. Участие бесплатное, но регистрация обязательна.

Теги:
Всего голосов 14: ↑14 и ↓0+18
Комментарии0

Почему нельзя просто взять и сделать отечественный процессор побольше?

Разработчики “Герои 3” как-то поделились лором: события игры вообще-то происходят в далеком будущем, а вся эта магия и расы - просто забытые технологии.

Я сидел, ковырял на коленке умную лампу и вдруг поймал себя на мысли: для меня-то эта магия давно наступила. Как кусок крепко сплющенного песка управляет сетями, серверами и вообще нашей жизнью?

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

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

Оказывается, сначала из очень чистого кремния(песок буквально) выращивают болванку и режут её на диски (зеркальные блины). Потом по этому блину бьют лазером через трафареты. Выжигают миллиарды транзисторов, тянут медные дорожки и строят нано-город. На один блин влезают сотни процессоров. В самом конце его шинкуют на квадратики, которые называют кристаллами. Дальше кристалл клеят на плату, закрывают крышкой - и всё, процессор готов.

Размер кристалла нельзя раздувать просто так, тут сразу несколько причин.

Экономика и банальная пыль.

Блины на заводах не бывают идеально чистыми. Из одного блина выходит 500 мелких кристаллов, случайная пылинка запорет два-три. Брак копеечный. Но если резать огромные куски, их на блине поместится штук десять. Одна пылинка — минус 10% партии. А если их с десяток, весь блин летит в помойку. Себестоимость такого гиганта просто улетит в космос.

Синдром утюга.

Старый техпроцесс жрет больше напряжения. Размажешь миллионы транзисторов по гигантскому кристаллу и он начнет выдавать сотни ватт тепла. Сработает защита от перегрева, частоты упадут почти до нуля. В итоге огромный чип будет работать медленнее нормального маленького.

Скорость света.

Тут мы тупо бьемся о фундаментальную физику. Чем больше кристалл, тем дольше сигнал идет от одного края до другого. В огромном процессоре ток просто не успеет пробежать это расстояние за один такт.

Ладно, если делать один кирпич бессмысленно, почему не воткнуть в материнку два обычных процессора?

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

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

Я подумал: блин, для наших процессоров это же идеальный путь!

А потом уткнулся в реальность. Чиплеты круто работают, когда ты можешь печатать их мелкими. А у нас заводы вроде “Микрона” уперлись в 65–90 нанометров. Тайваньская TSMC, которая печатала сложную мелочь, маршрут закрыла из-за санкций.

Полез с детским вопросом “почему не сделать побольше”, а понял, что микроэлектроника - это место, где в одной точке бьются лбами физика, экономика и геополитика. Простые решения тут давно не работают.

Кто шарит за железо - как думаете, у нас есть шанс выехать на архитектурных фокусах типа чиплетов? Или без доступа к современным заводам мы так и будем вечно догонять? Залетайте в комменты дебажить.

Дебаж 🐞с ноги 🦶

Теги:
Всего голосов 9: ↑5 и ↓4+2
Комментарии21

На мою воскресную тусовку в Hacker Dojo зашла азиатская женщина по имени Лили и произошло то, о чем я читал в книжке Chip War. В ней есть эпизод, как американские бизнесмены в 1960-е приехали в Юго-Восточную Азию и были потрясены, как просто использовать местных жителей для сборки всего электронного. Учатся мгновенно, делают точно и быстро, и не выпендриваются, как американские рабочие с их дурацкими профсоюзами.

Итак, Лили - программистка вебсайтов, пишет на Java и TypeScript. Никогда в жизни не прикасалась к паяльнику. Пришла на мой митап с запросом “я хочу сделать CPU из микросхем малой степени интеграции”, то бишь рассыпухи из И/ИЛИ/НЕ, D-триггеров, мультиплексоров, 4-х битных сумматоров итд. Как делали в конце 1960-х.

Я ей сказал, что готов помочь ей удовлетворить ее желание, но на это потребуется до хрена таких микросхем. Даже чтобы сделать аккумуляторный процессорик с тремя регистрами (счетчик команд, аккумулятор и индексный регистр). Сначала я показал ей как собирать простые гейты на безпаечной макетной плате, а потом предупредил, что если уставить такими целый стол, то будут все время глючить контакты, поэтому лучше паять.

Лили согласилась, я вытащил паяльник из ящика и показал ей как делать это танцевальное движение: подводим паяльник к пину, прогреваем, подносим проволоку припоя, она плавится, припой стекает в дырку и образует конус, проволоку отводим, потом отводим паяльник.

Затем я вручил Лили паяльник вместе с пробной платой и гребенкой, и не успел я отвернуться, как она сделала ряд конусов припоя вообще без дефектов. Отказалась от очков с увеличительными линзами, они де только мешают. Вот и первый раз с паяльником.

Теги:
Всего голосов 24: ↑24 и ↓0+28
Комментарии2

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

У меня при виде такой информации сразу встает вопрос: а чему там такому учили и как это поможет детям решать задачи в реальной жизни? Я это спрашиваю с позиции человека, который периодически участвует в интервьировании студентов американских вузов на работу проектировать телефоны в Самсунг. Интервьирует кандидата обычно команда из рекрутера, скринера‑инженера, пяти старших инженеров и двух начальников. В отличие от гуманитария Ivan Kurilla, который в некоем интервью рассказывал что в Америке все решает топовый вуз, я знаю из своей практики, что даже если у студента хоть два диплома из вузов в мировом Топ-10, но он не решает задачки на интервью, то он не получит оффера. А вот если хорошо решает, то скорее всего получит. Вуз имеет значение при сравнении двух кадидатов которые решают задачки примерно одинаково.

Вы себе не представляете, какое количество студентов, в том числе топовых вузов, плавает на вопросах типа: «преврати последовательности с битом first в последовательности с битом last». Полная формулировка: на вход цифрового блока приходят последовательности из трансферов данных. Каждый трансфер считывается на положительном фронте тактового сигнала clock, на котором сигнал valid=1. Первый трансфер в каждой последовательности обозначен сигналом first. Блок должен выдавать на выходе такую же последовательность, но маркировать не первый трансфер, а последний сигналом last. Напишите код на языке описания аппаратуры Verilog который это делает«.»

Вот сейчас некоторые комментаторы побежали в ChatGPT и вернутся с репликой «но это же так просто!» Но в реальной жизни кандидат интервьируется у доски (физической, на стене, не виртуальной) без доступа не только к ИИ, но и к любым электронным устройствам вообще. И оказывается, что многим это не просто, топовые вузы почему‑то не научили их решать такие задачки, хотя в программе это есть. Если вдумчиво пройти курс MIT 6.111 или там курс по учебнику Dally & Harting в Стенфорде, то у студента не должно возникнуть проблем с такими задачками. Но они возникают.

Я это все к чему. Никто так и не спросил, а что собственно такое учили в той обанкротившейся школе, что ради этого нужно было снимать замок‑шато во Франции? Чем это лучше помогает скажем решать задачки по геометрии (геометрия тоже нужна про проектировании GPU в телефоне), чем школа в здании бывшего пионерлагеря около сельмага в Новосибирской области? (Я про Летнюю Школу Юных Программистов в Новосибирске если кто не понял намек). Мы в Самсунге кстати сейчас нанимаем на позиции RTL‑дизайнеров — можете присылать мне запросы, если вы решили задачку выше без бегания в ChatGPT и она прошла тест. Тест вот тут (он используется на российской Школе Синтеза Цифровых Схем кстати).

Теги:
Всего голосов 10: ↑9 и ↓1+10
Комментарии12

Я решил собрать гаджет от головной боли

Знаете это чувство, когда всё вроде делаешь правильно: спишь по 8 часов, пьёшь воду, ходишь норму шагов, пульс как у космонавта, а голова к вечеру всё равно гудит и глаза устают?

Я затрекал всё тело, и данных оказалось недостаточно. Поэтому появилась гипотеза: возможно, проблема не во мне, а в моей рабочей среде.

Решил сделать полезную штуку лично для себя: затрекать рабочее место. Форм-фактор: умная настольная лампа.

План на MVP такой: Следим за CO2, влажностью, температурой и освещённостью. Плюс добавил напоминалку поморгать (звучит смешно, но я в фокусе реально перестаю это делать).

И самое спорное это трекать магнитные поля и радиочастоты. Включаю режим конспиролога: а вдруг мои Bluetooth-наушники незаметно варят мне мозг излучением? Наука, конечно, крутит пальцем у виска и говорит, что всё ок, но я хочу собрать свои данные. Надо же либо окончательно успокоиться, либо идти клеить шапочку из фольги.

Рулить железом будет ESP32-S3 дешёвая и холодная, в отличие от Raspberry Pi. А вот думать будет отдельный сервер с языковой моделью. Шутки про «ИИ везде» принимаются, но мне реально нужно, чтобы железка просто говорила по-человечески: «душно - открой окно», а не заставляла меня вчитываться в дашборды.

Детальки заказаны, скоро буду собирать прототип.

Дебаж 🐞с ноги 🦶

Теги:
Рейтинг0
Комментарии3

У меня двойственное отношение к технологическим ностальгантам. С одной стороны, я с большим интересом хожу в музей истории компьютеров в Маунтин-Вью, Калифорния, а также считаю полезным введение небольшого количества исторической интроспективы в образовательные курсы, чтобы понимать истоки ключевых изобретений, например: прерывания (DYSEAC, 1954), внеочередное выполнение инструкций (CDC-6600, 1964), векторные регистры (Cray-1, 1976) итд.

С другой стороны я считаю вредным, когда старперы пытаются учить молодежь на примерах какого-то старья типа PDP-11, 6502 или Z80. Я понимаю что в 1970-х PDP-11 поразила их красотой, но все эти автодекременты с двухадресными инструкциями хорошо вписывались в микрокодовую идеологию своего времени, но не вписались даже в идеологию 1980-х, с статическим hard-wired конвейером. Ну выучил старпер молодежь ассемблеру PDP-11, а как теперь привязать это к созданию конвейерного процессора на верилоге?

Аналогично аккумуляторная архитектура 6502, которая для ностальгантов связана с молоденьким Стивом Джобсом и Apple II - это следствие не только ограниченных ресурсов 1970-х, но и того, что в те времена доступ к памяти происходил быстрее, чем арифметические операции. Только в таком контексте ее стоит упомянуть перед тем как перейти в набору регистров в современном RISC-V.

Я видел как некий прибалтийский университет пригласил к себе европейского профессора из Италии, который стал там учить студентов стоить копии Apple II - способствует ли это подготовке современных проектировщиков процессоров? Имхо пример того, что европейское не значит качественное.

Про Z80 и спектролюбцев я вообще не говорю - там попытки навести косметику на набор костылей в Intel 8080, с косвенной адресацией через конкатенацию 8-битных регистров H и L и прочий маразм. Чистая сублимация по поводу дискотек 1980-х и кучерявых девочек на них которые сейчас стали бабушками.

К чему я все это пишу. Сегодня в некоей ностальгантской группе фейсбука опубликовали пост с картинкой мануалов по 8086/8088, а также про DOS и BIOS. Я там написал что эти технологии были уже устаревшими в момент выхода этих книг в 1980-х. Далее некий немец поставил сердитый несмайлик и вступил со мной в диалог про это самое:

Теги:
Всего голосов 22: ↑19 и ↓3+22
Комментарии15

Конференция Российского Альянса RISC-V «Технологии без ограничений»

📍Москва, МВЦ «Крокус Экспо» в рамках выставки ExpoElectronicа

⏰ вт, 14 апреля 2026, 11:30 (+0300)

💸 Бесплатно

Цель Конференции – продвижение и популяризация архитектуры, развитие экосистемы, внедрение технологии в образовательный процесс, демонстрация готовности некоторых российских RISC-V-решений к массовому внедрению в различных отраслях экономики. Конференция предоставит уникальную возможность прямого диалога между разработчиками, интеграторами и конечными заказчиками.

Что будет:

  • Пленарные сессии с участием представителей Минпромторга, Минцифры и руководства Альянса.

  • Технологические треки Технологические треки: перспективы технологии в мире и России, реализация корня доверия, готовые решения от ЭКБ до ПАК.

  • Панельные дискуссии от CloudBEAR, Байкал Электроникс, Лаборатории Касперского, Positive Technologies, МИКРОН, НИИЭТ, РегЛаб, ОВЕН, ИНКОМСИСТЕМ и других лидеров рынка по темам:

    • Развитие экосистемы RISC-V в России и мире: вызовы и решения

    • Вопросы безопасности и тестирования на уязвимости российских решений

    • Перспективы и планы лидеров ИТ-рынка России

  • Дорожная карта решений Альянса – от электронных компонентов до готовых решений АСУ ТП.

  • Презентацию программы раннего доступа к технологиям DEVBOARDS: подведение итогов 3-го этапа (на микроконтроллере Baikal-U) и запуск 4-го этапа (на микроконтроллере К1921ВГ1Т НИИЭТ).

  • Истории успеха – реальные кейсы внедрения RISC-V-решений на предприятиях.

  • Образовательный трек: проекты Академического комитета Альянса и ведущих вузов России.

  • Презентация программы «Энергия RISC-V» для энтузиастов технологии RISC-V – от студентов до профессионалов-разработчиков.

Подробная программа Конференции доступна по ссылке.

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

Промокод для получения билета на ExpoElectronicа EE26RISCV, получить билет по ссылке.

Регистрация на мероприятие.

Теги:
Всего голосов 4: ↑3 и ↓1+4
Комментарии0

Сегодня директора стратегического маркетинга компании Synopsys спросили, что он думает насчет того, чтобы софтвер его компании писал ИИ? И знаете что он ответил? «Это дело далекого будущего. Для этого требуется математика уровня PhD, а также итеративная доработка на основе проприетарных данных от фабрик микросхем — данных, которые ИИ пока не способен полностью смоделировать. (Пока!)»

Прикол тут в том, что сам Синопсис хайпит вовсю свой ИИ-софтвер для других компаний. А сами, как вы видите, говорят: мы де перейдем на это в далеком будущем. При том, что их софтвер — это просто программы на C++. Я работал в Synopsys, так что я знаю изнутри. Так что не говорите мне, что ИИ якобы уже хорошо пишет на C++ алгоритмически-интенсивные программы.

Для тех кто не в курсе: софвер Синопсиса используют инженеры для проектирования микросхем. В комментариях мой слайд про процесс: код на языке SystemVerilog превращается в граф из логических элементов и элементов состояния (D-триггеров), потом программы размещения и трассировки раскладывают и соединяют этот граф по площадке микросхемы.

От этого трудно отмахнуться! Перед нами цитата не луддиста-отрицателя ИИ, а человека из самого истока всех чипов, которые проектирует Apple, Intel, NVidia, и даже чипов для российких дронов (компании в Зеленограде тоже используют софтвер от Synopsys). ИИ сможет писать такие программы на C++ в Да-ле-ком Бу-ду-щем. Так что в этом году всем нам AGI не грозит.

Теги:
Всего голосов 18: ↑17 и ↓1+20
Комментарии2

Ближайшие события

Привет Хабр!

Помогите добить реверс bike tracker на MC60 + STM32L486 – что здесь за интерфейсы и как лучше подступиться.

Больше фото в конце!
Больше фото в конце!

Есть у меня bike tracker infocar bikeAngel AMB02. Разобрал его и сейчас пытаюсь спокойно, без лома через колено, понять архитектуру платы, интерфейсы и нормальный маршрут реверса. По фото и маркировке пока получается такая картина:

  • модем / GNSS / Bluetooth — Quectel MC60EC3-04-BLE

  • отдельный MCU — STM32L486GT7

  • внешняя SPI flash — Adesto / Dialog AT25DB321E;антенна Antenova A10340;

  • есть SIM-слот, батарейный блок и несколько непонятных тестовых/сервисных точек.

  • Из того, что пока смущает –MC60 и STM32 здесь явно живут как два разных мозга, и я пока не до конца понимаю, кто кого будит, кто держит power sequencing и где именно проходит основной UART.

На плате нет «человеческих» кнопок boot/reset, поэтому неочевидно, насколько реалистично подлезть к MC60 напрямую без плясок с его boot/pwrkey линиями. Не уверен, не зашита ли вся критичная логика именно в STM32, из‑за чего идея «просто заменить SIM и жить» может оказаться слишком наивной.

Что уже удалось идентифицировать по плате:

  • MC60 — сотовая часть, GPS и Bluetooth а STM32L486 — управляющий MCU,

  • SPI flash рядом с белым разъёмом , возможный сервисный коннектор / debug-разъём;

  • батарейный блок выглядит как 1S Li-ion pack на нескольких параллельных банках.

Моя цель сейчас не «ломать прод», а именно картировать железо, найти UART между STM32 и MC60 — понять, где SWD на STM32. Определить, можно ли безопасно снять дамп / хотя бы проверить RDP. Понять, есть ли смысл лезть в SPI flash отдельно да и прикинуть, насколько жизнеспособен вариант со своей SIM и своим софтом. Инструменты у меня пока довольно базовые: паяльник и USB‑UART, нормального анализатора и ST‑Link пока нет. (Заказал себе пока, ST‑link v2 Clone M89 для STM).

Поэтому особенно интересны советы именно по порядку действий: с чего лучше начать, чтобы не убить плату и не потратить неделю впустую.

Ссылка на гугл папку с фото (ибо более одного медиафайла не разрешено, добавлять.)

Всем спасибо!

Теги:
Всего голосов 6: ↑6 и ↓0+11
Комментарии8

Против лома нет приема! Конкурсы по ASIC Design для молодежи станут таким же привычными как математические олимпиады

Наконец-то в России наладили массовый MPW сервис производства микросхем для молодежи! Каждый студент, у которого есть способности к проектированию процессоров, аппаратных ускорителей ИИ, сетевых чипов, может бесплатно участвовать в конкурсе и спроектировать собственный чип. МИЭТ, МФТИ и другие вузы объединили усилия с промышленностью, которая произведет микросхемы для победителей бесплатно. По значимости это как создание системы математических олимпиад в СССР.

Подробности в новостях МФТИ

Мой комментарий:

Обычно студенты изучают проектирование микросхем в вузе с помощью упражнений на симуляторе языка описания аппаратуры SystemVerilog и лабораторных работах с микросхемами реконфигурируемой логики, FPGA. Но в промышленности, для проектирования и производства массовых микросхем, им понадобится изучить маршрут RTL-to-GDSII, понять статический анализ тайминга применительно к технологии ASIC итд. Именно погружению в эту черную магию поможет новый конкурс, в результате которого победители получат сконструированные ими чипы.

Технология ASIC design относится к категории "против лома нет приема". Это способ достичь самую большую производительность в цифровом мире, на пару порядков привышающее то, что можно достичь программированием готовых процессоров. Быстрее - только квантовые вычисления, и то для ограниченных задач.

Именно поэтому магистральные маршрутизаторы, ускорители ИИ, графические процессоры и другие высокопроизводительные устройства стоят именно на ASIC design, впрочем как и частный случай цифровых устройств - процессор общего назначения.

Теги:
Всего голосов 10: ↑8 и ↓2+9
Комментарии0

Оффер для RTL- и UVM-инженеров. 3 шага. 3 дня 

Открываем быстрый найм на позиции RTL-дизайнера и верификатора в команду Semiconductors. Подать заявку можно до 22 февраля.

Кого ищем:

  • UVM Verification Engineers (junior/middle/senior) — UVM-окружения, VIP, SVA, регрессии, анализ багов, работа с RTL-командами.

  • RTL Design Engineers (junior/middle/senior) — разработка сложных ASIC-модулей на Verilog/SystemVerilog.

Как проходит спринт: 

  1. Нужно оставить заявку до 22 февраля и пройти HR-скрининг.

  2. Далее техническое и менеджерское интервью.

  3. И вуаля — оффер у вас на руках. 

Чем занимается команда: fabless-разработкой микропроцессоров на базе RISC-V с полным циклом создания SoC — от архитектуры и собственного процессорного IP до поставки чипов с системным ПО. Решения используются в серверных, телекоммуникационных и сетевых продуктах, системах хранения данных и клиентских устройствах.

Стек и ожидания:

  • Verilog/SystemVerilog,

  • RTL-симуляторы: VCS / Xcelium / Questa,

  • Linux,

  • Git,

  • скрипты для автоматизации: Python / Perl / Tcl / Shell,

  • понимание цифровой схемотехники,

  • база принципов функциональной верификации.

Дополнительные навыки:

  • AMBA / AXI,

  • PCIe / DDR / Ethernet,

  • формальная верификация,

  • FPGA (Xilinx / Altera),

  • C / C++ / ASM,

  • DSP.

Теги:
Всего голосов 11: ↑11 и ↓0+12
Комментарии0

Разработчик создал виртуального компаньона по имени Tiny, «оживив» обычное комнатное растение с помощью нейросетей и набора датчиков. Система постоянно мониторит показатели жизнедеятельности цветка: влажность почвы, уровень освещённости и температуру воздуха. Эти данные обрабатываются через API ChatGPT, который формирует реплики от лица персонажа. Вместо сухих уведомлений владелец получает живые сообщения — растение может пожаловаться на жару или попросить переставить его ближе к солнцу. В проекте есть даже реакция на физический контакт. Благодаря использованию растения в качестве ёмкостного сенсора, Tiny понимает, когда человек касается листьев, и выдаёт мгновенную реакцию.

Теги:
Всего голосов 8: ↑7 и ↓1+7
Комментарии0

Энтузиаст запустил игру Doom на умной мультиварке Krups Cook4Me с сенсорным дисплеем, 128 МБ встроенной и оперативной памяти, Wi-Fi-модулем ESP32 и микропроцессором Renesas R7S721031VZ. Доступ к основному процессору мультиварки исследователь получил через интерфейс SWD. Подключив программатор к сервисным контактам, энтузиаст скопировал содержимое встроенной памяти и на его основе собрал модифицированную прошивку, позволившую запустить Doom. Из-за нестандартного расположения сенсорных элементов управления играть на скороварке в Doom оказалось не особо неудобно.

Теги:
Всего голосов 2: ↑1 и ↓1+2
Комментарии0

Энтузиаст добавил ИИ в умную камеру безопасности с помощью Raspberry Pi и протестировал её работу, переодевшись в вора.

Теги:
Всего голосов 3: ↑1 и ↓2+1
Комментарии2

Нативный драйвер OLED-дисплеев для RP2040

Только что в один из своих проектов на микроконтроллере RP2040 понадобилось интегрировать графический дисплей для отображения погодной информации. Выбор пал на распространенные монохромные OLED-дисплеи разрешением 128х64 точки.

Из плюсов этих дисплеев для меня: высокая яркость и контрастность, простота интерфейса, дешевизна и высокая плотность информации в небольшом размере.

Контроллер у всех этих дисплеев стандартный - SH1106.

Свои проекты я пишу на С с использованием нативной Pico SDK. Поиск библиотеки для нужной платформы на С результатов не дал. Все, что на данный момент есть, - различные ардуино-библиотеки и микропитон.

В итоге было принято решение портировать на RP2040 одну из реализаций для STM32. Эта библиотека умеет рисовать графические примитивы в виде вертикальных и горизонтальных линий, прямоугольников пустых и заполненных, растровых изображений а также есть различные функции вывода текста и числовой информации.

Библиотека позволяет задать разрешение экрана а разворачивать экран на 90/180/270 градусов.

Изначально библиотека включала в 2 шрифта с размерами знакомест 5х7 и 7х10 точек.

Для своих целей я самостоятельно разработал большой шрифт 12х16 точек (на фото он).

Репозиторий проекта: https://gitflic.ru/project/svperchenko/sh1106_for_rp2040. Всем, кому надо, можно пользоваться.

Теги:
Всего голосов 7: ↑7 и ↓0+8
Комментарии0