Эмулятор сборки Arm (thumb-2)?

Есть такая штука как эмулятор для сборки thumb-2? Я хотел бы написать простые программы сборки ARM Thumb-2 и протестировать их без необходимости использования реального устройства ARM, поэтому мой единственный вариант - эмуляция.

Моя цель - реализовать значительное количество алгоритмов на ассемблере thumb-2 в качестве обучающего упражнения. Мне даже не нужна эмуляция другого оборудования (например, io / display / etc). Просто возможность запускать сборку thumb-2 (скомпилированную или нет) и просматривать результаты (то есть в основном иметь возможность отлаживать программу и видеть содержимое эмулируемой памяти после завершения моей программы).

Есть ли что-то подобное, или я хватаюсь за соломинку?


person LCC    schedule 01.09.2010    source источник
comment
Stackoverflow - подходящее место для такого вопроса.   -  person old_timer    schedule 02.09.2010


Ответы (4)


QEMU поддерживает процессоры с Thumb-2, такие как Cortex-M3 и Cortex-A8. Он даже включен в последние выпуски CodeSourcery.

person Igor Skochinsky    schedule 01.09.2010
comment
Это тоже для некоммерческих версий? - person leppie; 01.09.2010
comment
Не уверен, может, в бесплатной версии нет. Но в любом случае вы всегда можете создать свою собственную версию. - person Igor Skochinsky; 01.09.2010
comment
Очень здорово, спасибо, что указали на это. Я никогда об этом не слышал. - person LCC; 01.09.2010

Эмулятор Android (4.0) предлагает использовать armeabi-v7a

Я также пытаюсь узнать, работают ли какие-либо дешевые аппаратные планшеты Android с процессорами Cortex A8 в режиме Thumb-2 или можно ли запустить на них собственный код Thumb-2.

«Последний выпуск NDK поддерживает следующие наборы инструкций ARM:… ARMv7-A (включая Thumb-2…») не уверен, какая версия Android требуется

person user1094688    schedule 12.12.2011

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

Существует также armulator, который является / был эмулятором набора команд для оружия, который вы можете найти включенным в такие вещи, как gdb. Не более полезен при изучении того, что такое qemu, но проще, чем qemu, если вы хотите попытаться посмотреть, что происходит. Сам gdb может быть платформой, которая вас интересует, поскольку она имеет такую ​​видимость вместе с эмулятором набора инструкций.

Qemu хорош, скажем, для имитации сборки linux для некоторой целевой руки / большого пальца (и для того, чтобы она работала быстро). Там, где установлены драйверы и т. Д. Но, начиная с нуля, просто чтобы увидеть несколько строк ассемблера, вам придется выполнить некоторый ввод-вывод, и вам может быть сложно просто заставить qemu загрузиться и запустить ваш код, может быть непродуктивным по отношению к тому, что вы делаете. ymmv

person old_timer    schedule 02.09.2010
comment
на самом деле thumb2 добавляет кучу вещей и усложняет предыдущие / исходные инструкции для большого пальца. Я бы определенно выучил сначала большой палец, а второй - второй. Arm-arm-7m доступен для бесплатной загрузки с веб-сайта arm (после регистрации) и охватывает набор команд, поддерживаемый cortex-m3, и весь хаос thumb2. - person old_timer; 02.09.2010

У вас есть несколько вариантов. Я перечислю их в порядке убывания.

  1. Устройство эмуляции QEMU
  2. Программное обеспечение Keil uVision
  3. Инструмент yocto bitbake

Пояснения:

  1. QEMU - это то, что я называю «метро» VM. Вы создаете целую виртуальную машину, используя «все, что вы хотите, и ничего лишнего». Это означает, что вы можете спроектировать почти все аспекты машины, которую хотите эмулировать (включая ISA, которую она использует). Тем не менее, необходимы некоторые технические навыки QEMU.

  2. Keil uVision - хороший инструмент для разработки, тестирования и загрузки ассемблерного / встроенного кода C. Keil может выполнять большую часть отладки без необходимости подключения устройства.

  3. Yocto - это инструмент с открытым исходным кодом для создания пользовательских сред Linux. Подобно QEMU, вы создаете собственную архитектуру. Однако это менее документировано и более «привередливо», чем QEMU. Очень крутой проект # промоушн

person Erez Binyamin    schedule 16.02.2018