Bonjour,
Comme la rubrique s'appelle aussi "offres", j'offre un projet "FreeRTOS" Eclipse/gcc/gdb sur Coldfire
thierry
-----
Bonjour,
Comme la rubrique s'appelle aussi "offres", j'offre un projet "FreeRTOS" Eclipse/gcc/gdb sur Coldfire
thierry
Et avec les modes d'emploi pour ColdFire et ARM7.
Merci de votre feedback
thierry
Bonjour,
Voici le 3ème post qui en fait devrait être le premier.
Quel est le « sujet » de ce projet ?
Et bien, personnellement, après avoir débuté (-en tant qu'amateur)-sur des microcontrôleurs 8 bits, après 2 ans m'est venu l'envie de passer aux 32 bits. D'après mes tests, il y a un facteur 10 entre la rapidité d'un 8 et d'un 32 bits à même fréquence. De plus, ces processeurs (en bas de gamme) débutent à 60 Mhz.
Les questions se posent alors :
Quel processeur ?
Quels outils de développement
Le Hardware ?
Comment exploiter ces µC ?
Après avoir cherché, je peux apporter une contribution de réponse à ces questions :
Les processeurs, c'est actuellement ceux qui sont très largement les plus utilisés : ARM7/9 et ColdFire (descendants des fameux 68000). Des microcontrôleurs ARM sont fabriqués par de nombreuses marques : NXP (Phillips), ATMEL, ST, Analog, ...
Les outils de développement: Une chaîne professionnelle coûte quelques Kilo-euros. Mais il existe GCC (GNU Compiler Collection) de la Free Software Fondation (FSF). Du gratuit à la pointe de le technologie. Mais GCC n'est compilateur en ligne de commande. Il faut aussi un IDE, cela existe aussi et est particulièrement génial : Eclipse. (www.eclipse.org)
Le dernier maillon de la chaine est le débugger. GDB (de la chaine GCC) est excellent, mais il faut une interface avec le hardware. Pour les ARM, il existe depuis peu OpenOCD, serveur de commandes GDB. Gratuit et Open Source, fonctionne avec sonde JTAG ou wiggler approprié. Pour les Coldfire, c'est un peu plus compliqué. Il existe un «stub» gratuit, mais qui ne permet pas de programmer la flash. Il existe un programmateur Flash gratuit, mais ne fonctionnant qu'avec une sonde BDM propriétaire.
A remarquer que ces chaînes de développement, totalement gratuites, n'ont PAS de limitation (en Ko de code, en temps, en optimisations,..)
Bref pour résumer :
Sur ARM :
Il faut :
une carte de développement : 30 à xxx Euros (voir Ebay)
Une sonde Jtag ( 29 eur le moins cher que j'aie trouvé) ou fabriquer un « Wiggler » (10 euros maximum pour un PC équipé d'un port parallèle.
Un environnement de développement gratuit (compilateur C, debugger In circuit, programmateur Flash ) : Eclipse – GCC/GDB – Open OCD (fonctionne aussi sous linux).
Sur Coldfire :
Une carte de développement (M5211DEMO 99 eur chez Freescale ou Digikey) ou autre à xxx eur
(Un BDM (sonde debug): inclus sur la carte)
Environnement de développement gratuit : Eclipse – GCC/GDB – CFFLasher.
Le post précédent explique comment installer et configurer Eclipse/GCC/GDB pour ces deux processeurs. Ce n'est pas simple, j'ai « ramé » pendant plusieurs semaines. Mais, une fois que c'est fait, on peut faire des projets « template » vierges qui évitent cette (re-)configuration.
La mise en oeuvre :
Si sur un µC 8 bits, il est d'usage de faire une boucle infinie, sur les µC 32 bits, cela sous-exploite largement la puissance du processeur. Il faut un « Operating System » temps réel ou RTOS.
Celui qui me semble le plus sympa est FreeRTOS, mais l'explication de ce genre de chose sort du sujet de ce post. Totalement gratuit et porté sur de nombreux processeurs. Mon premier post donne le port que j'ai effectué sur un MCF5212. Des port complets pour ARM existent sur le site de www.freertos.org
Voilà, pour ceux qui seraient tentés de s'aventurer dans l'expérience, je peux affirmer que c'est particulièrement passionnant... (et pas cher) - mais il faut avoir le temps de s'y investir.
thierry
En complément : les fichiers de l'article pour ARM
th
Salut,
Merci beaucoup pour ta doc! Elle m'apporte une très grande aide. J'ai pas encore réussi à m'en sortir avec Eclipse mais je pense que j'ai un problème de compilateur parce que je suis entièrement sous linux et je n'ai pas trouvé arm-elf-gcc.
Au faite tu penses que ça marcherait avec un ARM Cortex M3?
A++ et merci encore ^^
Bonjour,
Rassures-toi, j'ai "ramé" de nombreuses semaines avant que cela marche.
Je ne connais pas trop Linux, que je n'utilise pas (enfin plus)
Tu dois pouvoir trouver une version arm-gcc sous linux sans trop de difficulté. Je te conseille très fortement de prendre une version GCC > à 4.
Par exemple http://www.mikrocontroller.net/artic...x_and_Mac_OS_X
ou alors pose la question sur un forum ARM, ce n'est pas ce qui manque.
Faire fonctionner arm-elf-gcc en ligne de commande DOS est une étape préliminaire.
Je ne sais pas si le cortex M3 est supporté, cela dépend du "build" de arm-gcc. En tous cas, GCC peut le supporter car l'option cette option est disponible (voir les manuals de gcc.gnu.org)
Par contre, Yagarto ne supporte PAS le cortex M3.
Bon amusement
thierry
bonsoir,
merci beaucoup de ce projet ,
je voudrais te demander est ce que tu me donne la permission de diffuser ton projets dans d'autres forums.
merci
Cela ne me pose à priori pas de problème.
Bien sûr sans aucune garantie de ma part ni pour l'usage qui pourrait en être fait.
J'oubliais : sauf si ce sont des forums microchip ou PIC
th.
Pour information, voici la carte que j'ai utilisée pour mes tests Eclipse/GCC sur ARM:
http://cgi.ebay.fr/ws/eBayISAPI.dll?...ksid=p3907.m32
Une très belle petite carte LPC2103 avec tous les connecteurs d'extensions prévus (y compris pour un LCD 2x16). Il y a une interface série avec un bootloader mais je ne l'ai pas utilisée.
et la sonde JTAG :
http://www.amontec.com/jtagkey-tiny.shtml
qui peut être remplacée par un Wiggler à 5 euros.
Donc, un "système de développement" complet ARM7 en C illimité pour moins de 70 eur port inclus.
thierry
Bonjour,
je commence à découvrir la suite Eclipse/gcc/gdb sur une carte de developpement olimex p256 (Atmel atsam7s256) avec un debugger arm openocd. J'ai réussi a programer la carte et à debbugger en assembler mais je rencontre quelque problèmes avec le debbug de la source en langage c. Ensuite je compte installer LCD 2x16 sur les ports PA de la carte.
J'aimerais savoir si les possibilité sont les même que pour un Coldfire vu que le processeur est un ARM7
Bonjour, CI3MENTE
Le debug source C est parfaitement possible. Mais quelle est la nature de ton problème exactement :
- as-tu un fichier.elf?
- debugges tu en flash ou en ram. Je conseille d'abord d'essayer le debug ram, c'est plus simple.
Il faudrait plus d'informations et de précision sur la nature de ton problème.
thierry
Le problème debbug en C est réglé, c'était le lien avec la source qui ne se faisait. Je debug en flash je n'ai pas encore essayer le debugage en ram (j'imagine qu'il faut modifier le run command du debbugger).
Je fini le découvrir le debbugage et après je passe au controle de l'ecran!
Bonjour,
Ravi que cela marche. Si tu veux voir asm+sourceC dans la "perspective" Debug, il faut aller dans le menu "window"->"Show View"->"Disassembly".
Tu verras qu'avec un peu d'habitude, tout devient assez rapidement simple et évident.
thierry
chouette !!!!!!!!!!!!!
ce que tu as dis m'a un peu éclairci sur le sujet mais si on on ne prend pas en main les outils on ne comprends rien , bref je voulais avoir ton avis sur les deux kit de deveppement suivants. que j'ai trouvé sur LEXTRONIC dont voici les liens
http://www.lextronic.fr/P4852-starter-kit-dnpsk29.html
http://www.lextronic.fr/P852-starter-kit-dnpsk16l.html
http://www.lextronic.fr/P891-module-...c-pnp5280.html
en fait je veux réaliser une opération de commande de relais par tension 12V à partie de capture d'un dépassment de température mais les pins d'entrée sortie sont à 3.3 et il faudra ajouter des alims pour assuer le 12V poue l'organe de commutation
je suis vraiment débutant dans le domaine et j'ai besion de votre aide svp
Bonjour,
Voici le 3ème post qui en fait devrait être le premier.
Quel est le « sujet » de ce projet ?
Et bien, personnellement, après avoir débuté (-en tant qu'amateur)-sur des microcontrôleurs 8 bits, après 2 ans m'est venu l'envie de passer aux 32 bits. D'après mes tests, il y a un facteur 10 entre la rapidité d'un 8 et d'un 32 bits à même fréquence. De plus, ces processeurs (en bas de gamme) débutent à 60 Mhz.
Les questions se posent alors :
Quel processeur ?
Quels outils de développement
Le Hardware ?
Comment exploiter ces µC ?
Après avoir cherché, je peux apporter une contribution de réponse à ces questions :
Les processeurs, c'est actuellement ceux qui sont très largement les plus utilisés : ARM7/9 et ColdFire (descendants des fameux 68000). Des microcontrôleurs ARM sont fabriqués par de nombreuses marques : NXP (Phillips), ATMEL, ST, Analog, ...
Les outils de développement: Une chaîne professionnelle coûte quelques Kilo-euros. Mais il existe GCC (GNU Compiler Collection) de la Free Software Fondation (FSF). Du gratuit à la pointe de le technologie. Mais GCC n'est compilateur en ligne de commande. Il faut aussi un IDE, cela existe aussi et est particulièrement génial : Eclipse. (www.eclipse.org)
Le dernier maillon de la chaine est le débugger. GDB (de la chaine GCC) est excellent, mais il faut une interface avec le hardware. Pour les ARM, il existe depuis peu OpenOCD, serveur de commandes GDB. Gratuit et Open Source, fonctionne avec sonde JTAG ou wiggler approprié. Pour les Coldfire, c'est un peu plus compliqué. Il existe un «stub» gratuit, mais qui ne permet pas de programmer la flash. Il existe un programmateur Flash gratuit, mais ne fonctionnant qu'avec une sonde BDM propriétaire.
A remarquer que ces chaînes de développement, totalement gratuites, n'ont PAS de limitation (en Ko de code, en temps, en optimisations,..)
Bref pour résumer :
Sur ARM :
Il faut :
une carte de développement : 30 à xxx Euros (voir Ebay)
Une sonde Jtag ( 29 eur le moins cher que j'aie trouvé) ou fabriquer un « Wiggler » (10 euros maximum pour un PC équipé d'un port parallèle.
Un environnement de développement gratuit (compilateur C, debugger In circuit, programmateur Flash ) : Eclipse – GCC/GDB – Open OCD (fonctionne aussi sous linux).
Sur Coldfire :
Une carte de développement (M5211DEMO 99 eur chez Freescale ou Digikey) ou autre à xxx eur
(Un BDM (sonde debug): inclus sur la carte)
Environnement de développement gratuit : Eclipse – GCC/GDB – CFFLasher.
Le post précédent explique comment installer et configurer Eclipse/GCC/GDB pour ces deux processeurs. Ce n'est pas simple, j'ai « ramé » pendant plusieurs semaines. Mais, une fois que c'est fait, on peut faire des projets « template » vierges qui évitent cette (re-)configuration.
La mise en oeuvre :
Si sur un µC 8 bits, il est d'usage de faire une boucle infinie, sur les µC 32 bits, cela sous-exploite largement la puissance du processeur. Il faut un « Operating System » temps réel ou RTOS.
Celui qui me semble le plus sympa est FreeRTOS, mais l'explication de ce genre de chose sort du sujet de ce post. Totalement gratuit et porté sur de nombreux processeurs. Mon premier post donne le port que j'ai effectué sur un MCF5212. Des port complets pour ARM existent sur le site de www.freertos.org
Voilà, pour ceux qui seraient tentés de s'aventurer dans l'expérience, je peux affirmer que c'est particulièrement passionnant... (et pas cher) - mais il faut avoir le temps de s'y investir.
thierry
chouette !!!!!!!!!!!!!
ce que tu as dis m'a un peu éclairci sur le sujet mais si on on ne prend pas en main les outils on ne comprends rien , bref je voulais avoir ton avis sur les deux kit de deveppement suivants. que j'ai trouvé sur LEXTRONIC dont voici les liens
http://www.lextronic.fr/P4852-starter-kit-dnpsk29.html
http://www.lextronic.fr/P852-starter-kit-dnpsk16l.html
http://www.lextronic.fr/P891-module-...c-pnp5280.html
en fait je veux réaliser une opération de commande de relais par tension 12V à partie de capture d'un dépassment de température mais les pins d'entrée sortie sont à 3.3 et il faudra ajouter des alims pour assuer le 12V poue l'organe de commutation
je suis vraiment débutant dans le domaine et j'ai besion de votre aide svp
Bonjour,
Merci bien pour les exemples et les tutorials, mais le tutorial 'eclipse-arm-gcc' ne décrit pas la configuration lors de l'utilisation de FREERTOS , donc je voudrais savoir si vous pouvez m'aider en me décrivant la configuration surtout que je rencontre des problèmes dans mon projet.
Merci