Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric...

44
Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger B.1b- 1 CONTENU DU COURS A . M ISE EN CONTEXTE B. C ONCEPTS LO G IC IELS ( PR O G R A M M A TIO N EN ASSEM BLEUR ET EN C) C . C ONCEPTS M ATÉRIELS ( COM POSANTS D UN M ICROCONTRÔLEUR )

Transcript of Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric...

Page 1: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger B.1b-1 CONTENU DU COURS.

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

B.1b-1

CONTENU DU COURS

A. MISE EN CONTEXTE

B. CONCEPTS LOGICIELS

(PROGRAMMATION EN ASSEMBLEUR ET

EN C)

C. CONCEPTS MATÉRIELS

(COMPOSANTS D’UN MICROCONTRÔLEUR)

Page 2: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger B.1b-1 CONTENU DU COURS.

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

B.1b-2

Sommaire de la Section B.1B.1 Langage assembleur et programmation

structurée:

1) Processus d’assemblage2) Directives de compilation3) Modes d’adressage4) Jeu d’instructions5) Boucles6) Piles7) Sous-routines: appel et passage de paramètres8) Sous-routines utilitaires du D-BUG129) Programmation structurée

Page 3: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger B.1b-1 CONTENU DU COURS.

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

B.1b-3

B.1(5) Boucles

déf.: structure logicielle qui permet de réaliser le contrôle de flots (i.e., itérations) dans un programme

équivalence en langage C:• for(expression){calculs répétitifs}• while(expression){calculs répétitifs}• do{calculs répétitifs} while(expression)

Utilité de la boucle:

remplace une série de calculs répétitifs par un programme (code machine) compactmais nécessite des calculs supplémentaires (e.g., compteur, tests d’arrêt)

Page 4: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger B.1b-1 CONTENU DU COURS.

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

B.1b-4

B.1(5) Boucles

Étapes pour réaliser une boucle while ou for:1. initialiser les conditions liées à l’expression de la

boucle (compteurs, etc.)

2. évaluer l’expression de la boucle (e.g., comparer la valeur du compteur avec une limite)

3. sortir de la boucle si l’expression est fausse

4. effectuer les calculs répétitifs spécifiés

5. réviser les conditions liées à l’expression de la boucle (e.g., incrémenter le compteur)

6. retourner à l’étape 2

Page 5: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger B.1b-1 CONTENU DU COURS.

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

B.1b-5

B.1(5) Boucles

Étapes pour réaliser une boucle do-while:

1. initialiser les conditions liées à l’expression de la boucle (compteurs, etc.)

2. effectuer les calculs répétitifs spécifiés

3. réviser les conditions liées à l’expression de la boucle (e.g., incrémenter le compteur)

4. évaluer l’expression de la boucle (e.g., comparer la valeur du compteur avec une limite)

5. sortir de la boucle si l’expression est fausse

6. retourner à l’étape 2

Page 6: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger B.1b-1 CONTENU DU COURS.

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

B.1b-6

B.1(5) Boucles

Exemple: calculer la somme de 10 nombres

étiquette op-code opérant(s) commentaires

LDAB #$00 ; remise à 0 de B

LDX #$800 ; initialise l’index IX

LDAA #$00 ; initialise compteur de boucles

CHECK: CMPA #$0A ; condition: (A) = $OA?

BEQ STOP ; si oui, sortir de la boucle

ADDB 0,X ; effectuer une somme: B+(IX)

INX ; incrémenter l’index IX

INCA ; incrémenter le compteur

BRA CHECK ; prochaine itération de boucle

STOP: STAB SUM ; stocker B dans variable SUM

Page 7: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger B.1b-1 CONTENU DU COURS.

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

B.1b-7

Sommaire de la Section B.1B.1 Langage assembleur et programmation

structurée:

1) Processus d’assemblage2) Directives de compilation3) Modes d’adressage4) Jeu d’instructions5) Boucles6) Piles7) Sous-routines: appel et passage de paramètres8) Sous-routines utilitaires du D-BUG129) Programmation structurée

Page 8: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger B.1b-1 CONTENU DU COURS.

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

B.1b-8

B.1(6) Piles

déf.: structure FILO en mémoire RAM qui est réservée pour stocker des variables temporaires

Utilité:1. programmeur: permet le stockage temporaire des

registres du CPU lors de l’exécution d’un programme2. CPU: permet de gérer l’exécution de sous-routines et RSI

SP − pointeur de pile à 16-bits:contient l’adresse mémoire du sommet de la pile mécanisme qui contrôle l’accès à la pile

sommet de la pile ≡ adresse mémoire correspondant au dernier élément placé/repéré sur la pile

Page 9: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger B.1b-1 CONTENU DU COURS.

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

B.1b-9

B.1(6) Piles

Structure de données First-In, Last-Out (FILO):

Page 10: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger B.1b-1 CONTENU DU COURS.

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

B.1b-10

B.1(6) Piles

Opérations pour la gestion d’une pile:

PUSH – des données sont placées au sommet:avant qu’un octet de données soit placé au sommet, le contenu de SP est décrémenté de 1:

SP = SP – 1

PULL – des données sont pris du sommet:après qu’un octet soit repéré du sommet, le contenu de SP est incrémenté de 1:

SP = SP + 1

Page 11: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger B.1b-1 CONTENU DU COURS.

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

B.1b-11

B.1(6) Piles

Initialisation d’une pile:le programmeur déclare l’emplacement initial du SPon déclare comme (adresse max + 1) dans la plus grande plage de RAM:

MC9S12C32 en labo – prendre l’adresse $1000 (car 2 koctets de RAM: $0800 - $0FFF)

Exemple:

étiquette op-code opérant(s) commentaires

STACKTOP EQU $1000 ; directive

.... .... ....

LDS #STACKTOP ; initialise le SP au début

Page 12: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger B.1b-1 CONTENU DU COURS.

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

B.1b-12

B.1(6) Piles

PUSH − placer le contenu de registres CPU au sommet de la pile

PSHA, PSHB et PSHC: instructions pour placer le contenue de A, B, et CCR dans 1 octet au sommet de la pile1. SP – 1 → SP2. A, B ou CCR → mém(SP)

PSHD, PSHY et PSHX: instructions pour placer le contenue de D, IX, et IY dans 2 octets au sommet de la pile1. SP – 2 → SP2. (A:B), (IXH:IXL) ou (IYH:IYL) → (mém(SP): mém(SP+1))

les instructions PSHx ne modifient pas le CCR

Page 13: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger B.1b-1 CONTENU DU COURS.

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

B.1b-13

B.1(6) Piles

PULL − repérer le contenu au sommet de la pile dans des registres CPU

PULA, PULB et PULC: instructions pour prendre 1 octet du sommet de la pile, et le charger dans A, B et CCR1. mém(SP) → A, B ou CCR 2. SP + 1 → SP

PULD, PULY et PULX: instructions pour prendre 2 octets du sommet de la pile, et les charger dans D, IX et IY1. (mém(SP): mém(SP+1)) → (A:B), (IXH:IXL) ou (IYH:IYL)

SP + 2 → SP

Attention, l’instruction PULC modifie le CCR

Page 14: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger B.1b-1 CONTENU DU COURS.

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

B.1b-14

B.1(6) Piles

Exemple: décrire la fonction de ce code?

étiquette op-code opérant(s) commentaires

LDS #$1000 ; initialise SP

LDAA #$12 ; valeur 8 bits → A

LDAB #$A1 ; valeur 8 bits → B

PSHA ; A → octet de pile

PSHB ; B → octet de pile

PULA ; octet de pile → A

PULB ; octet de pile → B

Page 15: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger B.1b-1 CONTENU DU COURS.

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

B.1b-15

Sommaire de la Section B.1B.1 Langage assembleur et programmation

structurée:

1) Processus d’assemblage2) Directives de compilation3) Modes d’adressage4) Jeu d’instructions5) Boucles6) Piles7) Sous-routines: appel et passage de paramètres8) Sous-routines utilitaires du D-BUG129) Programmation structurée

Page 16: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger B.1b-1 CONTENU DU COURS.

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

B.1b-16

B.1(7) Sous-routines

déf.: un module indépendant et séparé du programme principal, qui est conçu pour effectuer une tâche spécifique

équivalent à une fonction en langage C

Utilité de la sous-routine:réutilisation: on conçoit un programme générique une fois, et on peut l’appeler dans un programme quelconque

lisibilité: permet de remplacer une tâche répétitive par un appel de sous-routine

ressources: donne un code plus compacte, mais nécessite des calculs supplémentaires

Page 17: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger B.1b-1 CONTENU DU COURS.

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

B.1b-17

B.1(7) Sous-routines

Caractéristiques d’une bonne sous-routine:

conservation de l’état du CPU: elle devrait conserver (restaurer) les registres pertinents du CPU lors de l’appel (le retour)

portabilité et indépendance des données et du code:

elle devrait être générique et indépendante du programme principal (et d’autres programmes)

elle devrait éviter les adresses mémoire spécifiques, et les modes DIR et EXT (utilisation de variables locales)

Page 18: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger B.1b-1 CONTENU DU COURS.

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

B.1b-18

B.1(7) Sous-routines

Étapes d’un appel:

Page 19: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger B.1b-1 CONTENU DU COURS.

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

B.1b-19

B.1(7) Sous-routines

Instructions pour appeler une sous-routine:

BSR: stocker le PC et brancher à une sous-routine brancher vers l’adresse indiquée par une valeur de décalagedécalage entre -128 et 127 adresses (nombre signé de 8 bits) utilise normalement une étiquette, plutôt qu’une valeur numérique

JSR: stocker le PC et aller à une sous-routinepermet d’aller à une adresse quelconque de la mémoire avec tous les modes d’adressageplus lent, consomme plus de mémoire

Instruction pour retourner d’une sous-routine

RTS: retourner d’une sous-routine et restaurer le PCrécupérer l’adresse de retour de la sous-routine de la pile

Page 20: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger B.1b-1 CONTENU DU COURS.

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

B.1b-20

B.1(7) Sous-routines

Sous-routine A

Programme principal, passe des paramètres

Programme principal peut

recevoir un paramètre

Sous routine A reçoit des paramètres ... Action 1 Action 2 Action 3 .... peut retourner des paramètres RTS

N.B. les bits d’état du CCR sont modifiés.

Passage de paramètres:

Page 21: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger B.1b-1 CONTENU DU COURS.

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

B.1b-21

B.1(7) Sous-routines

Techniques pour passage de paramètres:Technique 1 – passage par valeur: utilise les accumulateurs (A et B) et les indexes (IX et IY) pour transmettre la valeurs des paramètres

appel – la sous-routine accède à une copie des valeurs originales dans A, B, IX ou IY retour – la sous-routine peut retourner des valeurs au programme principal dans les mêmes registres

Avantages et inconvénients:commun et simplemais, petit nombre et dimensions de valeurs qu’on peut passer (6 octets max.)besoin de coordination entre programme principal et sous-routine pour éviter l’écrasement aux registres

Page 22: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger B.1b-1 CONTENU DU COURS.

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

B.1b-22

B.1(7) Sous-routines

Exemple: passage par valeur

étiquette op-code opérant(s) commentaires

ROMStart: EQU $4000 ; début ROMRAMStart: EQU $0800 ; début RAM

ORG RAMStartNUM_ONE: DC.B $23 ; début constantesNUM_TWO: DC.B $3F

ORG ROMStart ; début programme

Début: LDS #$1000 ; initialise le SP

LDAA NUM_ONELDAB NUM_TWOBSR SWAP ; brancher vers sous-routineSTAA NUM_ONESTAB NUM_TWO

FIN: BRA FIN

Page 23: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger B.1b-1 CONTENU DU COURS.

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

B.1b-23

B.1(7) Sous-routines

sous-routine SWAP:

étiquette op-code opérant(s) commentaires

SWAP: PSHA ; stocke A → octet de pile

PSHB ; stocke B → octet de pile

PULA ; restaure octet de pile → A

PULB ; restaure octet de pile → B

RTS ; retour de sous-routine

Page 24: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger B.1b-1 CONTENU DU COURS.

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

B.1b-24

B.1(7) Sous-routines

Techniques pour passage de paramètres:Technique 2 – passage par référence: fournit les adresses mémoire qui contiennent les valeurs des paramètres

appel – la sous-routine accède à ces valeurs à partir de leurs adresses mémoireretour – la sous-routine peut retourner des valeurs dans des adresses référencées pendant l’exécution

Avantages et inconvénients:peut passer un grand nombre de valeurs (bon pour des listes)pratique si on veut modifier les valeurs originales pendant l’exécutionpeut corrompre la mémoire

Page 25: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger B.1b-1 CONTENU DU COURS.

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

B.1b-25

B.1(7) Sous-routines

Exemple: passage par référence

étiquette op-code opérant(s) commentaires

ORG $800

FIRST: DS.B 10 ; source

SECOND: DS.B 10 ; destination

ORG $4000

; début constantes

NUM_DATA: DC.B $0A ; nombre de bytes à copier

; début programme

Début: LDS #$1000 ; initialise le SP

LDAA NUM_DATA ; $0A → A

LDX #FIRST ; source: $800 → IX

LDY #SECOND ; destination: $80A→ IY

JSR COPY ; saute vers la sous-routine

FIN: BRA FIN

Page 26: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger B.1b-1 CONTENU DU COURS.

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

B.1b-26

B.1(7) Sous-routines

sous-routine COPY:

étiquette op-code opérant(s) commentaires

;PASSAGE PAR VALEUR

COPY: CMPA #$00 ; vérifier la condition d’arrêt

BEQ DONE ; si A = $00, DONE

;PASSAGE PAR RÉFÉRENCE

LDAB 1,X+ ; charger de source, post incré.

STAB 1,Y+ ; stocker en destin., post incré.

DECA

BRA COPY

DONE: RTS ; retour de sous-routine

Page 27: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger B.1b-1 CONTENU DU COURS.

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

B.1b-27

Sommaire de la Section B.1B.1 Langage assembleur et programmation

structurée:

1) Processus d’assemblage2) Directives de compilation3) Modes d’adressage4) Jeu d’instructions5) Boucles6) Piles7) Sous-routines: appel et passage de paramètres8) Sous-routines utilitaires du D-BUG129) Programmation structurée

Page 28: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger B.1b-1 CONTENU DU COURS.

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquée B.1b-28

B.1(8) Sous-routines D-BUG12

D-BUG12: programme analyse/déverminage du 68HC12

réside dans la mémoire ROM en permanenceconsiste de sous-routines.

Sous-routines:manipuler et visualiser la mémoire et les registres du CPU exécuter et déverminer le programmeafficher un message ou le contenu mémoire à l’écran écrire des données en mémoireinitialiser l’adresse d’une RSI

Page 29: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger B.1b-1 CONTENU DU COURS.

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

B.1b-29

B.1(8) Sous-routines D-BUG12

Page 30: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger B.1b-1 CONTENU DU COURS.

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

B.1b-30

B.1(8) Sous-routines D-BUG12

Sous-routines utilitaires communes:getchar: retourne un caractère tapé au clavier dans le registre B. putchar: transmet le caractère contenu dans le registre B au terminal.

out2hex: traduit l’octet hexadécimal de l’argument en code ASCII et le transmet au terminal. out4hex: traduit deux octets hexadécimaux en code ASCII et les transmet au terminal.

printf: transmet un phrase débutant à l’adresse de l’argument jusqu’à la rencontre du caractère terminateur hexadécimal $00.

Page 31: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger B.1b-1 CONTENU DU COURS.

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

B.1b-31

B.1(8) Sous-routines D-BUG12

Passage de paramètres aux routines utilitaires de D-BUG12 : sous-routine(1, 2, 3, ..., n)

on traite les paramètres comme des valeurs à 16 ou 8 bitsle 68HC12 utilise le registre D pour le premier paramètre et la pile pour les autres

Étapes principales:1. les paramètres doivent être placés dans D et sur la pile.2. l’adresse de vecteur de la sous-routine doit être chargé

dans IX ou IY.3. invoquer la sous-routine avec l’instruction JSR4. ajuster le SP avec les instructions PULX ou LEAS

Page 32: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger B.1b-1 CONTENU DU COURS.

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

B.1b-32

B.1(8) Sous-routines D-BUG12

Exemple: Utilisez l’utilitaire sous-routine out2hex() pour afficher 45 sur l’écran d’ordinateur

doit stocker $0045 (conversion de 8 à 16 bits) dans (D) avant d’exécuter la sous-routine

étiquette op-code opérant(s) commentaires

LDD #$0045 ;valeur à afficher

LDX $FE16 ; adresse de sous-routine

JSR 0,X ; appel la sous-routine

Page 33: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger B.1b-1 CONTENU DU COURS.

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

B.1b-33

Sommaire de la Section B.1B.1 Langage assembleur et programmation

structurée:

1) Processus d’assemblage2) Directives de compilation3) Modes d’adressage4) Jeu d’instructions5) Boucles6) Piles7) Sous-routines: appel et passage de paramètres8) Sous-routines utilitaires du D-BUG129) Programmation structurée

Page 34: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger B.1b-1 CONTENU DU COURS.

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

B.1b-34

B.1(9) Programmation structurée

Objectifs d’un programmeur:

contraintes de performance pour obtenir un code efficace:

écrire le programme le plus compact − minimiser la l’espace mémoire consomméécrire le programme le plus rapide − minimiser le nombre le cycle machines ou temps d’exécution

style de programmation:écrire un programme qui est facile à comprendre, avec commentaires, etc.écrire un programme qui est flexible et facile à modifier.

rencontrer l’échéancier du projet

Page 35: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger B.1b-1 CONTENU DU COURS.

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

B.1b-35

B.1(9) Programmation structurée

Conception structurée:objectif: outils pour transformer les besoins d’un système en plan pour réaliser le systèmebien comprendre les besoins...

Conseils pour la conception de programmes:1. concevoir selon la technique ‘diviser pour régner’

diviser un programme en petites parties combiner les parties pour résoudre le problème original

2. réfléchir à l’organisation des données en mémoire outil: carte de mémoire

3. réfléchir à la façon de traiter les données outil: diagramme de flots de données

Page 36: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger B.1b-1 CONTENU DU COURS.

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

B.1b-36

B.1(9) Programmation structurée

Technique ‘diviser pour régner’:

diviser une tâche complexe en petites sous-tâches, résoudre les sous-tâches, et combiner pour résoudre la tâche originale

conception de haut-à-bas, mise en oeuvre bas-à-haut

avantages de cette technique:permet de se concentrer sur chaque sous-tâche séparément, plutôt que d’aborder une tâche complexe d’un coup plus facile de tester et d’évaluer chaque sous-tâche de façon individuelle

Page 37: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger B.1b-1 CONTENU DU COURS.

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

B.1b-37

B.1(9) Programmation structurée

Exemple − écrire un bon rapport technique:1. préparer un sommaire pour donner une bonne vue

d’ensemble (dès le début)2. écrire le rapport un paragraphe/section à la fois

Conception structurée: on peut diviser un programme en parties (i.e., sous-routines) ‘simples’ et les combiner, pour ensuite concevoir un programme complexepseudo-code: décrit la fonction de haut-niveau de chaque partie simplediagramme de flots de données: pour définir la relation fonctionnelle entre les parties simples

Page 38: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger B.1b-1 CONTENU DU COURS.

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

B.1b-38

B.1(9) Programmation structurée

Diagramme de flots de données:

outil graphique pour: visualiser le traitement des données, la relation entre les parties fonctionnelles, etc. documenter le flux du programme

construit en connectant des symboles primaires avec des arcs dirigés (flèches)

symboles primaires: représentent les actions prises sur les données

arcs dirigés: indique la progression dans le programme

Page 39: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger B.1b-1 CONTENU DU COURS.

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

B.1b-39

B.1(9) Programmation structurée

Symboles primaires d’un diagramme de flots de données:

Flux

Début Fin

Séquence d’actions Décision

Page 40: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger B.1b-1 CONTENU DU COURS.

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

B.1b-40

B.1(9) Programmation structurée

Structures fondamentales dans un programme:1. séquence:

effectue une tâche après l’autre en séquencegroupe d’instructions qui s’exécutent un après l’autre.

2. ‘if-then-else’: effectue un décision entre deux ou plusieurs optionspermet de tester une condition, pour décider du groupe d’instructions à effectuer

3. ‘do-while’: répète son traitement aussi longtemps qu’une condition ne soit satisfaite

Page 41: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger B.1b-1 CONTENU DU COURS.

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

B.1b-41

B.1(9) Programmation structurée

Exemple: structure de flot de données ‘if-then’

Page 42: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger B.1b-1 CONTENU DU COURS.

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

B.1b-42

B.1(9) Programmation structurée

Exemple: structure de flot de données ‘if-then-else’

Page 43: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger B.1b-1 CONTENU DU COURS.

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

B.1b-43

B.1(9) Programmation structurée

Exemple: structure de flot de données ‘do-while’

Page 44: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger B.1b-1 CONTENU DU COURS.

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

B.1b-44

B.1(9) Programmation structurée

Exemple: structure de flot de données ‘while’