Рука (большой палец-2) в сборке эмулятора?
Есть ли такая вещь, как эмулятор для сборки thumb-2? Я хотел бы написать простые программы сборки ARM Thumb-2 и протестировать их без необходимости использования реального устройства ARM, поэтому мой единственный вариант - эмуляция.
Моя цель - реализовать значительное количество алгоритмов в сборке thumb-2 в качестве учебного упражнения. Мне даже не нужна эмуляция другого оборудования (например, io/display/etc). Просто возможность запускать сборку thumb-2 (скомпилированную или нет) и просматривать результаты (то есть, в основном, иметь возможность отлаживать программу и видеть содержимое эмулируемой памяти после завершения моей программы).
Существует ли что-то подобное или я цепляюсь за соломинку?
4 ответа
QEMU поддерживает процессоры с Thumb-2, такие как Cortex-M3 и Cortex-A8. Он даже включен в последние выпуски CodeSourcery.
Эмулятор Android (4.0) предполагает использование armeabi-v7a
Я также пытаюсь выяснить, работают ли какие-либо дешевые аппаратные планшеты Android с процессорами Cortex A8 в режиме Thumb-2, или можно ли на них запустить собственный код Thumb-2
"Последний выпуск NDK поддерживает следующие наборы инструкций ARM: ... ARMv7-A (включая Thumb-2 ...", не уверен, какая версия Android ему требуется
Thumb2 - это в основном большой палец с некоторыми новыми инструкциями. Большая часть образования thumb2 - это просто изучение большого пальца. Все процессоры thumb2 вполне довольны набором команд thumb. Не отличается от изучения arm7 перед изучением инструкций arm11. thumbulator поможет с набором инструкций thumb, основами, но не дополнениями thumb2, если вы не решите их реализовать.
Также есть эмулятор, который является / был эмулятором набора команд для оружия, который вы можете найти в таких вещах, как gdb. Не более полезно узнать, что такое QEMU, но проще, чем QEMU, если вы хотите посмотреть, что происходит. Сама gdb может быть интересующей вас платформой, поскольку она имеет такую видимость вместе с эмулятором набора команд.
Qemu хорош, скажем, для имитации сборки linux для какой-либо цели рука / большой палец (и чтобы она работала быстро). Где драйверы на месте и т. Д. Но, начиная с нуля, просто чтобы увидеть, где вы можете увидеть несколько строк ассемблера, вам придется выполнить некоторые операции ввода-вывода, и вам может не хватить просто заставить qemu загрузить и запустить ваш код, возможно, быть против продуктивным тому, что вы делаете. YMMV
У вас есть несколько вариантов. Я перечислю их в порядке от лучшего к худшему.
- QEMU эмулированное устройство
- Программное обеспечение Keil uVision
- Yocto bitbake tool
Пояснения:
QEMU - это то, что я люблю называть "метро" виртуальных машин. Вы создаете целую виртуальную машину с "всем, что вы хотите, и ничего, что вы не делаете". Это означает, что вы можете спроектировать практически каждый аспект машины, который вы хотели бы эмулировать (включая ISA, который она использует). Некоторые технические навыки QEMU необходимы.
Keil uVision - это хороший инструмент для разработки, тестирования и загрузки ассемблерного / встроенного C-кода. Keil может справиться с отладкой без необходимости подключения устройства.
Yocto - инструмент с открытым исходным кодом для создания пользовательских сред Linux. Как и в QEMU, вы создаете собственную архитектуру. Это менее документировано и более "привередливо", чем QEMU. Очень крутой проект #promotions