Горячее
Лучшее
Свежее
Подписки
Сообщества
Блоги
Эксперты
Войти
Забыли пароль?
или продолжите с
Создать аккаунт
Я хочу получать рассылки с лучшими постами за неделю
или
Восстановление пароля
Восстановление пароля
Получить код в Telegram
Войти с Яндекс ID Войти через VK ID
Создавая аккаунт, я соглашаюсь с правилами Пикабу и даю согласие на обработку персональных данных.
ПромокодыРаботаКурсыРекламаИгрыПополнение Steam
Пикабу Игры +1000 бесплатных онлайн игр
Это idle-игра стратегия о рыцарях, исследованиях, крафте и сражениях, которая предоставляет пользователям расслабляющий опыт. Игра не требует концентрации и идеально подходит, когда вам нужно сделать перерыв или отдохнуть.

Герои Мини-Королевства

Кликер, Стратегии, Мидкорные

Играть

Топ прошлой недели

  • Rahlkan Rahlkan 1 пост
  • Tannhauser9 Tannhauser9 4 поста
  • alex.carrier alex.carrier 5 постов
Посмотреть весь топ

Лучшие посты недели

Рассылка Пикабу: отправляем самые рейтинговые материалы за 7 дней 🔥

Нажимая кнопку «Подписаться на рассылку», я соглашаюсь с Правилами Пикабу и даю согласие на обработку персональных данных.

Спасибо, что подписались!
Пожалуйста, проверьте почту 😊

Помощь Кодекс Пикабу Команда Пикабу Моб. приложение
Правила соцсети О рекомендациях О компании
Промокоды Биг Гик Промокоды Lamoda Промокоды МВидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня
0 просмотренных постов скрыто
0
P1pee
7 месяцев назад

Привет, Пикабу!⁠⁠

Я руковожу командой инженеров. Каждый наш проект — это уникальная история: от неожиданных сложностей до нестандартных решений. Хотелось бы узнать, интересно ли вам читать о том, как рождаются инновации, с какими трудностями мы сталкиваемся и как инженерное мышление помогает их преодолевать? Если тема вам близка, дайте знать! Расскажем о том, как в реальной жизни работают инженеры, и покажем, что за кулисами технологий всегда есть место для творчества, ошибок и маленьких побед. Как думаете, стоит продолжать?

(Буду благодарен, если подскажете с оформлением постов. Пикабу читаю долго, но зарегистрировался только сейчас. Про ссылки знаю - ни одной вам не покажу!)

Инновации Аддитивные технологии Реверс-инжиниринг Стартап Технологии Изобретения Текст
12
sanches.militsky
sanches.militsky
8 месяцев назад

О смокинге и реверс-инжиниринге⁠⁠

О смокинге и реверс-инжиниринге Смокинг, Галстук-бабочка, Реверс-инжиниринг, Длиннопост

У меня есть смокинг.

Собственно, оно не фокус, - у многих мужчин есть смокинг. Смокинг - не фрак, который реально нужен только если вы являетесь дирижером симфонического оркестра или нобелевским лауреатом. Всем остальным фрак - нафиг, по большому-то счету, не нужен. Другое дело - смокинг. Его можно и нужно надеть на свадьбу, - свою или чужую, - симфонический концерт, торжественную церемонию награждения или на игру в "Что? Где? Когда?", - если вы знаток, разумеется.

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

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

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

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

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

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

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

И тут...

И тут я внезапно обнаружил, что не умею его повязывать.

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

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

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

Не скажу, будто это было простым делом. У меня ушло около сорока минут торчания перед этим зеркалом в этом сортире. Но я его изобрел.

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

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

Вы этот узел повяжите, - с нуля, - за сорок минут. Изначально не умея.

Ничего не скажу, - только руку пожму. И в глаза посмотрю, - со значением...

Показать полностью
[моё] Смокинг Галстук-бабочка Реверс-инжиниринг Длиннопост
5
14
alexandreF
9 месяцев назад
Сообщество Ремонтёров - Помощь

Нужна помощь в поиске даташита на микросхему HCI3K LF или мучения принтера HP⁠⁠

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

И дабы пост не стал очередным «помогите-спасите, дайте-найдете» немного предыстории.

Есть на работе принтер для печати чертежей и плакатов HP 1050c, но старикан знатно подустал, даже перенёс замену двигателя привода каретки - износились щётки. И почти 3 года назад был приобретён HP DesignJet 4500 ему на замену, естественно «срук»… но как бы рабочий и в хорошем состоянии. Проработал он, конечно же не долго, вызывали сервисника, что-то ковырял, приговорил вначале компрессор (как я понял который притягивает бумагу к столу). Потом передумал и приговорил плату которая между картриджами и основной.

Нужна помощь в поиске даташита на микросхему HCI3K LF или мучения принтера HP Нужна помощь в ремонте, Поломка, Ремонт техники, Ремонт принтера, Реверс-инжиниринг, Без рейтинга, Рукожоп, Длиннопост

Вот эту)

Плату заказали, поставили и принтер даже ожил, но перестал видеть второй рулон и брать бумагу вообще. На этом сервисник отвалился. Это так сказать предыстория, и тут выхожу я, весь в де.. белом! Шучу) короч забили болт на этот аппарат и простоял он еще пол года где-то. А старичку 1050 становилось всё хуже. Ну мы ж любопытные… нам же своей работы мало… С согласия руководства «ковыряй-хуже ему уже не будет» полез посмотреть.

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

Но, пришло откуда не ждали!

Начала эта HP-шная сволочь выпадать в ошибку, пишет что картридж не герметичен и проверьте датчик влажности… хм. Картридж поменяли, ошибку через сервисное меню сбросили и радовались жизни. Через какое-то время опять эта же хрень. Опять поменяли.. Но этож не дело.

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

1/2

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

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

ЗЫ перечитал свой шедевр, как-то не оч получилось, но пусть будет так. Прошу тапками не ругаться, на запятые не кидаться) Всем спасибо, всем добра!

Показать полностью 3
[моё] Нужна помощь в ремонте Поломка Ремонт техники Ремонт принтера Реверс-инжиниринг Без рейтинга Рукожоп Длиннопост
7
5
trofitec
trofitec
11 месяцев назад

Реверс-инжиниринг деталей, запчастей, изделий. Импортозамещение, реплика изделий⁠⁠

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

Реверс-инжиниринг деталей, запчастей, изделий. Импортозамещение, реплика изделий Малый бизнес, Бизнес, Импортозамещение, Производство, Инженер, Реверс-инжиниринг, Промышленность, Предпринимательство, Российское производство, Реинжиниринг, Инженерия, Длиннопост

Один из моих тестовых проектов. Доработка корпуса мотоблока по 3D скану

= Что такое реверс-инжиниринг?
Многосоставной процесс создания производственной документации по образцу.

= Из каких этапов состоит реинжиниринг?
1. Определение задачи
(еще на берегу нужно оговорить нюансы и точно определить конечную цель работы и четко определить ее результат).

2. Анализ изделия
(после определения задачи важно изучить изделие и определить возможные сложности, а также объем подготовительных работ).

3. Декомпозиция задачи
(понимая нюансы изделия и главную задачу можно поставленную цель развернуть в обратном порядке на составляющие работы).

4. План работ
(при планировании учитывается подготовка изделия (иногда нужно обеспечить доступ в заставленном складском помещении, иногда нужно очистить изделие от слоя смазочных материалов или грязи, кроме того для габаритных конструкций и оборудования необходимо обеспечить помещение, а иногда лестницы или подъемные механизмы и т.д.).

5. Обмерные работы
(обмерные работы один из основных этапов реинжиниринга, но он выполняется не всегда
иногда реинжиниринг может выполняться по фото или эскизам и общим техническим данным

т.е. образца может не быть и все данные берутся из открытых источников или предоставляются заказчиком).

6. Анализ материала
(иногда для полного реинжиниринга изделия требуется спектральный анализ материала, для выполнения расчетов и симуляции нагрузок четко в соответствии с допусками конкретного материала).

7. Моделирование
(имея размеры и зная материал можно приступить к моделированию изделия в САПР для получения точной параметрической объемной модели).

8. Коррекция модели
(в процессе моделирования выполняется коррекция модели т.к. некоторые размеры могут уточняться т.к. при выполнении обмеров есть погрешность измерительного инструмента, а также моет быть неточность у предоставленных данных).

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

10. Коррекция итоговая
(при выполнении итоговой коррекции подбираются материалы, их толщины и могут вноситься конструктивные изменения для оптимизации расчетных характеристик).

11. Оформление КД
(по завершению итоговой коррекции оформляется комплект конструкторской документации, который кроме сборочных чертежей и деталировки по спецификации может содержать также отчет по расчетам и симуляции, а также список покупных деталей, чертежи для ЧПУ и 3D модели для печати или фрезеровки в масштабе 1:1).

Реверс-инжиниринг деталей, запчастей, изделий. Импортозамещение, реплика изделий Малый бизнес, Бизнес, Импортозамещение, Производство, Инженер, Реверс-инжиниринг, Промышленность, Предпринимательство, Российское производство, Реинжиниринг, Инженерия, Длиннопост

= Какие инструменты необходимы для реверс-инжиниринга?

-  Рулетка
- Лазерная рулетка
- Штангенциркуль
- Микрометр
- Радиусомер
- Глубиномер
- Угломер
- Шаблоны поверхностей
- Лекала профилей
- 3D сканер (нужен редко и для сложных криволинейных поверхностей, требует ретопологии и построения твердотельной модели для дальнейшей работы с проектом в САПР)

Иногда может пригодится фотоаппарат с хорошим штативом, а в некоторых случаях может выручить обычный офисный МФУ для сканирования плоской стороны детали или полученных лекал и шаблонов.

НО ГЛАВНЫМ ИНСТРУМЕНТОМ является высокая квалификация и опыт инженера, который выполняет реверс.

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

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

== Мои контакты
Иногда размещаю проекты моей разработки и не только в телеграм
Рад коллегам конструкторам, инженерам и дизайнерам изделий - наш уютный чатик в телеге.

Нахожусь в Минске, открыт к сотрудничеству и рассмотрю любые предложения.
+375447005477 А1/Viber/Whatsapp/Telegram.

Показать полностью 2
[моё] Малый бизнес Бизнес Импортозамещение Производство Инженер Реверс-инжиниринг Промышленность Предпринимательство Российское производство Реинжиниринг Инженерия Длиннопост
4
139
LuckWithMe
LuckWithMe
11 месяцев назад
Лига Радиолюбителей
Серия Российские инновации. Обгоняя первых

На что способен инженер, загнанный в угол (или как устроен Display Port у Aspeed AST2600)⁠⁠

В комментариях к одной из прошлых статей кто-то там высказался, что DP давно изучен и делать там нечего. И вообще не понятно, что мы там месяц зависали. Ну, так вот:

Дано:
Серверная плата с самым свежим чипом от Aspeed. На плате распаяны два видео-разъема, идущих напрямую с чипа: VGA и DisplayPort. Видео через древний аналоговый VGA-разъём воспроизводится замечательно, а вот современный быстрый и цифровой DP работать не хочет. Не то чтобы совсем не хочет... так, редкие нестабильные промаргивания картинки.

Задача:
1. Починить выводимое на Display Port изображение.
2. Вчера

Вы спросите, зачем нам понадобился именно DP? Все сервера испокон веков работали через VGA, и никто от этого не страдал.

Ответ простой: Мы просто решили сделать лучше и удобнее. VGA древний и его уже ставят по причине "всегда ставили, куда без него"? Мы же делаем НОВУЮ серверную платформу на годы вперед. Нужно сказать, что мы пока не отказались полностью от VGA и технически он всё ещё остается доступен одновременно с DP (как VGA использовать, расскажем в другой раз). Но монитор без разъема VGA попадается всё чаше, а в будущем все мониторы останутся без VGA. DP поддерживает hot-plug. DP поддерживает высокие разрешения и frame-rate. И в конце концов, DP поддерживается чипом ASPEED. А раз железо позволяет, то "А почему бы и ДА!?". В конце концов, для олдов остаются доступны переходники DP-VGA. Главное, не увлекаться и не получить такое:

На что способен инженер, загнанный в угол (или как устроен Display Port у Aspeed AST2600) Электроника, Реверс-инжиниринг, Гифка, Длиннопост

Собралось в уютной комнатенке программистов трое умов: Михалыч - прожжённый опытом системщик, от одного только строгого взгляда которого транзисторные ключи в микросхемах готовы переключаться в нужные уровни.
Викторыч - Викторович не по возрасту, но раз уж задалась тенденция, отставать негоже - молодой, энергичный инженер с бэкграундом в разных областях, способный одним своим энтузиазмом запитать лампочку. Кузьмич - наш духовный лидер и наставник, толкающий своим пузом авторитетом груз нашего стартапа прямо с обрыва к светлому будущему. "Нельзя отказывать Кузьмичу!" (с).

Что мы имели, кроме перечисленного выше: ✔ С большим трудом найденный на просторах интернета и не самый свежий Datasheet на AST2600 с описанием большинства регистров, но без особых подробностей (Errata не было, но были отсылки к нему). ✔ Сравнительно легко найденный Graphics User Guide, с одной стороны, добавляющий к DP некоторые ручки, за которые можно покрутить, с другой стороны, не вполне объясняющий их предназначение (вроде как: если у вас не работает DP, сдампите вот такие-то адреса памяти и обратитесь к нам в техподдержку) Техподдержку, которая по понятным причинам сейчас не захочет с вами общаться. ✔ Представителя "железных дел мастеров", транслирующего на всю лабораторию, что все программисты пианисты пропагандируют ЛГБТ-идеологию и что DP-порт не работает только из-за "кривых" настроек нашего софта. Звучало как вызов, и мы его приняли.

Поехали!

Проанализировав доки и отдельный бинарь для DP Михалыч предположил, что вся обработка происходит в отдельном ядре, с архитектурой, отличной от ARM и с доступом к общей шине. Упомянутые в Datasheet 32 регистра, маппирующиеся на общие адреса, намекали, что это регистры именно этого стороннего ядра.

На что способен инженер, загнанный в угол (или как устроен Display Port у Aspeed AST2600) Электроника, Реверс-инжиниринг, Гифка, Длиннопост

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

Викторыч затих на полчаса, потом послышался ответ:

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

— Да бинарь это! Точно говорю! — не унимался Михалыч. — Готов разобрать его на куски и написать свой дизассемблер. Нужно только время и отмашка от начальства.

Через два дня других безуспешных экспериментов Кузьмич дал отмашку Михалычу на исследовательскую работу. И буквально через пару дней Михалыч выдает первые промежуточные результаты. Он распарсил порядка 30% процентов байткода и тот реально начал оформляться в листинг исполняемого, в котором примерно 70% команд - инициализация регистров и областей (именно использование практически одних и тех же команд заставило Викторыча ошибочно предположить, что это конфиг-файл).

«Михалыч, ты как разобрал-то этот ребус? За что зацепился?» — спросил между делом Викторыч.

В Aspeed есть встроенный аппаратный debugger именно для DP. Команды ему можно давать прямо из uboot. Есть пошаговый режим, точка останова и возможность смотреть содержимое регистров. Пошаговый режим как-то не очень адекватно работал, перескакивал команды, неправильные значения показывал. А вот точка останова стабильно работала! С её помощью и раздербанил код.

Викторыч угукнул, прыгнул за комп и начал усиленно что-то щелкать мышкой. Вскоре послышался радостный крик:

— Ага!!! Михалыч, бросай свой дизассемблер, я, кажется, нашел.

Все собрались вокруг рабочего места Викторыча, но радость была преждевременной. Хоть инструкции и были очень похожи на WDC 65816, но увы, полного попадания не было.
Продолжили собирать информацию. Викторыч анализировал промежуточный ассемблерный листинг от Михалыча, а тот продолжил свои исследования по остающимся непонятным командам.

Приехали, или что выяснил Михалыч

А выяснил он что: ✔ машинные команды имеют одинаковый размер – 4 байта; ✔ при выполнении команд в пошаговом режиме видны изменения в регистрах; ✔ всего регистров общего назначения 31 (r1-r31), регистры 32-х битные, хотя сам контроллер 16-битный; ✔ есть псевдорегистр r0, всегда равный нулю, r31 - link-регистр, r29 - возможно stack pointer, т.к. инициализируется на конец памяти и больше нигде явно не используется; ✔ program counter (PC) существует отдельно; ✔ в системе используются прерывания; ✔ адресное пространство управляющей программы (УП) DP контроллера маппится на 0x18020000 основного ядра и имеет размер 16 кбайт; ✔ с точки зрения DP контроллера УП живет в диапазоне адресов [0-0x4000]; ✔ регистровое пространство DP контроллера маппится на 0x18010000 адреса и имеет размер 4 КБайта; ✔ адресное пространство данных УП маппится на 0x18000000 адреса и имеет размер 4 КБайта; ✔ в процессе исполнения УП r20 всегда равен 0x1e6eb000 (как константа) - это базовый адрес регистров управления DP; ✔ в процессе исполнения УП r9 всегда равен 0x18000000 - базовый адрес для маппинга DPCD и RAM для УП.

Дальше логика Михалыча была такой.

Если посмотреть на содержимое дампа бинаря DP, начало там такое:

0xa0000080 0xa0000080 0xa0000080 0xa00035dc
0xa000363c 0xa000369c 0xa0000080 0xa0000080
0xa0000080 0xa0000080 0xa0000080 0xa0000080
0xa0000080 0xa0000080 0xa0000080 0xa0000080
0xa0000080 0xa0000080 0xa0000080 0xa0000080
0xa0000080 0xa0000080 0xa0000080 0xa0000080
0xa0000080 0xa0000080 0xa0000080 0xa0000080
0xa0000080 0xa0000080 0xa0000080 0xa0000080
0x2a801e6e 0x5694b000 0x29201800 0x55290000
0xdc090afc 0x54c00104 0x54e00000 0x05093800
0xdc080000 0x0ce70004 0x90e6fff4 0xdc090200
0xdc090204 0xdc090600 0x54c0beef 0xdcc90604
0x54c009fc 0x54e00800 0x05093800 0xdc080000
0x0ce70004 0x90e6fff4 0x54c00d30 0x54e00d00

Видно, что первые 32 четырёхбайтных слова отличаются от последующих. Логично предположить, что в начале находится таблица векторов прерываний, а далее обычный код.
Отсюда следует, что команда 0xa0000080 похожа на безусловный переход на адрес 0x80 – так как по этому адресу как раз и начинается "обычный" код.

Первые две инструкции после таблицы прерываний имеют значения 2a801e6e и 0x5694b000. Можно обратить внимание на младшие 16-бит этих инструкций – вместе они составляют 0x1e6eb000 – а это адрес регистров DP контроллера!!!
Предположим, что младшие 16-бит отведены под данные, а старшие на указание типа операции и номера регистров, к которым ее надо применить. Так как регистров 32, то под хранение номера регистра должно выделяться 5 бит.

Вспомним, что r20 всегда равен 0x1e6eb000 и поищем число 20 (двоичное 10100) в старших битах.

Рассмотрим старшие биты в двоичном коде:
0x2a80 = 0010 1010 1000 0000 = 001010 10100 00000 (op rD rS) = 0x0a 20 0
0x5694 = 0101 0110 1001 0100 = 010101 10100 10100 (op rD rS) = 0x15 20 20
op – это код операции (6 бит)
rD – целевой регистр (5 бит)
rS – исходный регистр (5 бит)
Получается, что инструкция 10(0x0a) это or или add для старших 16-бит
or.h r20, r0, 0x1e6e # r20=0x1e6e0000
Инструкция 21(0x15) это or или add для младших 16-бит
or.l r20, r20, 0xb000 # r20=0x1e6eb000
Инструкция 40(0x28) - прыжки в таблице прерываний 0xa0000080 - это jump на указанный адрес
jump 0x80

Проверять эти предположения нетрудно, если написать прямо в кодах небольшие тесты и добавлять их в начало обычного кода (после таблицы векторов), но нужно не забывать зацикливать тесты, благо команда для безусловных прыжков у нас есть!!!

Дальнейшее разбирательство показало, что система команд простая: • код операции всегда 6 бит; • есть возможность выполнения подпрограмм - r31 используется как link register, то есть туда автоматически записывается адрес возврата; • есть стек и поддерживаются команды push и pop; • есть команда ret и iret – выход из подпрограммы и из прерывания; • регистра флагов, скорее всего, нет, потому что нет прямой ссылки на него в кодах команд, анализ результата производится непосредственно в условных командах.

Список команд, которые в итоге удалось декодировать Михалычу (коды десятичные, мнемоника - чтобы было себе понятно):
1 add.r regD, regS1, regS2
2 add.c regD, regS, data
3 add.u regD, regS, data
6 sub.i regD, regS, data
7 sub.u regD, regS, data
10 or.h regD, regS, data
11 nop data
12 push rS
13 push rD
16 and.r regD, regS1, regS2
17 and.u regD, regS, data
18 orn.r regD, regS1, regS2
20 or.r regD, regS1, regS2
21 or.l regD, regS, data
26 sl.d regD, regS, data
30 sr.d regD, regS, data
31 sr.r regD, regS1, regS2
32 je regD, regS, rel_offs
33 jz regD, regS, rel_offs
34 jme regD, regS, rel_offs
35 jm regD, regS, rel_offs
36 jle regD, regS, rel_offs
37 jl regD, regS, rel_offs
38 jne regD, regS, rel_offs
39 jnz regD, regS, rel_offs
40 jump addr
41 call addr
42 ret rS
44 iret
49 ldr.1 regD=[regS+offs] // соответственно, загрузка 1 байта
51 ldr.2 regD=[regS+offs] // загрузка 2 байт
52 ldr.4 regD=[regS+offs] // загрузка 4 байт
53 str.1 [regS+offs]=regD
54 str.2 [regS+offs]=regD
55 str.4 [regS+offs]=regD

Снова поехали, только теперь быстро!

Дальше в течение трёх дней периодически только раздавались крики со стороны Викторыча:

— О, я нашел функцию, меняющую регистры по маскам. Она используется почти везде.
— Ага, все три обработчика прерываний обслуживают разные вариации срабатывания сигнала HPD (Hot-Plug Detect).
— Опаньки, а вот и обмен по AUX.... А вот и второй.
— А - вот здесь Link-training происходит. Полностью разбирать не буду, там специфично, но смысл понятен.
— Смотрите, нашел настройку количества линий и скорости сигнала (после чего Викторыч дал патч для понижения скорости обмена с 2,7 до до 1,6 Gbps, а Михалыч сварил прошивку). После старта DP осциллографом реально увидели сигнал 1,6 Gbps и монитор стал чаще помаргивать картинкой.

В итоге спустя несколько дней практически весь дамп FW был переведен в удобоваримый код. Наконец-то стал максимально понятен смысл записываемых в пространство конфигурации ключевых значений 0xdead, 0xcafe, 0xaced. Стала понятна логика работы счетчиков в DPCD-регионе. И много ещё чего интересного. Файлы прилагаем, любуйтесь сами.

Кровавые итоги

DisplayPort мы все-таки победили. Проблема оказалась не в программистах.

На что способен инженер, загнанный в угол (или как устроен Display Port у Aspeed AST2600) Электроника, Реверс-инжиниринг, Гифка, Длиннопост

Про систему команд ASPEED DP MCU. Мы предполагаем, что у этого ASM ноги растут откуда-то из Motorola M68. Там тоже были 32-bit регистры и 16-bit шина данных. Но наши знания не безграничны, поэтому добро пожаловать в комменты. А мы уже занялись другими задачами.

ВСЁ! Ждите новых историй.

На что способен инженер, загнанный в угол (или как устроен Display Port у Aspeed AST2600) Электроника, Реверс-инжиниринг, Гифка, Длиннопост

ссылка на Хабр: https://habr.com/ru/articles/836276/

Ссылка на файлы:

https://disk.yandex.ru/d/Oo2HiRC5z43x-g

Показать полностью 4
[моё] Электроника Реверс-инжиниринг Гифка Длиннопост
24
RFK02
1 год назад

Why собственно not?⁠⁠

Интересует мнение сообщества, каким же образом так происходит? В новостной ленте пишут, что наши военные вытащили с поля боя трофейный Leopard 2. А для чего? Конечно же для так называемого реверсивного инжиниринга, для чего же еще? Тогда у меня возникает закономерный вопрос: а почему бы для тех же целей не вытащить с условного поля боя условный BMW, или любой другой полноценный гражданский автомобиль условного противника и методом реверсивного инжиниринга получить технологии для организации полного цикла производства действительно необходимого в нынешних реалиях НОРМАЛЬНОГО автомобильного транспорта? Прошу понять меня правильно, но я не верю, что у нас нет ни материальной базы, ни специалистов для реализации подобных планов. Китайцы смогли, неужели мы не потянем?

Авто Реверс-инжиниринг Технологии Текст
34
17
Imen
Imen
1 год назад
Инженериум DIY

Универсальный транспорт - первая поездка на самоделке⁠⁠

В целом получилось отлично. Серийный выпуск уже вот-вот.

[моё] Трехколесный велосипед Самоделки Велосипед Реверс-инжиниринг Тюнинг Видео YouTube
6
56
Imen
Imen
1 год назад
Инженериум DIY

Универсальное транспортное средство (часть 2)⁠⁠

Помимо трайка с велосипедной посадкой мы приобрели китайский с педалями и полулежачим положением пилота. Сразу добавили кареточный мотор и батарейку.

Универсальное транспортное средство (часть 2) Трехколесный велосипед, Самоделки, Реверс-инжиниринг, Тюнинг, Длиннопост, Видео

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

Универсальное транспортное средство (часть 2) Трехколесный велосипед, Самоделки, Реверс-инжиниринг, Тюнинг, Длиннопост, Видео

было

Универсальное транспортное средство (часть 2) Трехколесный велосипед, Самоделки, Реверс-инжиниринг, Тюнинг, Длиннопост, Видео

Промежуточная версия

Универсальное транспортное средство (часть 2) Трехколесный велосипед, Самоделки, Реверс-инжиниринг, Тюнинг, Длиннопост, Видео

финальная сборка

Помимо нормальной задней подвески, увеличился диаметр заднего колеса с 20" до 29" и передние поменяли на более бодрые с резиной позлее. Штука поехала совсем иначе, особенно по бездорожью. Ах да, сзади добавили планетарную втулку на 8 скоростей и это обеспечило регулировку тяги для любых режимов. По асфальту можно было ехать до 60км/ч, а в самом лютом бездорожье на низах вылезать из любых говен.

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

Показать полностью 3 1
[моё] Трехколесный велосипед Самоделки Реверс-инжиниринг Тюнинг Длиннопост Видео
39
Посты не найдены
О нас
О Пикабу Контакты Реклама Сообщить об ошибке Сообщить о нарушении законодательства Отзывы и предложения Новости Пикабу Мобильное приложение RSS
Информация
Помощь Кодекс Пикабу Команда Пикабу Конфиденциальность Правила соцсети О рекомендациях О компании
Наши проекты
Блоги Работа Промокоды Игры Курсы
Партнёры
Промокоды Биг Гик Промокоды Lamoda Промокоды Мвидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии