différence signal numérique et un signal analogique: Un signal numérique ne peut prendre que deux valeurs significatives (V ≤ VL) ou 1 (V ≥ VH) alors qu'un signal analogique peut prendre dans l'absolu une infinité de valeurs. Pour exploiter les signaux analogiques on utilise un convertisseur analogique/numérique qui fournit une approximation de leur valeur. Le prototype d’une fonction d’exception est : void nomDeLaFontion(void). Pourquoi type void et le paramètre void ? Les exceptions sont la réponse du processeur à des événements asynchrones par rapport au flot du programme. Il n’est pas possible d’anticiper l’arrivée de ces événements et donc de préparer un passage de paramètre, de même qu’il n’est pas possible de récupérer une valeur de retour éventuelle d’où le prototype utilisé. A partir de quel contrôleur peut-on autoriser les exceptions ? Les exceptions sont autorisées de manière générale au niveau du contrôleur NVIC en complément de la validation générale des interruptions masquables dans le registre PSR. Donner le numéro et le rôle du registre LR dans le CPU du STM32. Le registre LR (R14) est le registre de lien : Il contient l'adresse de retour lors de l'appel d'un sous-programme (instruction BL : Branch and Link) Donner la signification de l'acronyme SRAM. Static Random Acces Memory (mémoire statique à accès aléatoire : il s'agit d'une mémoire volatile). Barrer ci-dessous les éléments de programmes ne se trouvant pas dans ce type de mémoire : Code barrer ; Variable ; Constantes barrer Dans quelle condition une exception peut-elle prendre le pas sur une autre exception. Il faut qu’elle soit plus prioritaire (valeur de priorité plus faible) et bien sûr qu’elle soit autorisée. Le STM32 est un microcontrôleur : 32bits Quel élément du processeur est utilisé pour le qualifier ? La taille du bus de données Donner la signification de l'acronyme ROM. Read Only Memory Barrer ci-dessous le ou les éléments de programmes ne se trouvant pas dans ce type de mémoire. CODE, VARIABLES barrer, CONSTANTES Donner deux cas de figures d'erreurs de programmation pouvant générer une exception de programmation. La division par 0 et la tentative d'exécution d'un COP invalide Quels sont les registres des périphériques à paramétrer pour pouvoir obtenir une interruption provenant de l'évènement UIF du timer 3? Il faut tout d'abord autoriser les interruptions masquables au niveau du CPU (registre PPRIMASK bit 0 = 0) ensuite il faut valider l'interruption timer3 au niveau du contrôleur NVIC (registre NVIC_ISER correspondant à l'interruption timer3) et enfin valider l'interruption provenant du bit UIF dans le registre DIER du timer 3. Le prototype d'une fonction d'interruption est le suivant : void ma_fonction_it (void). Expliquez pourquoi utiliser cette définition. Car une fonction d'interruption est générée le plus souvent par un événement asynchrone par rapport au déroulement du programme. Les événements ne sont pas prévisible ce qui empêche le passage de paramètres et la récupération de valeurs en retour. A quoi sert la table des vecteurs d'exception ? La table des vecteurs d'exception est un espace réservé dans le plan mémoire du microprocesseur dans lequel sont stockées les adresses des fonctions d'exceptions (ou interruptions). Lorsqu'un événement générant une demande d'exception de priorité supérieure à celle en cours se déclenche, le processeur va terminer l'instruction de l'instruction en cours, sauvegarder le contexte d'exécution puis il va chercher dans la table des vecteurs d'exception (à l'emplacement réservé à l'évènement) l'adresse de la fonction qu'il doit traiter. A quoi correspond la table des vecteurs d’exception ? Il s’agit d’un espace (table) contenant les adresses des différentes fonctions d’exceptions (fonctions automatiquement exécutées en cas d’exception). La première case contient la valeur initiale du pointeur de pile et la seconde l’adresse de démarrage du programme (ces deux éléments se trouvent obligatoirement en mémoire non volatile). Quand utilise-t-on le transfert DMA pour les échanges avec les périphériques ? Lorsque le volume d'informations échangées entre le contrôleur de périphérique et le CPU est important. En effet ce type d'échange est dans cette condition plus efficace que l'échange sous interruption. Il économise les phases de décodage d'instruction, de calculs de boucles et de sauvegarde et restitution des registres.