ARM Assembly, загрузка первой инструкции

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

Мой вопрос: как мне загрузить мою первую инструкцию в процессор?

Моя программная платформа, на которой можно экспериментировать, - продвижение геймбой. Он имеет процессор arm7tdmi, и у меня нет карты памяти, поэтому я собираюсь использовать свое arduino для загрузки кода через порт связи (подключенный к выводам d, di, do, dc чипа). Мне просто нужна помощь в выяснении Как загрузить любую программу. без использования чьего-либо программного обеспечения, кроме Arduino и биографии Gameboy.

Итак, мой вопрос: если я достану чип BIOS из gba, могу ли я загрузить инструкции через эти контакты, или есть ли другое место, в котором процессор обычно ищет инструкции после того, как на них вышли сообщения? Кроме того, как он принимает сообщение и как загрузить инструкцию по одному биту за раз?

1 ответ

Механизм использования этого порта называется multiboot, вашему arduinio придется соответствовать правильному протоколу, чтобы сделать эту работу, и, без сомнения, кто-то уже сделал это.

теперь удаляя биос, если вы не могли бы принести вам пользу

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

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

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

для Visual Boy Advance вы можете иметь или не иметь правильную подпись, но есть куча информации и примеры, которые показывают, какой заголовок должен работать, и / или инструменты, которые, если вы оставите нужное место, будут исправлены. Ваш бинарный файл, чтобы он работал.

для реального оборудования вы не только должны получать синхронизацию и подтягивания и тому подобное прямо на этом последовательном порту, но вы также должны иметь правильный заголовок для запуска мультизагрузочной программы. это определенно не новичок для ГБА. найти флеш-корзину, они все еще там, мое любимое время от времени - ezflash 3 в 1 gba размером, а не ds, но вам нужен ds с флеш-картой ds, чтобы что-то загрузить на него. Флешкарты с DS гораздо проще найти (но разработка немного сложнее, но не так сильно). Есть также некоторые m3 или, как их еще называют, карты на базе sdcard или micro sd, для которых вам не нужен навороченный программист (программное обеспечение которого трудно найти и быстро устаревшее).

Вы могли бы рассмотреть ds lite (более старый) и тележку, за которую их легко найти

или просто получите панель запуска tiva c или какую-нибудь другую доску за 5 или 10 долларов

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

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

Другие вопросы по тегам