我很好奇在AARCH64-Linux机器上运行旧的ARM32-Linux程序的可行性,我进行了一些实验:
- 写一个程序"Hello,World!" 并使用arm-none-linux-gnueabi-gcc和aarch64-linux-gnu-gcc静态编译它.
- 使用busybox和aarch64编译器静态构建并创建ramdisk.
- 把2"你好,世界!" 程序(在ARM32和AARCH64中)到ramdisk.
- 使用vexpress_defconfig和aarch64编译器构建一个简单的AARCH64-Linux内核.
- 使用qemu-system-aarch64运行内核和ramdisk.
(所有二进制文件包括ramdisk中的busybox都是静态编译的.)
结果:
- "你好,世界!" AARCH64中的程序已成功执行.
- "你好,世界!" ARM32中的程序无法运行但显示消息:
第1行:语法错误:意外的单词(期待")")
是否有解决上述问题的建议或专业知识?