Installation de la cible STM32-P103 composé d’un STM32F103RTB6 avec installation d’un noyau temps-réel

Last updated March 29, 2009



Exemple de code : clignotement de la led intégrée




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éation du répertoire de travail

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\
  1. jtagkey.cfg  (pour le J-TAG)
  2. stm32_program_eclipse.cfg
  3. 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.
ċ
demo_src_v1.0.zip
(5865k)
Stefano Oliveri,
Mar 30, 2009, 11:12 AM
Ċ
Stefano Oliveri,
Mar 28, 2009, 7:34 AM
Comments