Как стать автором
Обновить

ПасТильда: ещё одна прошивка

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров5.1K
Всего голосов 12: ↑8 и ↓4+7
Комментарии53

Комментарии 53

В чем прикол таких упоротых блок схем? Разные цвета, куча надписей разного размера, куча какой-то бесполезной информации, где такому учат?

В той статье правильно заметили, что эти блок схемы скорее первый этап при подготовке технического задания. Но даже для этой стадии они слишком перегружены и их невозможно использовать. В той же статье были показаны адекватные примеры из Altium Designer с иерархией листов, которые намного удобнее использовать.

Впервые стыдно за мою Альма Матер. Тридцать лет назад там учили тому, как разрабатывать чипы и мы лишь немного отставали от США.... и вот до чего докатились!

Залог успешной разработки это качественная документация.

Вот какая схема информативнее: та, что слева STM32F407xx или та, что cправа К1986ВЕ1QI? Какую схему быстрее поймет программист, чтобы написать firmware? Вот и я того же мнения.

Почему на русские микроконтроллеры надо добывать инфу как породу на золотых рудниках, а для STM32 всё на поверхности?

Тем не менее, мне МИЭТ(овских) знаний хватило, чтобы написать прошивку второго поколения для Пастильды.


Тридцать лет назад там учили тому, как разрабатывать чипы и мы лишь немного отставали от США.... и вот до чего докатились!

@progchip666 вот Вы как выпускниr тех "славных лет" можете нарисовать блок-схему процессора Cortex-M4 до уровня ALU?

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

Я не собираюсь идеализировать СССР, но факт остаётся фактом. "Большие компьютеры" в 60-70 годы были на уровне Западных, а в чём то даже то лучше. Потом началось сначала отставание, далее уже копирование, которое отставание усугубило. Дальше персональные компьютеры и соответственно массовое производство. Рынок СЭВ был слишком узок для конкуренции с Западным Миром. Последний гвоздь в гроб процесса деградации забило заточка на нужды "оборонки".

Самое печальное, что сейчас пытаются во многом повторить тот порочный опыт и выехать за счёт производства для нужд вояк. Как и в прошлый, ничем кроме катастрофы это не закончится.

Не могу. Во времена моей учёбы не было подобных ядер.

Вот. То-то. Получается уже в те времена было тоже низкопробное образование, раз выпускникам не хватало знаний понять процессор архитектуры ARM пятилетней давности 1985года.

Во первых я поступал в 1983 году.

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

В третьих СССР была закрытой страной, а интернета не было и в помине в те времена.

В четёртых ровно в 1983 году за рубежом стартавала разработка ARM ядра, ну и наконец первый серийный ARM6, появился лишь в 1992 году. Так что вот этот фуфловый скан показывайте более достойным и благодарным зрителям - ардуинщикам за чашкой пива и не смешите мои тапочки.

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

Кстати, я был в последней группе, которая на военной кафедре изучала технику память в которой была на ФТЯ построена! И это в то время, когда в том же МИЭТ уже стояли ДВК - персональные компьютеры полностью собранные их отечественных компонентов кстати. Пусть даже архитектура процессоров их была скопирована с PDP-11. Можно сказать это прообраз современных RISK процессоров. Мне она куда больше чем IBM нравилась...

Во первых я поступал в 1983 году.

Хорошо. Но после выпуска были еще и 199x, 200x, 201x. Достаточно много времени чтобы прочитать datasheet.
ARM-Cortex-M распространился по всему миру.
Сейчас ARM Cortex-Mxx программируют как российская школота из кружков робототехники 8-го класса так так и инженеры советского периода.

И те и другие не понимают устройства ядра ARM-Cortex-M.
Так что ли?

В не то что кортексов на нашем рынке не было - зайлоги 80 были в ходу до середины 90. Американцы и евреи как ни странно до сих пор используют 81 архитектуру в своих разработках!

Последнюю прогу на ассемблере я где то в начале 2000 написал.До этого была достаточно сложная разработка микроATC на "микрочипах" А в 2004 уже во всю продавал первые по настоящему массовые ARMы в России из серииLPC210x с ядром ARM7TDMI-S. Тогда ещё активно разбирался с их устройством на уровне ядра.

Сейчас вообще не вижу в смысла опускаться до такого уровня абстракций, когда программируешь на Си . Более 90 процентов задач вообще с помощью HAL решаю. Прямое обращение к регистрам только в случае когда надо хитро сконфигурировать периферию (вот сейчас занимаюсь задачей детектора сигналов с ФЭУ, применял) или приходится работать на грани быстродействия микроконтроллера.

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

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

 Нас учили разработке топологии на примере логических микросхем. Максимум памяти.

Это просто смешно. С такими знаниями даже ABS не спроектировать.

Смейтесь, главное не во время еды. Плохо может закончиться

Какие ABS в 1983 году, когда я поступал в МИЭТ, а программа обучения была естественно ранее разработана?

Вы вообще во времени ориентируетесь хоть немного?

Не говоря уже о том, что я учился в группе, которая готовила технологов. Была другая группа, которые касались не только процессоров, но даже многопроцессорных систем кстати.

Советское образование считают хорошим потому что
a) конструкторов учили определять диаметр труб на ощупь,
b) инженеров перемножать трехзначные hex числа в уме.

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

Так что ли?

Сегодня же с Aliexpress очевидно, что навыки “a” “b” гроша ломаного не стоят.

Подозреваю, что если бы CCCР просуществовал еще 30 лет, то сейчас бы в МИЭТ учили штрих/QR коды распознавать на глаз.

Впервые стыдно за мою Альма Матер.


Как говорил наш преподаватель схемотехники про ВУЗ "национальный, московский, электронный, трижды краснознаменный .."

А мне нравится!
Сам немного разрабатываю рисую/паяю не сложное и такое примерно как дополнение к основной документации - рисую вручную.

тут замечено и более спорное, но возможно, тоже кем-то востребовано

И это правильно.
Не всё понимают эти навороченные принципиальные схемы на 40-100 страниц.
Нужны, как говорят американцы, "уровни абстракции" (abstraction levels).

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

Тут железо безопасность гарантирует.
У Pas r1.1 нет никакого wireless сonnectivity.
SD-карту Вы вообще ставите какаю сами выбирете.
Ну что плохого тут может прошивка сделать?

Очень много: оно же определяется в системе как клавиатура, подключенная к компьютеру. Можно, как минимум, запустить консоль и ввести парочку интересных команд. Можно прикинуться сетевым устройством RNDIS и отправить файлик со всем списком нажатых клавиш в сеть.

Проишвка может скооперироваться со злодейским приложением. Например, это может быть игра на веб-сайте, где игроку надо уворачиваться от чего-нибудь, нажимая клавишу Caps Lock. Прошивка обнаруживает злодейский паттерн мигания светодиода на клавиатуре и начинает печатать в "игру" все секреты, а Caps Lock используется для flow control.

Кто-нибудь понял, что имеет в виду @kmeaw?

Простите, а что даст компрометация файла? Для этого нужен еще какой-то модуль на компе например.

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

Хорошо, согласен.
Я готов дать *.elf. Вы сможете посмотреть еще названия функций.

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

Я в согласен выдать сорцы некоторых конкретных программных компонентов Пастильды.
Какой программный компонент Вас интересует?

Почему просто не выложить исходники на гитхаб?

Там есть некоторые программные компоненты с моей нынешней работы.
Было бы нездорово выявлять их.

А Пастильда это чисто рet-проект, который живет на кодовой базе.

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

Почему бы тогда не заменить эти компоненты "с работы" чем-то другим?

Хороший С-код может быть написан одним и только одним способом.

Теперь если написал что-то для одной компании, всё, на всю жизнь нельзя писать такой же хороший код? А если задача решается точно таким же образом всегда? А если я написал отличный цикл for, мне для других только while?

Вам не обязательно даже покупать именно оригинальную Пастильду Pas~ r1,1 за 5k RUR. Можно взять отладку Olimex-STM32-H407 (19.95 EUR=1 626 RUR), накатить на неё мою прошивку и пользоваться менеджером паролей. Купить Olimex-STM32-H407 можно тут https://www.olimex.com/Products/ARM/ST/STM32-H407/open-source-hardware

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

Кроме того, беглый взгляд по нескольким исходным файлам оригинального репозитория показывает, что авторы используют лицензию GPLv3. Это вирусная лицензия, обязующая раскрывать исходники тех, кто использует этот код и распространяет его (см. например сюда: https://fossa.com/blog/open-source-software-licenses-101-gpl-v3/)

Верно, но автор написал свою прошивку, без использования оригинальной. Если задействовано только железо pas~, должен ли автор раскрыть код? По мне, закрытость прошивки делает её бесполезной для всех кроме автора.

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

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


В аutomotive вам тоже никто не даст прошивку ,например, для ABS.
Хотя устройство тоже отвечает за безопасность.

Аналогия полностью некорректна.
1) речь про разные безопасности, safety и security.
2) за работу ABS отвечает производитель автомобиля, имеющий репутацию и возможность предъявлять претензии при некорректном функционировании устройства. Создатель Пастильды тоже имеет репутацию, кроме того, у меня есть возможность, благодаря открытости устройства и софта, оценить функционирование устройства.@aabzel, при всём уважении, репутации не имеет.

Создатель Пастильды тоже имеет репутацию

Тогда остается пользоваться оригинальной прошивкой с её 16ю косяками
https://habr.com/ru/post/694970/

Хочу такой. 8 паролей достаточно.

У Echo KeyLLer неудобный.
--нужен отдельный USB порт
--всего 8 паролей
--нет опций вставки (логин и пароль или только пароль)
--конструктив таков что не во всякий USB пролезет
--нет SD-карты

Берите себе лучше Пастильду.

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

В плате Pas~ r1.1 отсутствует пьезо излучатель. А кнопок вам думаю хватит. На клавиатуре их 110 штук.

Ну и ладно, я построю свою пастильду с блэкджеком и музыкой!

Ок. Держите меня в курсе.

я построю свою пастильду с блэкджеком и музыкой!


Тогда вам придется вести разработку на отладке STM32F746G-DISCO

там как раз есть 2 USB SD-card и DAC (WM8994ECS/R U11) для воспроизведения песенок

Ну и ладно, я построю свою пастильду с блэкджеком и музыкой!


@zprsto, как Ваши успехи с созданием своей Пастильды? Ведь прошло уже 9 месяцев.

Не ясно, в чём страдание по UART, если есть разъём программатора?

Не ясно, в чём страдание по UART, если есть разъём программатора?


Объяснение тут.
https://habr.com/ru/post/694408/

Не ясно, в чём страдание по UART, если есть разъём программатора?

Ответ тут https://habr.com/ru/post/247507/

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории