使用GNU工具链在Windows命令行运行ARM / C(Using the GNU ToolCha

2019-09-27 23:55发布

所以,当我问一个类似的问题有关在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 )

Answer 1:

如果有谁遇到这样的方式我终于得到它的工作是打这些脚本行到Windows命令行:

Step 1: Compile your c-file
arm-none-eabi-gcc -o (object file name 1) -c (c file name)

Step 2: Assemble your ARM file
arm-none-eabi-gcc -o (object file name 2) -c (ARM file name)

Step 3: Link files and create executable
arm-none-eabi-gcc -o (executable file name) (object file name 1) (object 
file name 2) -T armulator-ram-hosted.ld

Step 4: Run the files
arm-none-eabi-run (executable file name)


文章来源: Using the GNU ToolChain to Run ARM/C on Windows Command Line