所以,当我问一个类似的问题有关在IDE中运行该代码,您可能认识我,从那天。 最终,我得到的意见是,我应该学会在命令行中一起运行它们。 因此我把意见和安装CodeSourcery的精简版Mentor Graphics的GNU工具链(不知道这是有道理的)。 我可以做的命令是一样的东西
> arm-none-eabi-gcc -o main main.c -T script
但是我无法找出我究竟应该如何使用这些命令。 我试过了
> arm-none-eabi-gcc -o main (my c filename).c -T (my ARM filename).s
但是,我从那个语法错误的ARM文件。 然后我试着做
> arm-none-eabi-gcc -o main (my c filename).c
但是,这并不因为外部“ADD2”的工作
> arm-none-eabi-as add2.s
这让我一个文件“的a.out”但我不知道做什么。
这里是我的代码:
臂
.global add2
add2:
stmfd sp!, {v1-v6, lr} @ 'standard' entry, save registers on the stack
add a1, a1, a2 @ do the addition requested
ldmfd sp!, {v1-v6, pc}
C
#include <stdio.h> /* standard input and output */
#include <stdlib.h> /* standard library */
extern int add2(int i, int j); /* tell the compiler that the routine is not defined here */
int main(int argc, char * argv[]) /* entry point to the program */
{
int i, j; /* declare the variable types */
int answer;
i = 5; /* give the variables values */
j = 20;
answer = add2(i, j); /* call the assembly language routine */
printf("result is : %d\n", answer); /* print out the answer */
exit(0); /* leave the driver program */
}
任何帮助,将不胜感激。 我还安装了巴什从这个工具包apt-get的在Ubuntu上的Windows,所以如果你有一个bash解决方案也是可能的( https://packages.ubuntu.com/trusty/devel/gcc-arm-none-eabi )