我试图结合一个简单的汇编程序将数据从一个地方复制到另一个地方(基本上是 Z80 的 LDIR 命令的 ARM 等效项)。我遇到的问题是如何GCC
将它与我的C
代码结合起来。我之前有它工作过,但我忘记了我做了什么,因为我没有维护旧的批处理文件(错误号 1)。然后我尝试从内存中重新创建它并最终删除了我的 hello.c 文件!(错误编号 2)。幸运的是,我只花了大约 15 分钟就重写了它,因为其中大部分是来自其他文件的包含语句。
的源代码在这里asm
,这是我的批处理文件:
set path=C:\devkitadv\devkitadv-r5-beta-3\bin;%path%
as -o memcpy.o memcpy.s
gcc -S -o hello.asm hello.c
gcc -o hello.elf hello.c -lm
objcopy -O binary hello.elf hello.gba
pause
我不确定如何链接memcpy.o
到hello.c
或hello.elf
(无论哪个需要它)。我在这里读到最好使用 C 编译器进行链接而不是手动调用ld
,但我真的不明白该怎么做。Batch不是我的强项,不幸的是,我似乎必须知道如何使用它才能让任何事情发挥作用。