Понял. Впрочем надежда была небольшой, ибо то что я сейчас накопал явно указывает что прошивка битая.
У меня не Win, а linux mint)
Понял, тады ой.

Как там посмотреть в Linux то, что интересновало, не знаю Прсто подумал, что идентификаторы эти д б где-то в прошивке. Но как они выглядят, не знаю. Вот и хотел поискать по кодам.
контроллер определялся в ней как MPD218 (Port A)
Последнее судя по всему вообще имеет отношение к МИДИ, ну а MPD218 конечно встречается, но вряд ли это то что я искал. Впрочем наверное уже не важно, накопал кое что другое.
готов пробовать, загружать прошивки в эмулятор BluePill STM32 и в сам контроллер, через ST-Link, хуже уже не будет
Я тоже так думаю, можно же всегда вернуть обратно то что слили из МК.
С BluePill немного не так вышло, я почему-то сразу не увидел, что в нём меньше памяти. Но при этом выше частота, в 2 раза.
Первое возможно не помешает, я вроде прикидывал - останестся около 900байт незанятых, м б это не критично(хотя не уверен). А вот второе - как в прошивки сделаны установки частоты(её там можно менять) не знаю, даже пока не знаю, в какой части это выставляется.
припахать ИИ специализирующийся на программировании. Пусть пошерстит код.
Было бы неплохо, но я вообще никогда не занимался с ИИ. И ещё я не уверен, что там что-то получится именно в двоичном виде. Обычно под кодом понимается что-то на ЯВУ, а у нас этого нет.
Вообще как-то очень мало материалов именно по двоичному коду STM, в лучшем случае ассемблер, но у нас даже его нет. Мои эксперименты с дизассемблером пока так ни к чему не привели. Надо его обновлять, может тогда. Но для этого как минимум надо сделать рабочим большой комп, ибо на стенде, где сейчас сижу, 32-битная 7-ка. И для неё у меня верхняя версия, но её уже наверное много лет.
какая то минимальная базовая прошивка, от создателя MK ST32
Я пока не копал в эту сторону, но дело в том, что это всё написано на ЯВУ. Т е для того чтобы прошить в STM, надо ставить кучу софта, который возможно ещё на стенде и не заработает. Пока оставляю на случай, если ничего не получится.
скачать "выхлоп" с рабочего прибора MPD218 без программатора и не разбирая его
Не знаю. Формально конкретно в этой модели STM поддержки программирования через USB нет. Есть в более старших, там наверное можно. Здесь же какой-то хитрый способ штатной прошивки, который я и надеялся использовать для окончательной прошивки. Но для этого как минимум надо как-то запустить прибор.
Что будет, если загрузить искомый выхлоп через ST-L на BluePill?
Скорее всего ничего. Почему-то мне кажется, что сам МК в приборе исправный. А произошло что-то типа кратковременного пропадания питания во время перепрошивки. Шнур пошевелился или ещё чего.
Но в конце концов процы вроде продаются, я менял подобные - особо сложного ничего нет. Нужен паяльный фен, флюс и прямые руки. Собственно процесс многократно показан на Youtube. Главноая проблема для меня была в точном позиционировании новой микрухи на плате, она всё время норовит съехать. Ну и запаивал обратно я паяльником, кмк так проще и меньше возможность что либо сломать. Потом просмотрел с лупой ножки, подправил кое-где пайки, убрал лишний припой оплёткой(в некоторых местах получились перемычки). Паял тоже с лупой. Вроде всё заработало.
Но всё же думаю, что сам МК тут не при чём.
Пока у меня вот что получается. То что я вытянул из прошивки с сайта, имеет указание на адреса, по которым располагается. И они отличаются от тех, где потом оно находится в рабочей прошивке.
Вроде пока получается так. Прошивка заезжает в МК с адреса 5000. И по некоторым признакам она сделана так, что должна там же и выполняться.
Но вот тут пробел. По идее она должна начинаться с нулевых адресов.
Кстати сразу замечу, что они нулевые только в файле, в сам МК оно кладётся с адреса 800 000. Все в 16-ричном виде ессно.
Чтобы залить новую прошивку надо чтобы старая функционировала, а она побилась. Там видно прямо по границам блоков(1кБ) что она местами есть, а местами FF, т е ничего не прошито. Ну и сами значения местами сильно отличаются в тех частях, которые остались.
А дальше вопрос, на который у меня пока нет ответа. Наверняка за USB отвечает какой-то кусок, вся прошивка целиком постоянно не крутится. Мне бы понять, где этот кусок. Для чего хочу на досуге поизучать, как МК работает с USB. Может найду чего то похожее.
Пока мне представляется , что затянув новую прошивку на адрес 5000, что-то внутри МК, возможно по команде снаружи, начинает переписывать её в начало. Но не просто, а с изменением некоторых кодов.
Дело в том, что в начале прошивки есть таблица векторов прерываний, про неё известно из описания железа МК. И там расписаны адреса, где она должна располагаться.
А ещё в самом начале есть указатель на первую команду, и в той части, которая начинаетсяв с 5000, к этим адресам добавлена 5-ка, т е вместо скажем адреса 100 в слитой прошивке в той что с сайта - 5100.
Фигня в том, что я могу отследить только то, что мне известно. Но если где-то дальше есть отсылка к абсолютным адресам, я это никак не увижу. Если там только относительные, то по идее всё должно работать. Если бы нормально всё дизассемблировалось, то м б бы по крайней мере увидеть, где такие адреса есть ещё.
Кстати пока писал, пришла в голову одна идея, н б попробовать указать 800 5000 в качестве адреса загрузки в дизассемблере, может что и изменится. А то я её пихал в 800 000, а она-то похоже на это не рассчитана. Может вечером.
С переписыванием в начало есть ещё одна фигня. Та часть, которая переписывает код из одного места флеша в другой(это можно делать по 1кБ), по идее д б вне адресов, занимаемых исходной прошивкой и новой. Но там я ничего не нашёл. Что это означает, я не знаю.
Могу только предположить, что эта часть в принципе наверное может находиться и в новой прошивке(с 5000), вроде при перезаписи они не пересекаются по адресам. Или пересекаются.

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

То что обычно делаю за пару часов, заняло почти день.