Avertissement : ne connectez pas la cible, ni le J-TAG à l’ordinateur, jusqu’au moment demandé, sous peine de devoir réinstaller tout les drivers.
Créer un dossier C:/STM32_P103/
Installer eclipse
Le programme fonctionnera uniquement sous la version la plus récente :
ganymede
Dézipper le fichier «
eclipse-cpp-ganymede-SR2-win32.zip » dans ce dossier afin d’obtenir l’arborescence suivante : C:/STM32_P103/eclipse/
Installation du compilateur GCC adapté à la cible
Exécutez le fichier
arm-2008q3-66-arm-none-eabi.exe
Mettre à jours votre machine virtuelle (JVM)
Allez sur le site suivant afin de télécharger la dernière version :
http://java.sun.com/javase/downloads/index.jsp
Installer OpenOCD
Téléchargez la version 0.1.0.
OpenOCD version 0.1.0 (le code fournit est configuré pour cette version)
Configurer Eclipse
Exécutez C:\STM32_P103\eclipse\eclipse.exe
Une fenêtre vous demandera de rentrer un workspace. Cliquez sur OK.
Allez dans le menu help->softwares update
Affichez l’arborescence suivante : (cela peut prendre un certain temps. Vous devez être connecté sur internet.)
Cliquez sur Install.
Une analyse des dépendances s’effectuera, puis cliquez sur Next pour les installer.
Redémarrez ensuite eclipse, lorsqu’il vous le proposera (toujours avec le même espace de travail).
Installation d’un exemple de code source
Créer le répertoire suivant : C:\STM32_P103\eclipse\workspace\
Ouvrez et décompressez le fichier demo_src_v1.0.zip, dans ce workspace.
Vous obtenez ainsi le chemin suivant : C:\STM32_P103\eclipse\workspace\demo_src_v1.0\
Ouverture du workspace
Allez dans File->switch workspace->other
Entrez ce chemin :
C:\STM32_P103\eclipse\workspace\demo_src_v1.0\FreeRTOS\Demo\CORTEX_STM32Fxxx_Eclipse
Cliquez sur OK.
Rafraichissez l’espace de travail (clic droit sur RTOSDemo)
Paramétrage des variables du RTOS
Allez dans Windows->préférences
Ouvrez l’arborescence suivant : (général-> workspace->linked ressources)
Cliquez sur Edit->forlder
Entrez le chemin suivant : C:\STM32_P103\eclipse\workspace\demo_src_v1.0\FreeRTOS
Cliquez ensuite sur OK.
Rafraichissez de nouveau votre espace de travail
Installation des drivers du J-TAG
Exécutez le fichier «
amontec_jtagkey_utils_060307_setup.exe »
Entrez le chemin par défaut :
Connexions
Branchez l’alimentation de la cible (STM32-P103 board d’Olimex), puis connectez là au J-TAG.
Branchez la partie USB du J-TAG à votre ordinateur.
Il vous sera demandé de choisir l’emplacement des drivers. Ne choisissez pas l’option automatique. Allez le chercher dans le répertoire approprié, comme indiqué ci-dessous :
Vérifiez dans le gestionnaire de périphérique que l’interface J-TAG est correctement installée. Vous devriez y voir l’amontec JTAGkey (channel A & B).
Ajout des raccourcis
Allez dans Windows->préférences ->général->keys
Vous pouvez donc y rajouter des raccourcis.
Par défaut, les touches suivantes ont pour fonction :
F7 : Compilation du programme.
F8 : envoi du fichier binaire sur la cible.
Envoi sur la cible
Tapez F7 :
Vérifiez qu’il n’y a pas d’erreur
Tapez F8 :
Mode sans raccourci :
Run->external tools-> OpenOCD programmer (serveur servant plus tard au debug)
Lorsque le fichier binaire est envoyé vers la cible, une icône rouge s’active. Attendez la fin de l’envoi.
Envoi en cours (programmation en mémoire flash) :
Fin de l’envoi :
Test du bon fonctionnement de la carte
Le programme est désormais stocké dans la mémoire flash du STM32. Afin de lancer le programme envoyé, appuyez sur le bouton reset de la carte. Vous verrez ainsi la LED rouge intégré à la carte clignoter.
Debug Mode
Afin de débugger votre programme, nous avons placé deux points d’arrêts. Le premier au début du programme « debug() ; », le second dans la boucle de la led. Ainsi, au démarrage du débogage, une alerte sera signalée, puis la led s’arrêtera à chaque pause.
Vous êtes actuellement dans la perspective C/C++.
Cliquez sur Run->external tools->openOCD Server
Vous devriez ainsi voir dans la console qu’un programme est en cours de traitement. Le serveur (daemon) est donc opérationnel.
Cliquez sur le bouton de DEBUG (cafard vert, avec la flèche à sa droite).
Choisissez RTOSDemo.
Une alerte s’affiche :
Cliquez remember, puis Yes.
En haut, vous aurez une barre d’outil, permettant de passer à l’étape suivante :
En cliquant sur ce bouton, le programme s’exécute jusqu'au prochain point d’arrêt. Qui se retrouve dans la fonction debug() ;
Si vous désirez modifier le contenu d’une variable, vous pouvez le faire dans la fenêtre de droite
Tapez par exemple dans la case de xDelay, la valeur 5000. Et vous aurez le prochain clignotement de la LED dans 5 secondes, après avoir appuyé sur la touche F8.
Vous pouvez également modifier la valeur affichée de ce champ, en Hexa, décimal, etc…
Pour cela, faites clic droit sur la valeur désirée, puis format
Remarque
- Le noyau en temps-réel (FreeRTOS) a été configuré de manière à être fonctionnel avec OpenOCD + Eclipse Ganymede + CodeSourcery G++ lite + Amontec JTAGkey-tiny . Si vous changez de composant, ou bien de compilateur, vous devrez reconfigurer les fichiers se trouvant dans le répertoire suivant :
C:\STM32_P103\eclipse\workspace\demo_src_v1.0\FreeRTOS\Demo\CORTEX_STM32Fxxx_Eclipse\
- jtagkey.cfg (pour le J-TAG)
- stm32_program_eclipse.cfg
- stm32_mdBZ.cfg (pour le debug mode)
- Le programme binaire est envoyé dans la flash. Le programme se lancera donc à la mise sous tension de la platine de développement.
- La vitesse d’allumage de la LED se fait durant quelques microsecondes, toute les secondes.
- Vous devez ouvrir vos ports, si vous avez un firewall. En effet, l’ordinateur communique avec la cible a l’aide d’une connexion telnet notamment. Si ces ports ne sont pas ouverts, vous ne pourrez programmer et debugger votre cible. Pour avoir la liste des ports utilisés, ouvrez le fichier jtagkey.cfg
All the code is developed for test purpose and it is unsupported. The author assumes no responsibility for any damage caused by improper uses.