Architecture des systèmes à microprocesseur TD n°2 ...
Post on 23-Jun-2022
3 Views
Preview:
Transcript
M1-Archi 2016-2017 Page1
___________________________________________________________________________
ArchitecturedessystèmesàmicroprocesseurTDn°2:Interruptions
___________________________________________________________________________
Objectifsdelaséance-Priseenmaindelaplateformeenligne:mbed-Compréhensiondumécanismed’interruption
___________________________________________________________________________
Matérielrequis: -Uneplateformenucleo-boardSTM32F446RE___________________________________________________________________________I. Introduction
CommelorsduprécédentTD,onseproposed’utiliserlaplateformededéveloppementen lignembedd’ARM.Cetteplateformeregroupetoutunensemblede fonctionnalitéspermettantàl’utilisateurdesefocalisersurlecodagedesonsystèmevial’utilisationd’ungrandnombred’API.
I. Allersurlesite:https://www.mbed.com/en/puisDeveloperResourcesetenfinCompiler.
II. Authentifiez-vousafind’accéderàvotreworkspace.
M1-Archi 2016-2017 Page2
III. Unefoisauthentifié,vouspouvezvisualiservotreenvironnementdetravail
(workspace).
II. Documentationsurl’APIInterruptIn
1. APIsd’interruption
UndesprincipauxavantagesdembedestdedisposerdenombreusesAPI.Celles-cipermettentd’écrirefacilementunprogrammefonctionnelenquelqueslignes.Nousavonsvuqu’ilenexisteunvastechoix:
• APIsdegestiondetâchesd’OS,• APIsdegestiondesentrées/sortiesanalogiquesetnumériques• APIsdecommunications…• …
Ladocumentationcomplèteestaccessibleici: https://docs.mbed.com/docs/mbed-os-api-reference/en/latest/APIs/io/InterruptIn/Question:Aquoisertuneinterruption?Parquoipeut-elleêtregénérée?Quelestl’intérêt?
2. Programmedebase
Afin de se familiariser avec l’environnement mbed, importer directement le programmeexempleintituléReadtheuserbuttonusingexternalinterrupt,commeindiquéci-dessous.
M1-Archi 2016-2017 Page3
Ici,surl’imageprécédente,lemicrocontrôleurchoisitestleF401RE,sélectionnerlevotrequiestlenucleo-F446RE. Lecodedufichierprincipalmain.cppestlesuivant:
Question: -Quelleestlasourced’interruption? -Queréaliseleprogramme?
M1-Archi 2016-2017 Page4
3. Comptage du nombre d’appui par interruption et affichage de lavaleursurlaliaisonsérie
A partir du template précédent, on souhaite faire évoluer le programme vers unsystèmequicomptelenombred’appuisurlebouton.Lenombred’appuiseramisàjouretenvoyésurlaliaisonsérie.
• Implémenterlanouvellefonctionnalité.Sibesoin,regarderl’APISerial.
Pourallerplusloin…
i) Interruptionextérieuresurunebroched’entrée-sortie
• Onsouhaitequel’interruptionsoitissued’unebrocheextérieure(etnonplusparle bouton poussoir). On vous laisse la possibilité de travailler sur une seuleplateformeouavecunbinôme.
Programmesuruneseuleplateforme:Dansceprogramme,lesignald’interruptionseragénéréauseindevotreprogramme.Pourcela,onpourraparexemplemettreà1unebrocheexternependant1mspuisà0pendant1s.Labrochesourced’interruptionseralabroche.Lesdeuxbrochesserontconnectéesparunsimplefilcommeindiquésurlafiguresuivante:Documentationutile:https://developer.mbed.org/platforms/ST-Nucleo-F446RE/Programmeàdeuxplateformes(deuxbinômes):Lesignalprovoquantl’interruptionseragénérépar lacarted’unbinôme.Pourcela,vousvousrépartirezletravaildelamanièresuivante:
o Binôme1:Réaliserleprogrammepermettantdegénérerdesimpulsionsrégulièressurunebrocheexterne.Onpourraparexemplemettreà1unebrocheexternependant1mspuisà0pendant1s.
o Binôme 2 : Réaliser le programme permettant de prendre en compte
l’interruption sur la broche. La détection devra tenir compte du frontdescendantetafficherlenombred’impulsionsurlaliaisonsérie.
M1-Archi 2016-2017 Page5
PC8 PC6Documentationutile:https://developer.mbed.org/platforms/ST-Nucleo-F446RE/
ii) Interruptiongénéréepériodiquementparuntimer
• Dans ce nouveau programme sous mbed, on souhaite que l’interruption soitgénéréepériodiquementparuntimer.Réaliserunprogrammequipermettoutesles3secondesdechangerlapériodedeclignotementdelaled.Onpourrafixerunepériodep1à200msetunepériodep2à1s.
o RegardernotammentlesautresAPIdisponibles…
iii) Sourcesmultiplesd’interruption
• Danscenouveauprogramme,onsouhaitegérerplusieurssourcesd’interruption.Lapremièresourceserauneinterruptiongénéréeparuntimerquipermettradelirelavaleurissueducapteurdetempérature(AnalogInadc_temp(ADC_TEMP)).Lasecondesourced’interruptionseralagénérationpériodiqued’unsignalPWMsurlaled.LapériodedusignalPWMsera500msavecunrapportcycliquede40%.Générer aussi une interruption au niveau du bouton poussoir pour changer lerapportcyclique.Onleferavarierde10%à80%parpasde10%.
NB:Sivousavezbesoindeplusd’infosurlecapteurdetempérature,seréféreraureference_manualdelaplateformeutilisée.
M1-Archi 2016-2017 Page6
___________________________________________________________________________
Pourconclure,quelquesquestionsàseposer:
-Quelssontlesregistresconcernéslorsd’interruption?-QuelestlerôleducontrôleurNVIC(NestedVectoredInterruptController)-Quesepasserait-ilsideuxinterruptionsseproduisentaumêmeinstant? -Existe-t-ildesprioritésparmilesdifférentessourcesd’interruptions?
___________________________________________________________________________
top related