Обновить
45
0
Константин @jakushev

embedded разработчик (bare-metal)

Отправить сообщение

1000 извинений, был крайне не внимателен и перепутал Вас с автором поста... Не судите строго. Просто в предыдущих публикациях от Вас было тоже много дельных комментариев, и при первом взгляде на ник, как то вырвалось "arm", но это уже моя профдеформация...

Спасибо за ответ и 1000 извинений, понимаю, что не булькают, перепутал ответ пользователя "amartology" с Вашим. И предыдущий комментарий был адресован Вам. Максим, Валерий, извините, впредь буду внимателен и не идентифицировать пользователя по первой букве ника...

Спасибо за уточнение. Да, часто так бывает, что на бумаге все гладко, а мелкие нюансы портят всю картину. Прискорбно, что столько усилий, можно сказать, пропадают зря, но не могу с Вами не согласиться. Порой дешевле и разумней вовремя "закопать стюардессу". Возможно, даже не закапывать, а, снова же, на мой взгляд, немного упрощенный VLIW неплохо бы чувствовал себя в специализированных системах жесткого реального времени. Где важна не супер производительность, а детерминированное время исполнения инструкций. И да, а что там с асинхронными прерываниями? Как процессор "узнает", когда разорвать команды и перейти в обработчик? Прошу прощения за терминологию, не процессоростроитель, но если RISC/CISK, пусть внутри и разгребает поступающие команды на микро операции, он "знает", что вот этот "mov" пришел последним, далее как разработчик микроархитектуры решит, флашить конвертер и выполнять прерывание или отработать то, что есть, параллельно загружая код обработчика в кэш, то как понимаю, в VLIW, допустим, условный "LD" может начаться, а завершиться через 50 - 100 тактов, и где рвать выполнение программы - неизвестно...

Максим, спасибо за статью. Но у меня остался один вопрос. Как то так получилось, что буквально месяц назад, в одну бессонную ночь, ко мне пришли флешбеки из конца 90х - начала 2000х. Как раз у университете учился. И тогда на "широкую команду" чуть ли не молились, предрекая ей светлое будущие. Которое не наступило. И вот в разговоре самого с собой, решил проанализировать ситуацию. Пришел к выводу, что VLIW, помимо расхода памяти, что критично но не фатально, просто не может в нормальную JIT компиляцию, на которой базируется почти вся современная инфраструктура прикладного программирования. Но вот чего не могу понять, так это ограничений на максимальную тактовою частоту. Упрощенно, VLIW процессор - это набор относительно простых IP ядер на стероидах. Ни модуля предсказаний, ни сложного дешифратора команд там нет. По сути, сама команда описывает что то вроде "подключи вход А АЛУ1 к Р1, вход Б к Р2, выход к Р3 и выполни операцию сложения". Конечно, не все так просто, но в целом - смысл такой, или я не прав? Вот что ограничивает частоту? У меня только одна мысль - сложность или невозможность реализации относительно длинного и эффективного конвейера + жесткая связь с компилятором для его эффективной утилизации. Просто интересно мнение специалиста.

Совсем не надуманная. В доковиде ездил по 1000км, просто не останавливаясь, то есть, только минут на 5 для дозаправки. Были "броски" Москва - Лейпциг, Москва - Плзень, Берлин - Москва за один присест. Конечно, это уже из разряда экстрима, по 2500 - 2800км за раз в одиночку, но, учитывая, что многие в дальние поездки едут с 2мя водителями, такие вещи вполне реальны. Но даже если взять обычные для многих поездки в 1000км и идеальный пробег "электрички" на одной зарядке, все эти 400 - 500, не более, чем реклама, то надо будет выполнить минимум 3 остановки пусть, в идеале, по 30 минут каждая, это уже +1.5 часа на маршрут. Реально же, учитывая что электрозарядок на трассе не так много, это уже вылезает минимум в 3-4 часа простоя (из отчетов по поездкам Москва - Питер на Тесле). Добавлять к 8-9 часам еще 4, ну не совсем красиво получается.

Работа выполнена колоссальная! Будучи сам в теме, знаю, о чем говорю. Но позвольте покритиковать. Первое, это какова ниша Вашей разработки? Если верно понял, то это - управление "кастомными" моторами, а не замена штатного блока на Ваше изделие? Второй вопрос с надежностью. Уж какие то совсем не automotive компоненты используются. Снова же, если цель - гонка, вполне нормально, но на постоянную эксплуатацию я бы не стал так рисковать. Ну и по подходу, снова же, если двигатели доработаны, возможно не ЭСУД надо адаптировать под мотор, а мотор под ЭСУД? По крайней мере такое решение применяется в профессиональных тюнинговых наборах. Снова же, база - это блок на 6 цилиндров, а комбинируя количество блоков добираем нужное. По крайней мере так сделано на Вейроне для их W16. 2 серийных блока на 8 цилиндров, синхронизированы между собой. Ну и я бы еще добавил FPGA для реализации синхронизации всего и вся завязанного на КВ, в том числе аппаратного расчета момента впрыска и зажигания. Много головной боли снимает с программной части...

Лет 20 назад делал такой проект — замена первичных часов на предприятиях. На stm32 и двухстрочный lcd индикатор.

Счастливый Вы человек. 20 лет назад я делал первые робкие шаги в барэметал, на PIC16Cxxx (OTP). И отлаживал УФ лампой... Благо на работе был куплен дорогущий аппаратный эмулятор, один на всех... Вот на нем отлаживать - одно удовольствие. А не стирать кристалл 40 минут...

А какое отношение приемный экзамен имеет к ЕГЭ? Поступал в ВУЗ еще за долго до ЕГЭшных времен, так была точно такая же форма, только ответы не вводили «в машину», а писали на листочке в табличке. Варианты заданий тоже были разные, выдавались так, чтоб списать у соседа не получилось. Да что там я, мама когда в 70х поступала — формат тот же. И никто не будет смотреть при проверке дальше заглавного листа с табличкой…
Вставлю свои 5 копеек. Лет 15 назад, занимался автоматизацией тестирования серийного производства. Это сотни тысяч изделий в месяц. Софтом и хардом. Механикой занимался высококлассный инженер — конструктор. Так во всех контакторах использовался поликарбонат. Крайне живучий материал (100.000 тестов — далеко не предел, учитывая, что из него и механически нагруженные узлы были сделаны). Единственная проблема — точно нарезать детали конструкции было очень дорого (самое начало 2000х). Сейчас же услуги по резке выполняют множество компаний, вроде как по доступным ценам. Может в эту сторону посмотреть автору, точнее и надежнее, чем на 3D.
За ностальгии пост спасибо, но пару «НО»:
Он работает немного медленнее, чем компилируемые языки (например, C).
наверное, имелось ввиду нАмного?
И как можно забыть про RANDOMIZE TIMER, любая бейсиковская игрушка с этого начиналась.
Тут и тоже тупанул немного, но, похоже, автор просто плохо сформулировал мысль. Идея в том, что сама запись, упрощенно, состоит из 3х частей. Трансфер данных от хоста к контроллеру накопителя и помещение страницы в буфер ОЗУ SSD, трансфер данных из буфера контроллера в буфер самой микросхемы NAND и, собственно, сама запись из RAM буфера микросхемы NAND во flash. Так вот, как только накопитель получает данные из хоста и помещает в свой буфер, накопитель рапортует о завершении транзакции записи, для мелких транзакций — выглядит как моментальная запись, для крупных — как только буфера ОЗУ накопителя будут исчерпаны — появляются реальные задержки на транзакции… Прошу прощения, тоже кривовато сформулировал, но думаю, саму суть смог пояснить. (А для чтения — понятно, что скорее всего придется читать из физической flash, если только данные не буферизированы, вот от туда разница по скорости рид / райт операций)
Ну для меня это не проблема, так как я — не админ, а поддерживать 4 компьютера не отнимает много времени. Да, со многими вещами из Вашей статьи согласен, но… Допустим, кто то сделал такую систему, где есть унификация, подобна той, что в MacOS. Вот прям идеальную, все конфигурируется в едином приложении, забыли про поддержку >1 пользователя, только одно окружение рабочего стола, только один магазин приложений (привет Андроид). Вопрос, а каким пользователям она будет нужна? Она не даст нового положительного опыта, по сравнению с той же Виндой, а для тех 2% не будет интересной, так как убьет самое главное — гибкость. Тут главный вопрос, а зачем обычному пользователю Линукс на десктопе? Что он даст? Учитывая, что цену Винды уже закладывают в оборудование.
Но пока ядро и все накрученное вокруг него требуют внимания пользователя — ему не пофиг, на какой системе он работает.
Вот тут и проходит грань между простым и продвинутым пользователем. Я же упоминаю именно обычных, как моя жена, мама или тети из бухгалтерии, которым важен именно результат, будь то просмотр котиков или заполнение отчетности. Эти пользователи, далее чем нажать иконку в менюшке, с системой не взаимодействуют, будь то GNU/Linux или Windows, будут просить помощь из вне для устранения неполадок или установки ПО / оборудования. Есть куча тюнов рабочих столов, где окружение будет мимикрировать хоть под WIN10, хоть под MacOS. Есть продвинутые, тем да, в чем выучились, там и удобнее. Тут дело привычки и, отчасти, «религии». Основные участники священных войн. Ну а профи сами хорошо знают, где и что уместней. Один знакомый на работе рулит серверами под «Красной Шапкой», а дома — Винда, ибо игрушки. У меня — на оборот. Винда на работе. Потому что так принято. И абсолютно ненапрягает. Кроме "./" и ".\", вот это реально бесит…
К сожалению, не все. Мелкая умудрилась поскакать на ноуте, сломав тач, правда, тогда ей и 2х не было, а жена недавно весь свой архив наработок удалила, и вот в 3 часа ночи спрашиваю у Гугла, «а как восстановить удаленные данные на ext4fs?» Хорошо что обычный винт, trim не поддерживает… А так — да, проблем много меньше стало.
Статья, все таки написана со стороны администратора и продвинутого пользователя. По этому вопрос надо ставить чуть иначе — «Что получит (обычный, далекий от IT) пользователь при переходе на GNU/Linux, и что получит сообщество, захватив большой процент десктопов?» Ответ, ИХМО, очевиден. Ничего. Пользователь не работает с ОС, он работает с софтом. По этому ему все равно, что «под капотом», будь то FreeBSD или Win. Если компьютер рабочий — решает работодатель, что использовать, домашний — браузеры и текстовые редакторы есть в любой ОС. Производители ПК почти на все устройства предустанавливают Windows (снова же, простой пользователь купит или готовый ноут или системник, не будет замарачиваться со сборкой из компонентов), по этому смысл все сносить и ставить GNU/Linux нет, да и пользователь это не умеет. Сообщество же, получив диктатуру пользователя / менеджера, как и упоминалось в статье, потеряет интерес к проектам или форканет, как было с несколькими проектами, где появилась приставка «Libre». Ну а среди ITшников, спор, что лучше, так это моветон…
Да, что касается Линукса и домохозяйки — вполне рабочий кейс, проверенный на жене и дочке. Сломать что либо сложно, работает надежно.
Просто огромнейшее спасибо за проделанную работу! Понятно, что GPIO были задействованы только для демонстрации работы с ними, по этому интересно, этот проект задумывался для саморазвития, в рамках разработки материалов курсов, или портфолио?
Прошу прощения, не прав, снова терминология. Понял что «философия» от {слова} «физика». Бывает, говорю, что уже спать собрался, котелок плохо варит.
Уже скоро спать пойду, отвечу только на это:
Философии от физика, заметьте.

Филосо́фия (др.-греч. φιλοσοφία дословно «любомудрие; любовь к мудрости»)
Фи́зика (от др.-греч. φυσική — «природный» от φύσις — «природа»)
ХВАТИТ так ЛАЖАТЬ, ну честно, понимаю, если у вас возраст честно указан, то молодость, гормоны играют, спорить охота, сам таким был. Но честно, прежде чем писать, загуглите. Без обид…
Веб камеры у меня нет:) Так что — нет, не угодили.
У сознания есть вполне материальная «матрица» — нервная система. Обратного пока не доказали. Пример про файл уже приводил, могу привести пример с программой или нейросетью. Информация содержится на материальном носителе, обрабатывается — тоже.
Ну, Макс Тегмарк бы с вами поспорил, например. У него вообще все что существует — это математические объекты, а все остальное, в том числе материя — их проявление.
— из области философии…
За сим, да позвольте попрощаться…

Информация

В рейтинге
Не участвует
Откуда
Минск, Минская обл., Беларусь
Дата рождения
Зарегистрирован
Активность