Змусьте Ghidra добре грати з RP2040
Розробка мікропрограми для RP2040, безсумнівно, весела, що стосується всіх тих PIO. Однак інколи вам захочеться скасувати його та замість цього сконструювати деяку мікропрограму RP2040. Якщо ви коли-небудь пробували використовувати для цього Ghidra, можливо, ваш досвід був дуже тьмяним через декомпільований вихід, який не має сенсу з точки зору адрес — на щастя, [Wejn] тепер опублікував деякі виправлення для компаньйона Ghidra, SVD-Loader , що скасовує все це, і до них є допис у блозі.
SVD-Loader, незважаючи на те, що він є незамінним інструментом для роботи з ARM, він взагалі не працював із RP2040 через помилку — спочатку виправлено. Далі [Wejn] звернувся до особливості RP2040 — доступу до атомарного реєстру, який змінює адресацію таким чином, що звичайний потік декомпіляції призведе до безглуздих адрес. Після введення в рівняння тонни даних карти пам’яті [Wejn] переписав декодування та довів його до точки, де периферійний доступ тепер відповідає добре читабельному запису в регістр у декомпільованому коді – зображення зовсім інше!
За бажанням ви вже можете самостійно застосувати патчі. Як завжди, у TODO ще є деякі речі для гарної якості життя під час занурення в Гідру, але декомпільований код зараз має набагато більше сенсу, ніж раніше. Тепер, якщо ви коли-небудь зустрінете водяний охолоджувач RP2040 або вимірювач якості повітря, ви готові спробувати його флеш-контент. Ще не знайомі з життям Гідри? Наш власний HackadayU має навчальний курс для вас!
Розробка мікропрограми для RP2040, безсумнівно, весела, що стосується всіх тих PIO. Однак інколи вам захочеться скасувати його та замість цього сконструювати деяку мікропрограму RP2040. Якщо ви коли-небудь пробували використовувати для цього Ghidra, можливо, ваш досвід був дуже тьмяним через декомпільований вихід, який не має сенсу з точки зору адрес — на щастя, [Wejn] тепер опублікував деякі виправлення для компаньйона Ghidra, SVD-Loader , що скасовує все це, і до них є допис у блозі.
SVD-Loader, незважаючи на те, що він є незамінним інструментом для роботи з ARM, він взагалі не працював із RP2040 через помилку — спочатку виправлено. Далі [Wejn] звернувся до особливості RP2040 — доступу до атомарного реєстру, який змінює адресацію таким чином, що звичайний потік декомпіляції призведе до безглуздих адрес. Після введення в рівняння тонни даних карти пам’яті [Wejn] переписав декодування та довів його до точки, де периферійний доступ тепер відповідає добре читабельному запису в регістр у декомпільованому коді – зображення зовсім інше!
За бажанням ви вже можете самостійно застосувати патчі. Як завжди, у TODO ще є деякі речі для гарної якості життя під час занурення в Гідру, але декомпільований код зараз має набагато більше сенсу, ніж раніше. Тепер, якщо ви коли-небудь зустрінете водяний охолоджувач RP2040 або вимірювач якості повітря, ви готові спробувати його флеш-контент. Ще не знайомі з життям Гідри? Наш власний HackadayU має навчальний курс для вас!
What's Your Reaction?