2017-06-28 1 views
0

Je voudrais faire le programme C pour le processeur cortex - M0. Je travaille avec une machine à fenêtre 64 bits et Eclipse. J'ai trouvé beaucoup de choses sur internet et je suis confus: 1.MinGW 2.Compilateur GCC pour Windows (qui peut être défini dans le système avancé de l'ordinateur, la variable PATH) 3. Compilateur ARM GNU du marché EclipseCompiler ARM dans Windows avec Eclipse

Parmi tout cela, quel compilateur peut être utilisé pour ARM et puis-je afficher mes résultats sur la ligne de commande. Puis-je compiler le programme et produire des résultats sur la console?

Ce résultat ci-dessous est ce que je reçois lorsque je tente de compiler un programme bonjour en utilisant la commande: bras-none-eabi-gcc -o -tesres -test.c

c:/program files (x86)/gnu tools arm embedded/6 2017-q1-update/bin/../lib/gcc/ar 
m-none-eabi/6.3.1/../../../../arm-none-eabi/lib\libc.a(lib_a-exit.o): In functio 
n `exit': 
exit.c:(.text.exit+0x2c): undefined reference to `_exit' 
c:/program files (x86)/gnu tools arm embedded/6 2017-q1-update/bin/../lib/gcc/ar 
m-none-eabi/6.3.1/../../../../arm-none-eabi/lib\libc.a(lib_a-sbrkr.o): In functi 
on `_sbrk_r': 
sbrkr.c:(.text._sbrk_r+0x18): undefined reference to `_sbrk' 
c:/program files (x86)/gnu tools arm embedded/6 2017-q1-update/bin/../lib/gcc/ar 
m-none-eabi/6.3.1/../../../../arm-none-eabi/lib\libc.a(lib_a-writer.o): In funct 
ion `_write_r': 
writer.c:(.text._write_r+0x24): undefined reference to `_write' 
c:/program files (x86)/gnu tools arm embedded/6 2017-q1-update/bin/../lib/gcc/ar 
m-none-eabi/6.3.1/../../../../arm-none-eabi/lib\libc.a(lib_a-closer.o): In funct 
ion `_close_r': 
closer.c:(.text._close_r+0x18): undefined reference to `_close' 
c:/program files (x86)/gnu tools arm embedded/6 2017-q1-update/bin/../lib/gcc/ar 
m-none-eabi/6.3.1/../../../../arm-none-eabi/lib\libc.a(lib_a-fstatr.o): In funct 
ion `_fstat_r': 
fstatr.c:(.text._fstat_r+0x20): undefined reference to `_fstat' 
c:/program files (x86)/gnu tools arm embedded/6 2017-q1-update/bin/../lib/gcc/ar 
m-none-eabi/6.3.1/../../../../arm-none-eabi/lib\libc.a(lib_a-isattyr.o): In func 
tion `_isatty_r': 
isattyr.c:(.text._isatty_r+0x18): undefined reference to `_isatty' 
c:/program files (x86)/gnu tools arm embedded/6 2017-q1-update/bin/../lib/gcc/ar 
m-none-eabi/6.3.1/../../../../arm-none-eabi/lib\libc.a(lib_a-lseekr.o): In funct 
ion `_lseek_r': 
lseekr.c:(.text._lseek_r+0x24): undefined reference to `_lseek' 
c:/program files (x86)/gnu tools arm embedded/6 2017-q1-update/bin/../lib/gcc/ar 
m-none-eabi/6.3.1/../../../../arm-none-eabi/lib\libc.a(lib_a-readr.o): In functi 
on `_read_r': 
readr.c:(.text._read_r+0x24): undefined reference to `_read' 
collect2.exe: error: ld returned 1 exit status 
+0

Quel périphérique CM0 compilez-vous exactement? ARM-GCC peut très bien fonctionner. – tilz0R

+0

En fait, mon doute est, quelle combinaison je dois utiliser. Je n'ai pas compilé sur le processeur, j'essaie juste de mettre en place l'environnement. Je souhaite afficher mes résultats sur la console. – Kael

+0

De quelle combinaison parlez-vous? – tilz0R

Répondre

-1

Sous Windows pour I M0 J'ai utilisé IAR Embedded Workbench, qui était une expérience agréable et lisse pour moi. Mais autant que je m'en souvienne, il fallait une licence. Peut-être que vous devriez chercher des options libres dans cette liste.

+0

Non lié à la question. – tilz0R

+0

@ tilz0R Il y a beaucoup de questions dans le sujet sujet, et l'un d'entre eux était "Quel compilateur peut être utilisé pour ARM" pour lequel j'ai fourni une liste d'options, recommandant l'option que j'avais l'expérience avec. Pouvez-vous élaborer un peu plus sur ce qui dans mon poste n'était pas lié? – metamorphling

0

Vous pouvez utiliser le compilateur ARM GNU d'Eclipse marketplace. Une fois installé, vous pouvez créer un nouveau projet C/C++ avec le type de projet correct - par exemple. Executable/STM32F0xx C/C++ project si c'est la série de puce que vous souhaitez cibler. Assurez-vous que la sortie Trace dans l'assistant n'est PAS définie sur None (no trace output). Vous pouvez ensuite utiliser trace_printf pour écrire sur la console hôte via ST-LINK, comme le montre l'exemple hello-world.

Vous devrez peut-être également installer et configurer OpenOCD pour capturer cette sortie et l'afficher dans la console d'Eclipse. Dans Eclipse, vous venez de configurer un outil externe Run > External tools > External tools configuration. Spécifiez l'emplacement de openocd.exe, définissez le répertoire de travail et, dans Arguments, spécifiez quel programme vous utilisez en utilisant le fichier de configuration approprié, par ex. -f board\stm32f072discovery.cfg.

Ensuite, compilez, exécutez OpenOCD et déboguez.