我最近开始使用ARM汇编语言,并且已经将两个源文件model.s和v_bin.s分别汇编为model.o和v_bin.o。 v_bin.s包含一个子例程,而model.s包含调用代码。我希望将两个目标文件链接到一个可执行文件。有什么想法吗?
答案 0 :(得分:1)
您需要使用.globl my_func
导出符号my_func
,以便其他文件可以调用您的my_func
。
然后,您可以通过将多个.o
文件传递到通常用于将一个文件链接为二进制文件的文件,来进行正常链接。 (例如gcc或ld
)
答案 1 :(得分:0)
如果要链接这两个文件,则可以运行以下命令来完成此操作。假设您使用的是arm-none-eabi工具链,并且没有库依赖性。
arm-none-eabi-ld -T your-linker-script.ld -o "app.elf" v_bin.o model.o
http://www.martinhubacek.cz/arm/arm-cortex-bare-metal-assembly/stm32f0-cortex-m0-bare-metal-assembly是一个很好的资源,看看他创建的make文件