mardi 1 avril 2014

LPC810, partie 3, création d'un projet

Dans la première partie nous avons compiler un projet téléchargé de github après l'avoir modifié légèrement. Dans cette partie je montre comment créer un nouveau projet. Actuellement la fenêtre project explorer devrait contenir les projets contenu dans LPCXpresso Sample Code Bundle for the LPC8xx. Si ce n'est pas le cas il faut télécharger et importer (comme expliquer dans la partie 1) le fichier zip dans project explorer. Au final la fenêtre devrait ressemblée à ceci:

Pour créer un nouveau projet on peut passé par File - new - project ou cliquez sur new project dans la fenêtre Quickstart panel.

Étape 1, type de projet:

Étape 2, nom du projet: on va l'appellé rgb_blinky
Étape 3, sélection du microcontrôleur: LPC810
Étape 4, sélection de la librairie: on laisse ça tel quel et on clique sur next
Étape 5, sélection de la librairie DSP: on en utilise aucune, on laisse à none et on clique next
Étape 6, débogage: on n'a pas de débogueur donc on décoche enable definition of buffer array for MTB et on met le champ number of byte to reserve for the MTB à zéro. next
Étape 7, other options: on peut décoché enable CRP in target image et faire finish

Maintenant notre projet rgb_blinky apparaît dans project explorer. On le sélectionne et en cliquant sur son nom avec le bouton droit de la souris on choisi properties tout en bas du menu surgissant. Dans c/c++ build - settings on sélectionne l'onglet build steps on modifie le champ command du groupe post-build steps en ajoutant au texte existant la ligne suivante:

arm-none-eabi-objcopy -v -O ihex "${BuildArtifactFileName}"
 "${BuildArtifactFileBaseName}.hex"
Car on veut obtenir un fichier rgb_blinky.hex pour utilisation dans flash magic.

Personnellement j'aime bien avoir un listing assembleur, donc avant de fermer les propriétés on va aller dans c/c++ build - Setting onglet Tool settings, dossier miscellaneous et on va ajouter à la fin du champ other flags

-Wa,-a,-ad="$*.lst"

On peut maintenant travailler sur le code source. Dans le dossier src de notre projet on double clique sur main.c pour l'ouvrir dans l'éditeur. On a déjà un squelette de l'application voici mon code finalisé. Ce programme fait simplement clignoté la LED RGB en blanc à 1 rythme d'une fois par seconde. Faites un copier-coller à partir de cette page et on va compiler en version release puisque de toute façon on n'a pas de débogueur.
Il est possible que lors de la compilation le linker affiche des messages d'erreur disant qu'il ne trouve pas les librairies CMSIS_CORE_LPC8xx et lpc800_driver_lib. C'est probablement parce que ces 2 projets non pas été compilés en version release. Vérifiez s'il y a un dossier release dans chacun des ces 2 projets. Si ce n'est pas le cas compilez les en version release.

Pour rappel la compilation se fait en sélectionnant le nom du projet et ensuite la petite flèche à droite du marteau dans la barre d'outils. Choisir 2 Release (Releas build).

Le compilateur me donne encore une erreur:

../src/main.c:18:30: fatal error: lpc8xx_clkconfig.h: 
    No such file or directory
 #include "lpc8xx_clkconfig.h"
J'ai oublié quelque chose dans la configuration:
lpc800_driver_lib n'était pas coché dans Project reference. Deuxième tentative même erreur. Il manque encore quelque chose dans la configuration des propriétés. S'il ne trouve pas le fichier d'entête c'est qu'il ne connait pas le chemin on va donc ajouter ce chemin dans C/C++ general - Path and symbols onglet includes. On sélectionne GNU C et on clique le bouton add...
Cette librairie dans est dans le dossier workspace donc on coche is a workspace path et on donne le chemin relatif. Dans la même fenêtre dans l'onglet library paths on clique sur add...
Et finalement dans l'onglet libraries on ajoute lpc800_driver_lib
Compilation! Cette fois ça marche. Ne reste plus qu'à flasher rgb_blinky.hex tel qu'expliqué en partie 1.

Aucun commentaire:

Publier un commentaire