david gauchard 4 years ago
parent
commit
9a4c4917e0
1 changed files with 7 additions and 7 deletions
  1. 7
    7
      doc/sujets/tex/guide_compilation/guide.tex

+ 7
- 7
doc/sujets/tex/guide_compilation/guide.tex View File

132
 \begin{itemize}
132
 \begin{itemize}
133
 \item {\tt /destijl\_init/main.cpp} qui contient le main de l'application et lance la création des objets et leur exécution,
133
 \item {\tt /destijl\_init/main.cpp} qui contient le main de l'application et lance la création des objets et leur exécution,
134
 \item {\tt /destijl\_init/src/tasks.h} qui contient l'entête des différentes fonctions,
134
 \item {\tt /destijl\_init/src/tasks.h} qui contient l'entête des différentes fonctions,
135
-\item {\tt /destijl\_init/src/tasks.cpp} qui contient l'implémentation des fonctions de création des objets (tâches, sémaphores, mutex, etc.) ainsi que les fonction de traitement.
135
+\item {\tt /destijl\_init/src/tasks.cpp} qui contient l'implémentation des fonctions de création des objets (tâches, sémaphores, mutex, etc.) ainsi que les fonctions de traitement.
136
 \end{itemize}
136
 \end{itemize}
137
 
137
 
138
 
138
 
142
 \section{Compilation d'une application distante}
142
 \section{Compilation d'une application distante}
143
 %%%%%%%%%%%%%%%%%%%%
143
 %%%%%%%%%%%%%%%%%%%%
144
 
144
 
145
-L'application étant sur une \raspi, il vous faut compiler le programme pour cette architecture. Nous vous proposons d'utiliser Netbeans pour écrire votre code et faire la compilation distante. Cela signifie que votre code est stocké sur votre compte INSA, que vous éditer le code sur la machine de TP, que ce code est ensuite automatiquement chargé sur la \raspi puis compilé (Netbeans permet de faire tout cela).
145
+L'application étant sur une \raspi, il vous faut compiler le programme pour cette architecture. Nous vous proposons d'utiliser Netbeans pour écrire votre code et faire la compilation distante. Cela signifie que votre code est stocké sur votre compte INSA, que vous éditez le code sur la machine de TP, que ce code est ensuite automatiquement chargé sur la \raspi puis compilé (Netbeans permet de faire tout cela).
146
 
146
 
147
-Pour commencer lancer Netbeans et ouvrez le projet {\tt superviseur-robot}.
147
+Pour commencer, lancez Netbeans et ouvrez le projet {\tt superviseur-robot}.
148
 
148
 
149
 Avant de compiler, il vous faut configurer la cible sur laquelle la compilation va se faire:
149
 Avant de compiler, il vous faut configurer la cible sur laquelle la compilation va se faire:
150
 \begin{enumerate}
150
 \begin{enumerate}
165
 \item Cliquez {\tt OK}.
165
 \item Cliquez {\tt OK}.
166
 \end{enumerate}
166
 \end{enumerate}
167
 
167
 
168
-Pour compiler, il suffit ensuite de cliquer sur l'icône en forme de marteau. Vous pourrez voir dans le terminal les étapes de compilation qui commence par le transfert des fichiers suivi de la compilation proprement dite.
168
+Pour compiler, il suffit ensuite de cliquer sur l'icône en forme de marteau. Vous pourrez voir dans le terminal les étapes de compilation qui commencent par le transfert des fichiers suivi de la compilation proprement dite.
169
 
169
 
170
 {\bf Remarque} : la première compilation est un peu longue, mais devrait ensuite se fluidifier avec la compilation incrémentale.
170
 {\bf Remarque} : la première compilation est un peu longue, mais devrait ensuite se fluidifier avec la compilation incrémentale.
171
 
171
 
175
 \label{sec:utilisation}
175
 \label{sec:utilisation}
176
 %%%%%%%%%%%%%%%%%%%%
176
 %%%%%%%%%%%%%%%%%%%%
177
 
177
 
178
-Pour exécuter l'application sur le superviseur, il faut après avoir mis en place un terminal distant (voir ci-dessous) puis démarrer l'exécution avec la commande {\tt sudo ./path/app} où {\tt path} est le chemin du répertoire où se trouve l'application et {\tt app} est le nom de votre application. Attention les droits {\tt sudo} sont nécessaires pour des questions d'accès à certains services Xenomai de gestion de la mémoire.
178
+Pour exécuter l'application sur le superviseur, il faut avoir mis en place un terminal distant (voir ci-dessous) puis démarrer l'exécution avec la commande {\tt sudo ./path/app} où {\tt path} est le chemin du répertoire où se trouve l'application et {\tt app} est le nom de votre application. Attention les droits {\tt sudo} sont nécessaires pour des questions d'accès à certains services Xenomai de gestion de la mémoire.
179
 
179
 
180
 Si vous utilisez Netbeans, le répertoire dans lequel est compilée l'application se trouve dans l'arboressence commençant par {\tt .netbeans} (attention au "." au début). Il faut descendre dans cette arboressence jusqu'à une bifurcation, puis choisir le répertoire {\tt dist} et aller jusqu'au bout. L'application se trouve au bout de cette branche.
180
 Si vous utilisez Netbeans, le répertoire dans lequel est compilée l'application se trouve dans l'arboressence commençant par {\tt .netbeans} (attention au "." au début). Il faut descendre dans cette arboressence jusqu'à une bifurcation, puis choisir le répertoire {\tt dist} et aller jusqu'au bout. L'application se trouve au bout de cette branche.
181
 
181
 
209
  
209
  
210
  Les seuls fichiers que vous allez avoir à modifier sont les fichiers {\tt tasks.h} et {\tt tasks.cpp}. La classe {\tt Tasks} a pour attributs privés l'ensemble des structures constituant l'application (tâches, mutex, sémarphores, ressources, etc.). Les fonctions de traitement associées aux tâches sont déclarées comme des méthodes privées de {\tt Tasks}.
210
  Les seuls fichiers que vous allez avoir à modifier sont les fichiers {\tt tasks.h} et {\tt tasks.cpp}. La classe {\tt Tasks} a pour attributs privés l'ensemble des structures constituant l'application (tâches, mutex, sémarphores, ressources, etc.). Les fonctions de traitement associées aux tâches sont déclarées comme des méthodes privées de {\tt Tasks}.
211
  
211
  
212
- La classe {\tt Tasks} propose quatre méthodes publics :
212
+ La classe {\tt Tasks} propose quatre méthodes publiques :
213
  \begin{itemize}
213
  \begin{itemize}
214
  	\item {\tt Init()} qui crée les structures de l'application,
214
  	\item {\tt Init()} qui crée les structures de l'application,
215
 	\item {\tt Run()} qui lance les tâches,
215
 	\item {\tt Run()} qui lance les tâches,
217
 	\item {\tt Join()} qui suspend l'exécution du {\tt main}.\\
217
 	\item {\tt Join()} qui suspend l'exécution du {\tt main}.\\
218
  \end{itemize}
218
  \end{itemize}
219
 
219
 
220
-Pour ajoutez des structures à l'application, il suffit de les déclarer dans le fichier {\tt tasks.h} puis de s'assurer qu'elles sont bien instanciées dans les méthodes adéquates de {\tt tasks.cpp}. Pour une tâche, il faut en plus déclarer une nouvelle méthode privée dans {tasks.h} et fournir son implémentation dans {tasks.cpp}. Cette nouvelle méthode sera le point d'entrée de la tâche.
220
+Pour ajouter des structures à l'application, il suffit de les déclarer dans le fichier {\tt tasks.h} puis de s'assurer qu'elles sont bien instanciées dans les méthodes adéquates de {\tt tasks.cpp}. Pour une tâche, il faut en plus déclarer une nouvelle méthode privée dans {tasks.h} et fournir son implémentation dans {tasks.cpp}. Cette nouvelle méthode sera le point d'entrée de la tâche.
221
 
221
 
222
 Toute la documentation de Xenomai se trouve en ligne (attention c'est Xenomai 3) et nous utilisons l'\href{https://xenomai.org/documentation/xenomai-3/html/xeno3prm/group__alchemy.html}{API alchemy}.
222
 Toute la documentation de Xenomai se trouve en ligne (attention c'est Xenomai 3) et nous utilisons l'\href{https://xenomai.org/documentation/xenomai-3/html/xeno3prm/group__alchemy.html}{API alchemy}.
223
 
223
 

Loading…
Cancel
Save