Search
Write a publication
Pull to refresh
194
0
Павел Локтев @EasyLy

TinyML, исполнение нейросетей на микроконтроллерах

Send message
В целом, тоже неплохо. Но я в тексте отметил. что «Не то, чтобы нерешаемая задача, просто хороший повод изучить UDB». А так — спасибо, запомнил. Хотя бы потому, что STM32F103 — дешевле и проще доставаем. Но использование UDB для некоторых других задач открывает новые горизонты, а на светодиодах просто удобно набивать руку.
Блок UDB (Universal Digital Block) содержит:

1) Две ПЛМ (PLD по-английски, но ПЛМ К556РТ1 и РТ2 даже наша промышленность выпускала)
2) Регистры управления и статуса, либо реализуемый на тех же ресурсах семиразрядный счётчик
3) Блок DataPath, состоящий из пары аккумуляторов, пары регистров данных, пары FIFO, простенького АЛУ и кучки компараторов.

Подробнее — тут www.cypress.com/file/41531/download

То есть, в PSoC нет CPLD. Там есть много PLD, но они образуют не классическую CPLD, а нечто особенное (набор UDB, в состав которых они входят).
Особенности конструкции макетки. Макетка — CY8CKIT-059. У неё USB разъём без оплётки. Земля идёт по тоненькому проводочку. А крокодилом взять не за что — пришлось за корпус ЭВМ щуп землить. Со всеми вытекающими. Когда потом понадобилось снимать более скоростные осциллограммы (играл в управление шаговыми двигателями — проверял, вставляется ли такт при определённых условиях, будет интерес к теме — опишу результаты в отдельной статье) — чтобы уменьшить звон, подключил ещё кабель Micro USB в надежде, что через него контакт земли станет лучше. Не помогло. Оказалось. что у того разъёма оплётка не соединена с землёй тоже. В общем, земля у измеряемой макетки отвратительная. Но для данной задачи — суть и так видна.
Это сделано в разделе «Ссылки на теорию»

Просто статья получилась и так громоздкая. А рассказать, что такое UDB — займёт ещё столько же места. По первой ссылке из того раздела суть UDB подробно показывается.
Спасибо, отличное предложение! добавили в текущую статью и будем добавлять в новые. В старые постараемся тоже со временем внести.
Спасибо! да, на бумстартере, к сожалению, опечатку уже не поправить — придется отзывать проект.
Я правильно понял вашу логику?


Спасибо за вопрос! Я думаю не совсем правильно поняли, попробую исправиться.

Бесплатную ОСРВ получат все. Собственно, сумма, которую мы собираем, не сопоставима с реальной стоимостью разработки продукта. Участие — возможность стать сопричастными к интересному (на наш взгляд) проекту, а для нас — сигнал, что ОСРВ нужна и стоит двигаться в этом направлении.
Спасибо за вопрос! исходники открыты для ознакомления, здесь: www.astrosoft.ru/products/development/rtos-macs (кнопка скачать)
Спасибо! Версия в исходниках для ознакомления здесь: www.astrosoft.ru/products/development/rtos-macs
Но лицензия пока не разрешает использование в любых других целях, кроме ознакомления, если вы об этом.
Здесь находится перевод первой и второй статей: habr.com/post/414093
Если уж переходить, то на ОСРВ МАКС, так как я являюсь автором статей по работе под ней. Разумеется, под PC она ещё не сделана (и даже не планируется), но в каждой шутке есть доля правды.

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

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

Зачем H87 — железо было спущено сверху. Не прокатило — спустили другое. Даташит изучен вдоль и поперёк. Но, собственно, вопрос решился сменой мамки.

Корпус — самодельный. Фото публиковать нельзя. Это ремонтный комплекс. По этой же причине все остальные ограничения на выбор железа. Оно должно быть однородно, оно должно быть хорошо известно. Оно не должно быть ASMedia, так как у неё имеется хорошо изученный баг во время посылки некоторых нестандартных команд.
Настройки чипсета видны прекрасно. Буферизация ОС отсутствует. Я использую режим Common Buffer DMA. Всё управление железом — с уровня User Mode (кроме прерываний, но я их пробовал отключать и работать по опросу). Всё там прекрасно разбирается. Но увы, три порта настроены полностью идентично, а ведут себя — по-разному. Четвёртый — он стоит особняком, так как воткнут в слот, предназначенный для видеокарты. А три — идентичны.
Чип — на то и чип, чтобы в нём всё бегало по старым, не добрым параллельным шинам. В моей любимой Альтере сразу после приёмников стоит десериалайзер (с эластичным буфером и ловлей примитива ALIGN). Ну, и перед передатчиками тоже сериалайзер стоит непосредственно. До того — всё в параллельном коде. Я видел наработки знакомых на Xilinx — тоже всё в параллельных шинах реализовано в чипе. Последовательная — только наружу выходит. Рисунок Figure 2-1. PCH Interface Signals Block Diagram (not all signals are on all SKUs) из документации на чипсет также подразумевает общую внутреннюю шину.

Так что всё на иерархии верно. Когда появляются дополнительные мосты — они там видны, просто я сейчас не могу скриншот снять. А с утра — вообще на самолёт. Так что если Вам надо картинку со сложной иерархией мостов — могу постараться в воскресенье снять. А так — поверьте на слово, что тут всё просто идёт. Когда ещё мосты влезают — они там видны. Тем удивительнее тот факт, что три слота включены идентично, а поведение — разное. Но, собственно, причина — наверняка выявлена.
А как надо писать?
Да, я понимаю в PCIe только чуточку. Вот SATA и SAS — делал ядра под Альтеру. Так что как идёт гигабитный сигнал — представляю.
Но касаемо портов моста… Вот у нас Intel® 8 Series/C220 Series Chipset Family Platform Controller Hub (PCH). Три карты подключены к линиям, выходящим из него.

Вот в нём имеются устройства, которые в документации называются D28:F0/F1/F2/F3/F4/F5/F6/F7. На иерархии в основной статье видно, что платы воткнуты непосредственно туда. Никаких мостов между ними нет. У меня есть плата, где имеется промежуточный мост, но это — не тот случай.

Ещё там сказано The PCH provides up to 8 PCI Express Root Ports, supporting the PCI Express Base Specification, Revision 2.0. Each Root Port x1 lane supports up to 5 Gb/s bandwidth in each direction (10 Gb/s concurrent). PCI Express Root Ports 1–4 or Ports 5–8 can independently be configured to support multiple port width configurations.

и потом идёт масса таблиц с возможными конфигурациями. Можно пускать линии на разъёмы. Можно — на USB 3.0 контроллеры. Можно — на сетевухи. Можно — менять ширину на разъёмах. Таблиц много, сюда приводить не буду. Но никаких внешних мостов — не требуется. Всё живёт в чипсете. И три разъёма идут — в него. Четвёртый — на скриншоте видно, что идёт мимо. Но три — в него.

Собственно, если я брежу — так разъясните детали. Делов-то. Пока я не вижу бреда. Но на то он и бред, чтобы несущий его, не видел ничего такого.
При установке ОС — синие экраны. Ранее установленная — работала и не висла.

Я тут в командировке, так что возможности по добыванию железа ограничены тем, что есть у Заказчика. Был i3 — поставили. А так — Заказчика наука вообще не интересует. Нашли решение, плюс доказали повторяемость проблемы на старом железе — мне вообще перестали железки на пробу давать.
Я же написал в основном текста, что драйвер — наш. Так что тоже можно порыться.

Information

Rating
1,483-rd
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Registered
Activity