Systèmes à Microprocesseurs ARM
Systèmes à Microprocesseurs ARM
Sébastien Bilavarn
Polytech
Polytech’Nice
Nice Sophia
Sophia- Dpt
- Département
Ingénierie des
Electronique
Systèmes -Electroniques
Université de -Nice
Université
SophiaCôte
Antipolis
d’Azur- S.
- S.
Bilavarn
Bilavarn -1-
Plan
Ch1 – Représentation de l’information
Ch2 – ARM Instruction Set Architecture
Ch3 – Accès aux données
Ch4 – Programmation structurée
Ch5 – Cycle d’exécution
Ch6 – Codage binaire
Ch7 – Microcontrôleur ARM Cortex-M
Cortex
Polytech
Polytech’Nice
Nice Sophia
Sophia- Dpt
- Département
Ingénierie des
Electronique
Systèmes -Electroniques
Université de -Nice
Université
SophiaCôte
Antipolis
d’Azur- S.
- S.
Bilavarn
Bilavarn -2-
Programmation structurée en
assembleur ARM
Appels de sous-programmes
Structure de pile
Passage de paramètres
Polytech
Polytech’Nice
Nice Sophia
Sophia- Dpt
- Département
Ingénierie des
Electronique
Systèmes -Electroniques
Université de -Nice
Université
SophiaCôte
Antipolis
d’Azur- S.
- S.
Bilavarn
Bilavarn -3-
Notions
Sous-programme:
programme: terme générique désignant un sous-ensemble
sous d’un
programme
Procédure: un sous-programme
programme qui ne renvoie pas de résultat.
Ex: printf ("Hello world\n");
Fonctions: un sous-programme
programme effectuant un traitement sur des données
et qui renvoie un résultat.
Ex: c = max (a, b);
Appel et retour de sous-programmes
programmes
Un sous-programme
programme doit mémoriser l’adresse du code appelant pour
poursuivre l’exécution à l’adresse de retour correspondante
Mécanismes d’échanges de données
Passage de paramètre par valeur: le code appelé dispose d’une copie de
la valeur
Passage de paramètre par référence: le code appelé dispose de l’adresse
du paramètre. Il peut modifier sa valeur.
Valeur de retour d’une fonction: donnée fournie par le code appelé au
code appelant
Polytech
Polytech’Nice
Nice Sophia
Sophia- Dpt
- Département
Ingénierie des
Electronique
Systèmes -Electroniques
Université de -Nice
Université
SophiaCôte
Antipolis
d’Azur- S.
- S.
Bilavarn
Bilavarn -4-
Appel de sous-programmes
sous
Appel et retour de sous-programmes
sous
Pour appeler un sous programme:
Branch and Link: BL label
L’exécution se poursuit à l’instruction correspondant au label
L’adresse de retour est conservée dans le registre LR (Link Register,
r14)
Polytech
Polytech’Nice
Nice Sophia
Sophia- Dpt
- Département
Ingénierie des
Electronique
Systèmes -Electroniques
Université de -Nice
Université
SophiaCôte
Antipolis
d’Azur- S.
- S.
Bilavarn
Bilavarn -5-
Enchaînement d’appels
Principe
void main () {
…
displayMenu();
… void displayMenu () {
} displayStr("[Link]");
displayStr("[Link]");
displayStr("[Link]");
displayStr("[Link]"); void displayStr (char *str) {
} while (*str){
displayChar(*str);
++str;
}
} void displayChar (char ch) {
…
}
Polytech
Polytech’Nice
Nice Sophia
Sophia- Dpt
- Département
Ingénierie des
Electronique
Systèmes -Electroniques
Université de -Nice
Université
SophiaCôte
Antipolis
d’Azur- S.
- S.
Bilavarn
Bilavarn -6-
Enchaînement d’appels
Problème de la traduction en assembleur (1)
main: LR @ retour dans main
…
PC @ displayMenu
BL displayMenu
… Traduction en assembleur:
displayMenu:
Branchement temporaire (BL displayMenu)
…
Dans la fonction main, à l’exécution de l’instruction BL
BL displayStr displayMenu :
… -l’adresse de retour (adresse de l’instruction BL
BL displayStr displayMenu + 4) est sauvegardée dans le registre LR
(r14)
…
-puis on saute à l’adresse de la première instruction
BL displayStr de displayMenu (PC ← @displayMenu)
…
BL displayStr
MOV PC, LR
Polytech
Polytech’Nice
Nice Sophia
Sophia- Dpt
- Département
Ingénierie des
Electronique
Systèmes -Electroniques
Université de -Nice
Université
SophiaCôte
Antipolis
d’Azur- S.
- S.
Bilavarn
Bilavarn -7-
Enchaînement d’appels
Problème de la traduction en assembleur (2)
main: LR @ retour dans displayMenu
…
PC @ displayStr
BL displayMenu
… Dans la fonction displayMenu, à l’exécution de
displayMenu: l’instruction BL displayStr :
… -l’adresse de retour (adresse de l’instruction BL
BL displayStr displayMenu + 4) est sauvegardée dans le registre LR
(r14)
…
-puis on saute à l’adresse de la première instruction
BL displayStr de displayStr (PC ← @displayStr)
…
displayStr: On écrase la valeur
BL displayStr précédente de LR (adresse
… … de retour dans main)!!
BL displayStr BL displayChar
MOV PC, LR
…
MOV PC, LR
Polytech
Polytech’Nice
Nice Sophia
Sophia- Dpt
- Département
Ingénierie des
Electronique
Systèmes -Electroniques
Université de -Nice
Université
SophiaCôte
Antipolis
d’Azur- S.
- S.
Bilavarn
Bilavarn -8-
Enchaînement d’appels
Problème de la traduction en assembleur (3)
main: LR @ retour dans displayStr
…
PC @ displayChar
BL displayMenu
… Dans la fonction displayStr, à l’exécution de
displayMenu: l’instruction BL displayChar :
… -l’adresse de retour (adresse de l’instruction BL
BL displayStr displayStr + 4) est sauvegardée dans le registre LR
(r14)
…
-puis on saute à l’adresse de la première instruction
BL displayStr de displayChar (PC ← @displayChar)
…
displayStr: On écrase la valeur
BL displayStr précédente de LR (adresse
… … de retour dans
BL displayStr BL displayChar displayMenu)!!
MOV PC, LR
… displayChar:
MOV PC, LR …
MOV PC, LR
Polytech
Polytech’Nice
Nice Sophia
Sophia- Dpt
- Département
Ingénierie des
Electronique
Systèmes -Electroniques
Université de -Nice
Université
SophiaCôte
Antipolis
d’Azur- S.
- S.
Bilavarn
Bilavarn -9-
Enchaînement d’appels
Problème de la traduction en assembleur (4)
main: LR @ retour dans displayStr
…
PC @ retour dans displayStr
BL displayMenu
… A la fin de l’exécution de displayChar :
displayMenu:
-on récupère l’adresse de retour dans displayStr, que
… l’on place dans le registre PC (par l’instruction MOV
BL displayStr PC, LR)
… …
BL displayStr BL displayChar
MOV PC, LR
… displayChar:
MOV PC, LR …
MOV PC, LR
Polytech
Polytech’Nice
Nice Sophia
Sophia- Dpt
- Département
Ingénierie des
Electronique
Systèmes -Electroniques
Université de -Nice
Université
SophiaCôte
Antipolis
d’Azur- S.
- S. Bilavarn - 10 -
Bilavarn
Enchaînement d’appels
Problème de la traduction en assembleur (5)
main: LR @ retour dans displayStr
…
PC ???
BL displayMenu
… A la fin de l’exécution de displayStr :
displayMenu:
-on ne peut pas revenir à l’exécution de displayMenu
… car on a perdu l’adresse de retour (ecrasée
BL displayStr précédemment)
… …
BL displayStr BL displayChar
MOV PC, LR
… displayChar:
??? MOV PC, LR …
MOV PC, LR
Polytech
Polytech’Nice
Nice Sophia
Sophia- Dpt
- Département
Ingénierie des
Electronique
Systèmes -Electroniques
Université de -Nice
Université
SophiaCôte
Antipolis
d’Azur- S.
- S. Bilavarn - 11 -
Bilavarn
Enchaînement d’appels
Si un sous-programme
programme est "terminal" (s’il n’appelle
pas d’autre sous-programme),
programme), le registre LR suffit
pour sauvegarder et restaurer l’adresse de retour
Ex: fonction displayChar
Si un sous-programme
programme en appelle un autre, la valeur
de LR doit être sauvegardée avant d’effectuer le saut
à l’instruction BL
Polytech
Polytech’Nice
Nice Sophia
Sophia- Dpt
- Département
Ingénierie des
Electronique
Systèmes -Electroniques
Université de -Nice
Université
SophiaCôte
Antipolis
d’Azur- S.
- S. Bilavarn - 12 -
Bilavarn
Utilisation d’une pile
Principe (1)
main: LR @ retour dans main
…
PC @ displayMenu
BL displayMenu
… displayMenu:
"empiler LR"
À l’exécution de BL Pile
displayMenu, …
l’adresse de retour
BL displayStr
dans main est
sauvegardée dans le …
registre LR.
BL displayStr
Au début de la
…
fonction
displayMenu, on BL displayStr @ retour dans main
empile LR (@retour
…
dans main est
BL displayStr
sauvegardée dans la
"dépiler PC"
pile)
Polytech
Polytech’Nice
Nice Sophia
Sophia- Dpt
- Département
Ingénierie des
Electronique
Systèmes -Electroniques
Université de -Nice
Université
SophiaCôte
Antipolis
d’Azur- S.
- S. Bilavarn - 13 -
Bilavarn
Utilisation d’une pile
Principe (2)
main: LR @ retour dans displayMenu
…
PC @ displayStr
BL displayMenu
… displayMenu:
"empiler LR"
À l’exécution de BL Pile
displayStr, l’adresse …
de retour dans
BL displayStr
displayMenu est
sauvegardée dans le …
registre LR.
BL displayStr displayStr:
Au début de la @ retour dans displayMenu
… "empiler LR"
fonction displayStr,
on empile LR BL displayStr … @ retour dans main
(@retour dans
… BL displayChar
displayMenu est
BL displayStr
sauvegardée en …
"dépiler PC"
mémoire)
"dépiler PC"
Polytech
Polytech’Nice
Nice Sophia
Sophia- Dpt
- Département
Ingénierie des
Electronique
Systèmes -Electroniques
Université de -Nice
Université
SophiaCôte
Antipolis
d’Azur- S.
- S. Bilavarn - 14 -
Bilavarn
Utilisation d’une pile
Principe (3)
main: LR @ retour dans displayStr
…
PC @ displayChar
BL displayMenu
… displayMenu:
"empiler LR"
BL displayChar: on Pile
saute à l’exécution …
de displayChar
BL displayStr
Programme terminal
…
(pas de sous
programme) donc il BL displayStr displayStr:
n’est pas obligatoire @ retour dans displayMenu
… "empiler LR"
d’empiler l’adresse
de retour (LR suffit BL displayStr … @ retour dans main
dans ce cas)
… BL displayChar
BL displayStr
"dépiler PC" …
displayChar:
"dépiler PC"
…
MOV PC, LR
Polytech
Polytech’Nice
Nice Sophia
Sophia- Dpt
- Département
Ingénierie des
Electronique
Systèmes -Electroniques
Université de -Nice
Université
SophiaCôte
Antipolis
d’Azur- S.
- S. Bilavarn - 15 -
Bilavarn
Utilisation d’une pile
Principe (4)
main: LR @ retour dans displayStr
…
PC @ retour dans displayStr
BL displayMenu
… displayMenu:
"empiler LR"
À la fin de Pile
l’exécution de …
displayChar, on
BL displayStr
récupère l’adresse
de retour dans …
displayStr (contenue
BL displayStr displayStr:
dans LR)
… "empiler LR" @ retour dans displayMenu
Polytech
Polytech’Nice
Nice Sophia
Sophia- Dpt
- Département
Ingénierie des
Electronique
Systèmes -Electroniques
Université de -Nice
Université
SophiaCôte
Antipolis
d’Azur- S.
- S. Bilavarn - 19 -
Bilavarn
Mise en place d’une pile
Modèles d’évolution de la pile: Full Descending
Mémoire
Sens des
adresses
croissantes
Zone
mémoire
SP Sommet de la pile réservée à la
pile
Base de la pile
Polytech
Polytech’Nice
Nice Sophia
Sophia- Dpt
- Département
Ingénierie des
Electronique
Systèmes -Electroniques
Université de -Nice
Université
SophiaCôte
Antipolis
d’Azur- S.
- S. Bilavarn - 20 -
Bilavarn
Mise en place d’une pile
Modèles d’évolution de la pile: Full Descending
Pour empiler
Empiler:
-On ECRIT après la dernière la donnée
pointée dans la pile (à l’adresse SP-4)
Mémoire
r1
Sens des
adresses
croissantes
2 mem[SP]word ← r1
SP
- La pile évolue dans le sens des adresses
1 SP ← SP - 4 décroissantes: on décrémente les adresses
SP ← SP- 4 AVANT écriture (adressage pré-
indexé automatique)
- Ecrire la donnée
Mémoire
r1
Sens des
adresses
croissantes
1 r1 ← mem[SP]word
SP
-On incrémente SP ← SP+4 APRES lecture
(adressage post-indexé automatique)
2 SP ← SP + 4
Polytech
Polytech’Nice
Nice Sophia
Sophia- Dpt
- Département
Ingénierie des
Electronique
Systèmes -Electroniques
Université de -Nice
Université
SophiaCôte
Antipolis
d’Azur- S.
- S. Bilavarn - 22 -
Bilavarn
Mise en place d’une pile
Exemple d’utilisation en mode Full Descending
main:
A chaque appel d’une sous-fonction non terminale:
… on empile LR au début, on dépile PC à la fin.
BL DisplayMenu A l’appel d’une sous fonction terminale, LR suffit
pour sauvegarder / récupérer l’adresse de retour.
… displayMenu:
Full descending: remplissage dans le sens des
STR LR, [SP, #-4]! adresses décroissantes:
… Empiler: STR LR, [SP, #-4]!
BL displayStr Dépiler: LDR LR, [SP], #4
…
Sens des
BL displayStr (lr)
displayStr: adresses SP
croissantes
… STR LR, [SP, #-4]!
#
BL displayStr … Sens des (lr)
… adresses
BL DisplayChar SP
croissantes
BL displayStr
LDR PC, [SP], #4 …
displayChar:
LDR PC, [SP], #4
…
MOV PC, LR
Polytech
Polytech’Nice
Nice Sophia
Sophia- Dpt
- Département
Ingénierie des
Electronique
Systèmes -Electroniques
Université de -Nice
Université
SophiaCôte
Antipolis
d’Azur- S.
- S. Bilavarn - 23 -
Bilavarn
Appel de sous-programmes
sous
Précautions nécessaires lors d’appels à sous-
sous
programmes
Un sous-programme
programme est vu comme une boite noire, la partie
visible concerne ses paramètres et sa valeur de retour
Mais
Le programme principal et ses sous-programmes
sous
manipulent tous les mêmes registres
→ un sous-programme
programme peut modifier des valeurs de
registres à l’insu du programme appelant
Polytech
Polytech’Nice
Nice Sophia
Sophia- Dpt
- Département
Ingénierie des
Electronique
Systèmes -Electroniques
Université de -Nice
Université
SophiaCôte
Antipolis
d’Azur- S.
- S. Bilavarn - 26 -
Bilavarn
Appel de sous-programmes
sous
Exemple en utilisant la pile
Sens des (r1)
adresses SP
croissantes
Sauvegarde de r1
Polytech
Polytech’Nice
Nice Sophia
Sophia- Dpt
- Département
Ingénierie des
Electronique
Systèmes -Electroniques
Université de -Nice
Université
SophiaCôte
Antipolis
d’Azur- S.
- S. Bilavarn - 28 -
Bilavarn
Appel de sous-programmes
sous
foo: str lr, [sp, #-4]! foo: STMDB sp!, {r1-r3, r7, lr}
str r7, [sp, #-4]! …
str r3, [sp, #-4]! …
r1
r2 SP str r2, [sp, #-4]! …
r3
r7 str r1, [sp, #-4]! …
lr
… …
… …
ldr r1, [sp], #4 LDMIA sp!, {r1-r3, r7, pc}
ldr r2, [sp], #4
ldr r3, [sp], #4
ldr r7, [sp], #4
ldr pc, [sp], #4
Polytech
Polytech’Nice
Nice Sophia
Sophia- Dpt
- Département
Ingénierie des
Electronique
Systèmes -Electroniques
Université de -Nice
Université
SophiaCôte
Antipolis
d’Azur- S.
- S. Bilavarn - 29 -
Bilavarn
Appel de sous-programmes
sous
Polytech
Polytech’Nice
Nice Sophia
Sophia- Dpt
- Département
Ingénierie des
Electronique
Systèmes -Electroniques
Université de -Nice
Université
SophiaCôte
Antipolis
d’Azur- S.
- S. Bilavarn - 30 -
Bilavarn
Récapitulatif sur l’utilisation de la pile (1)
Changement de contexte
Au début d’un sous programme: sauvegarde de l’adresse
de retour et des registres.
A la fin d’un sous programme: restauration des registres et
de l’adresse de retour.
Polytech
Polytech’Nice
Nice Sophia
Sophia- Dpt
- Département
Ingénierie des
Electronique
Systèmes -Electroniques
Université de -Nice
Université
SophiaCôte
Antipolis
d’Azur- S.
- S. Bilavarn - 31 -
Bilavarn
Passage de paramètres
L’utilisation de variables globales pour passer des
informations à un sous-programme
sous est fortement
déconseillée
Les paramètres sont considérés comme des
variables locales de chaque sous-programme
sous
Mais
les registres sont en nombre limité, souvent utilisés pour
d’autres usages
mêmes inconvénients que les variables globales (risque de
Polytech
Polytech’Nice
Nice Sophia
Sophia- Dpt
- Département
Ingénierie des
Electronique
Systèmes -Electroniques
Université de -Nice
Université
SophiaCôte
Antipolis
d’Azur- S.
- S. Bilavarn - 33 -
Bilavarn
Passage de paramètres
Mise en place: passage par registres
Exemple: calcul de PGCD
Le sous-programme
programme prend deux paramètres entiers passés
dans r1 et r2 pgcd: mov r0, #0
cmp r1, #0
Il renvoie le résultat dans r0
beq epgcd
main: mov r1, #24 cmp r2, #0
mov r2, #18 beq epgcd
bl pgcd loop1: cmp r1, r2
moveq r0, r1
Polytech
Polytech’Nice
Nice Sophia
Sophia- Dpt
- Département
Ingénierie des
Electronique
Systèmes -Electroniques
Université de -Nice
Université
SophiaCôte
Antipolis
d’Azur- S.
- S. Bilavarn - 34 -
Bilavarn
Passage de paramètres
Mise en place: passage par la pile
Offre un mécanisme simple d’allocation et de libération
dynamique d’espace mémoire: il suffit de déplacer le
pointeur de pile
Le programme appelant empile les paramètres
Le sous-programme
programme appelé les lit dans la pile et libère
l’espace occupé au moment de sortir
Sens des
18
adresses 24
croissantes SP
Polytech
Polytech’Nice
Nice Sophia
Sophia- Dpt
- Département
Ingénierie des
Electronique
Systèmes -Electroniques
Université de -Nice
Université
SophiaCôte
Antipolis
d’Azur- S.
- S. Bilavarn - 35 -
Bilavarn
Passage de paramètres
Mise en place: passage par la pile
pgcd:
ldr r4, [sp, #4]
#18
#24 ldr r5, [sp]
mov r0, #0
main: mov r0, #24
cmp r4, #0
str r0, [sp, #-4]!
beq epgcd
mov r0, #18
cmp r5, #0
str r0, [sp, #-4]!
beq epgcd
bl pgcd
loop1: cmp r4, r5
add sp, sp, #8
moveq r0, r4
Polytech
Polytech’Nice
Nice Sophia
Sophia- Dpt
- Département
Ingénierie des
Electronique
Systèmes -Electroniques
Université de -Nice
Université
SophiaCôte
Antipolis
d’Azur- S.
- S. Bilavarn - 36 -
Bilavarn
Passage de paramètres
Mise en place: passage par la pile
r4 pgcd: stmfd sp!, {r4, r5, lr}
r5
lr ldr r4, [sp, #16]
#18
#24 ldr r5, [sp, #12]
mov r0, #0
main: mov r0, #24
cmp r4, #0
str r0, [sp, #-4]!
beq epgcd
mov r0, #18
cmp r5, #0
str r0, [sp, #-4]!
beq epgcd
bl pgcd
loop1: cmp r4, r5
add sp, sp, #8
moveq r0, r4
Polytech
Polytech’Nice
Nice Sophia
Sophia- Dpt
- Département
Ingénierie des
Electronique
Systèmes -Electroniques
Université de -Nice
Université
SophiaCôte
Antipolis
d’Azur- S.
- S. Bilavarn - 37 -
Bilavarn
Passage de paramètres
Mise en place: passage par pgcd: stmfd sp!, {r4, r5, lr}
la pile ldr r4, [sp, #16]
ldr r5, [sp, #12]
mov r0, #0
cmp r4, #0
main: mov r0, #24
beq epgcd
str r0, [sp, #-4]!
cmp r5, #0
mov r0, #18
beq epgcd
str r0, [sp, #-4]!
loop1: cmp r4, r5
bl pgcd
moveq r0, r4
Même chose en libérant l’espace des paramètres
dans la fonction pgcd, donc juste avant de beq epgcd
retourner à la fonction appelante (mov pc, lr) subgt r4, r4, r5
sublt r5, r5, r4
r4
r5 b loop1
lr
#18 epgcd: ldmfd sp!, {r4, r5, lr}
#24
add sp, sp, #8
SP
mov pc, lr
Polytech
Polytech’Nice
Nice Sophia
Sophia- Dpt
- Département
Ingénierie des
Electronique
Systèmes -Electroniques
Université de -Nice
Université
SophiaCôte
Antipolis
d’Azur- S.
- S. Bilavarn - 38 -
Bilavarn
Récapitulatif sur l’utilisation de la pile (2)
Changement de contexte
Au début d’un sous programme: sauvegarde de l’adresse
de retour et des registres modifiés.
A la fin d’un sous programme: restauration des registres et
de l’adresse.
Passage de paramètres par la pile
Dans le programme appelant
Empiler les paramètres
Dans le sous programme appelé
Sauvegarder les registres (le contexte)
Lire les paramètres dans la pile
Traitement de la fonction
Restaurer les registres (le contexte)
Libérer l’espace occupé par les paramètres dans la pile
Polytech
Polytech’Nice
Nice Sophia
Sophia- Dpt
- Département
Ingénierie des
Electronique
Systèmes -Electroniques
Université de -Nice
Université
SophiaCôte
Antipolis
d’Azur- S.
- S. Bilavarn - 39 -
Bilavarn
ARM Procedure Call Standard (APCS)
Pour faciliter l’interfaçage de routines issues de
sources différentes (compilateurs, programmeur), un
ensemble de règles a été défini pour standardiser les
entrées et sorties de sous-programmes.
sous
L’APCS permet
de définir une utilisation spécifique des registres
de définir quel type de pile à utiliser (full/empty,
ascending/descending supporté par le jeu d’instruction)
de définir les mécanismes de passage de paramètres et de
résultat utilisés par les fonctions et procédures
etc
Polytech
Polytech’Nice
Nice Sophia
Sophia- Dpt
- Département
Ingénierie des
Electronique
Systèmes -Electroniques
Université de -Nice
Université
SophiaCôte
Antipolis
d’Azur- S.
- S. Bilavarn - 40 -
Bilavarn
ARM Procedure Call Standard (APCS)
Convention d’utilisation des registres
Registre Nom APCS Description
Polytech
Polytech’Nice
Nice Sophia
Sophia- Dpt
- Département
Ingénierie des
Electronique
Systèmes -Electroniques
Université de -Nice
Université
SophiaCôte
Antipolis
d’Azur- S.
- S. Bilavarn - 41 -
Bilavarn
Cadre de pile (stack frame)
Mémoire
La pile est utilisée pour conserver
Les paramètres d’un sous programme
L’adresse de retour
Les valeurs des registres sauvegardés
SP
Les variables locales Variables
locales
Registres
sauvegardés
On utilise un registre appelé frame pointer (dont LR)
Le registre R11 FP
Polytech
Polytech’Nice
Nice Sophia
Sophia- Dpt
- Département
Ingénierie des
Electronique
Systèmes -Electroniques
Université de -Nice
Université
SophiaCôte
Antipolis
d’Azur- S.
- S. Bilavarn - 43 -
Bilavarn
ARM Procedure Call Standard (APCS)
Modèle de pile: Full Descending
Cadre de pile
SP
Variables
Sens des locales
adresses
croissantes
Registres
Optionnel sauvegardés
(r0 à r9)
FP
SP
LR
FP PC
Paramètres
Polytech
Polytech’Nice
Nice Sophia
Sophia- Dpt
- Département
Ingénierie des
Electronique
Systèmes -Electroniques
Université de -Nice
Université
SophiaCôte
Antipolis
d’Azur- S.
- S. Bilavarn - 44 -
Bilavarn