afin que vous puissiez me reconnaître l'autre jour lorsque j'ai posé une question similaire à propos de l'exécution de ce code dans un IDE. Finalement, le conseil que j'ai reçu était que je devrais apprendre à les exécuter ensemble depuis la ligne de commande. En tant que tel, j'ai pris le conseil et installé la chaîne d'outils GNU de Codesourcery Lite MentorGraphics (pas sûr si cela a du sens). Les commandes que je peux faire sont des choses commeUtilisation de la GNU ToolChain pour exécuter ARM/C sur la ligne de commande Windows
> arm-none-eabi-gcc -o main main.c -T script
Cependant, j'ai du mal à trouver exactement comment je dois utiliser les commandes. J'ai essayé
> arm-none-eabi-gcc -o main (my c filename).c -T (my ARM filename).s
Mais j'obtiens une erreur de syntaxe de cela dans le fichier ARM. J'ai ensuite essayé de le faire
> arm-none-eabi-gcc -o main (my c filename).c
Mais cela ne fonctionne pas à cause de la « add2 » externe
> arm-none-eabi-as add2.s
qui me fait un fichier « a.out » mais je ne sais pas ce que Est-ce que.
Voici mon code:
ARM
.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 */
}
Toute aide serait appréciée. J'ai également installé cette boîte à outils depuis apt-get de Bash sur Ubuntu sous Windows, donc si vous avez une solution BASH qui pourrait aussi être possible (https://packages.ubuntu.com/trusty/devel/gcc-arm-none-eabi)
Quelle erreur obtenez-vous? –
Pour quelle commande? – wjmccann
pour chaque commande que vous obtenez. –