Змусьте Ghidra добре грати з RP2040

Розробка мікропрограми для RP2040, безсумнівно, весела, що стосується всіх тих PIO. Однак інколи вам захочеться скасувати його та замість цього сконструювати деяку мікропрограму RP2040. Якщо ви коли-небудь пробували використовувати для цього Ghidra, можливо, ваш досвід був дуже тьмяним через декомпільований вихід, який не має сенсу з точки зору адрес — на щастя, [Wejn] тепер опублікував деякі виправлення для компаньйона Ghidra, SVD-Loader , що скасовує все це, і до них є допис у блозі.

SVD-Loader, незважаючи на те, що він є незамінним інструментом для роботи з ARM, він взагалі не працював із RP2040 через помилку — спочатку виправлено. Далі [Wejn] звернувся до особливості RP2040 — доступу до атомарного реєстру, який змінює адресацію таким чином, що звичайний потік декомпіляції призведе до безглуздих адрес. Після введення в рівняння тонни даних карти пам’яті [Wejn] переписав декодування та довів його до точки, де периферійний доступ тепер відповідає добре читабельному запису в регістр у декомпільованому коді – зображення зовсім інше!

За бажанням ви вже можете самостійно застосувати патчі. Як завжди, у TODO ще є деякі речі для гарної якості життя під час занурення в Гідру, але декомпільований код зараз має набагато більше сенсу, ніж раніше. Тепер, якщо ви коли-небудь зустрінете водяний охолоджувач RP2040 або вимірювач якості повітря, ви готові спробувати його флеш-контент. Ще не знайомі з життям Гідри? Наш власний HackadayU має навчальний курс для вас!

Змусьте Ghidra добре грати з RP2040

Розробка мікропрограми для RP2040, безсумнівно, весела, що стосується всіх тих PIO. Однак інколи вам захочеться скасувати його та замість цього сконструювати деяку мікропрограму RP2040. Якщо ви коли-небудь пробували використовувати для цього Ghidra, можливо, ваш досвід був дуже тьмяним через декомпільований вихід, який не має сенсу з точки зору адрес — на щастя, [Wejn] тепер опублікував деякі виправлення для компаньйона Ghidra, SVD-Loader , що скасовує все це, і до них є допис у блозі.

SVD-Loader, незважаючи на те, що він є незамінним інструментом для роботи з ARM, він взагалі не працював із RP2040 через помилку — спочатку виправлено. Далі [Wejn] звернувся до особливості RP2040 — доступу до атомарного реєстру, який змінює адресацію таким чином, що звичайний потік декомпіляції призведе до безглуздих адрес. Після введення в рівняння тонни даних карти пам’яті [Wejn] переписав декодування та довів його до точки, де периферійний доступ тепер відповідає добре читабельному запису в регістр у декомпільованому коді – зображення зовсім інше!

За бажанням ви вже можете самостійно застосувати патчі. Як завжди, у TODO ще є деякі речі для гарної якості життя під час занурення в Гідру, але декомпільований код зараз має набагато більше сенсу, ніж раніше. Тепер, якщо ви коли-небудь зустрінете водяний охолоджувач RP2040 або вимірювач якості повітря, ви готові спробувати його флеш-контент. Ще не знайомі з життям Гідри? Наш власний HackadayU має навчальний курс для вас!

What's Your Reaction?

like

dislike

love

funny

angry

sad

wow