Ihre Frage war, ob Sie eine bestimmte C-Datei auf einer anderen CPU-Architektur testen können als der Computer, an dem Sie gerade arbeiten. Beispielsweise haben Sie möglicherweise einen Windows-Computer mit einem Intel-Prozessor, möchten das Programm jedoch auf einer ARM-Plattform testen. Das kann natürlich gemacht werden.
Zu beachten ist, dass C-Code niemals direkt auf einer CPU ausgeführt wird. Es muss zuerst in Maschinencode übersetzt (kompiliert) werden, da unterschiedliche Plattformen unterschiedlichen Maschinencode erfordern, um dasselbe zu tun. Das macht ein Compiler.
Sie können einen Compiler anweisen, Ihren Code in eine andere Zielplattform zu kompilieren. Dies wird als Kreuzkompilierung bezeichnet . In diesem Blog-Beitrag wird beispielsweise beschrieben, wie Sie ein Hello World-Programm mithilfe des arm-linux-gnueabi-gcc
Compilers (den Sie unter Ubuntu herunterladen können apt install gcc-arm-linux-gnueabi
) in ARM überkompilieren .
Ich sollte hinzufügen, dass solche Dinge unter Linux-Hosts etwas einfacher sind als Windows, aber das ist vielleicht eine persönliche Neigung.
Nachdem Sie Ihr Programm kreuzkompiliert haben, möchten Sie es vielleicht auf der Zielplattform testen. Dazu benötigen Sie natürlich einen CPU-Emulator, aber dieser Emulator allein reicht nicht aus, da Sie darüber hinaus ein Betriebssystem * benötigen, * das das kompilierte C-Programm laden und als Prozess ausführen kann. Die ARM Lab-VM erledigt dies für ARM. Es ist eine virtuelle Maschine, die eine ARM-Plattform auf jeder Hostplattform emuliert.
* Es sei denn, dieses Programm selbst ist "Bare-Metal", was bedeutet, dass es ohne Zwischenbetriebssystem läuft.