QEMU хорош для обучения программированию на ассемблере для ARM и PowerPC? - PullRequest
5 голосов
/ 13 июня 2010

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

Ответы [ 2 ]

8 голосов
/ 27 октября 2010

QEMU хорошо работает для программы тестирования коррекция (т. Е. Будет ли код правильно выполняться на реальном ARM или PowerPC), но это не хорошо для программы тестирования эффективность : эмуляцияне точный цикл, и скорость, измеренную с помощью QEMU, не может быть надежно (или даже ненадежно) коррелирована со скоростью на истинном оборудовании.

Кроме того, QEMU не будет перехватывать обращения к памяти без выравнивания, что не является проблемой для эмуляции PowerPC (PowerPC допускает не выровненный доступ), но может быть для ARM (не выровненный доступ, например, чтение 32-разрядного слова в ОЗУ с адреса, не кратного 4, будет нормально работать с QEMU, но вызовет исключение на истинном процессоре ARM).

Помимо этих моментов, QEMU отлично подходит для разработки сборок на ARM или MIPS (не пробовал PowerPC, потому что я нашел для этого старую iBook на eBay; но я выполнил сборку ARM и MIPS сQEMU, а затем запустил полученный код на истинном оборудовании, и это сработало).Вы можете либо эмулировать всю систему и запустить в ней Debian (в этом случае компилятор, компоновщик, текстовый редактор ... также будет работать в эмуляции), либо использовать «эмуляцию пользовательского режима», когда запускается исполняемый файл ARM / MIPSнапрямую, с помощью оболочки, которая преобразует системные вызовы в вызовы для хост-ПК (предполагается, что хост - это компьютер под управлением Linux).Последнее более удобно (у вас есть доступ к обычному домашнему каталогу, инструменты программирования являются родными ...), но требует установки инструментов кросс-разработки.См. buildroot (и ссылку с -static, это позволит избежать многих головных болей).

1 голос
/ 13 июня 2010

Поскольку я обнаружил признаки того, что Debian для PowerPC и для ARM может работать на QEMU, я полагаю, это не будет проблемой.

...