Partie 5 Mémoires Memory and data

Documents pareils
Programmation système I Les entrées/sorties

Programmation impérative

Dans le chapitre 1, nous associions aux fichiers ouverts des descripteurs de fichiers par lesquels nous accédions aux fichiers.

Les fichiers. Chapitre 4

On distingue deux grandes catégories de mémoires : mémoire centrale (appelée également mémoire interne)

Conception de circuits numériques et architecture des ordinateurs

ARDUINO DOSSIER RESSOURCE POUR LA CLASSE

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

Chapitre 4 : Les mémoires

Cours 14 Les fichiers

I00 Éléments d architecture

Introduction au langage C

Leçon 1 : Les principaux composants d un ordinateur

Le système de gestion des fichiers, les entrées/sorties.

THEME 1 : L ORDINATEUR ET SON ENVIRONNEMENT. Objectifs

Cours Informatique 1. Monsieur SADOUNI Salheddine

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

Hiérarchie matériel dans le monde informatique. Architecture d ordinateur : introduction. Hiérarchie matériel dans le monde informatique

Introduction à l architecture des ordinateurs. Adrien Lebre Décembre 2007

STS SE. FreeRTOS. Programmation réseau WIFI. Programmation réseau. Socket Tcp. FlyPort smart Wi-Fi module

Base de l'informatique. Généralité et Architecture Le système d'exploitation Les logiciels Le réseau et l'extérieur (WEB)

Bases de programmation. Cours 5. Structurer les données

IV- Comment fonctionne un ordinateur?

Cours 3 : L'ordinateur

Les structures. Chapitre 3

Exceptions. 1 Entrées/sorties. Objectif. Manipuler les exceptions ;

Cours de Système : Gestion de Fichiers

1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3.

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Le prototype de la fonction main()

2.1 Le point mémoire statique Le point mémoire statique est fondé sur le bistable, dessiné de manière différente en Figure 1.

Premiers pas sur l ordinateur Support d initiation

Programmation en langage C

Architecture des ordinateurs

Structure et fonctionnement d'un ordinateur : hardware

Informatique Industrielle Année Architecture des ordinateurs Note de cours T.Dumartin

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

Structure de base d un ordinateur

ACTIVITÉ DE PROGRAMMATION

La carte à puce. Jean-Philippe Babau

Cours 1 : Qu est-ce que la programmation?

Assembleur. Faculté I&C, André Maurer, Claude Petitpierre

Architecture des ordinateurs

Travaux pratiques. Compression en codage de Huffman Organisation d un projet de programmation

Structure d un programme et Compilation Notions de classe et d objet Syntaxe

PIC EVAL Dev Board PIC18F97J60

Le langage C. Séance n 4

Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

Programmation système de commandes en C

Rappels Entrées -Sorties

Initiation. àl algorithmique et à la programmation. en C

Programmation C. Apprendre à développer des programmes simples dans le langage C

Conférence sur les microcontroleurs.

1 Lecture de fichiers

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application

Flux de données Lecture/Ecriture Fichiers

Sélection du contrôleur

Sur un ordinateur portable ou un All-in-One tactile, la plupart des éléments mentionnés précédemment sont regroupés. 10) 11)

Introduction à la programmation Travaux pratiques: séance d introduction INFO0201-1

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java

Cours Informatique Master STEP

as Architecture des Systèmes d Information

Éléments d'architecture des ordinateurs

Conception de circuits numériques et architecture des ordinateurs

Introduction à l informatique en BCPST

Carte Relais GSM (Manuel Utilisateur)

Atelier C TIA Portal CTIA04 : Programmation des automates S7-300 Opérations numériques

Cours 7 : Programmation d une chaîne d acquisition

UE Programmation Impérative Licence 2ème Année

Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation 24 octobre 2007impérative 1 / 44 et. structures de données simples

Architecture des ordinateurs Introduction à l informatique

Chap III : Les tableaux

Partie 1. Professeur : Haouati Abdelali. CPGE Lycée Omar Ibn Lkhattab - Meknès haouaticpge@gmail.com

1 Architecture du cœur ARM Cortex M3. Le cœur ARM Cortex M3 sera présenté en classe à partir des éléments suivants :

DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51

Structure d un programme

Représentation d un entier en base b

Licence Sciences et Technologies Examen janvier 2010

COMPARAISONDESLANGAGESC, C++, JAVA ET

Temps Réel. Jérôme Pouiller Septembre 2011

Mise en oeuvre d'une base de données mono-utilisateur avec SQLite

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation

GESTION DES FICHIERS C/UNIX

SUPPORT DE COURS. Langage C

PROJET ALGORITHMIQUE ET PROGRAMMATION II

La mémoire. Un ordinateur. L'octet. Le bit


AMICUS 18 (2ème partie) 4) Présentation du logiciel Amicus IDE

Programmation en langage C d un µcontrôleur PIC à l aide du compilateur C-CCS Sommaire

Informatique Générale

Java Licence Professionnelle CISII,

IN Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C

Plan du cours. Historique du langage Nouveautés de Java 7

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars

TRAVAUX PRATIQUES Programmation Système Langage C / Système UNIX. 2 e année Génie Informatique

Algorithmique et Programmation, IMA

Cours 6 : Tubes anonymes et nommés

Présentation du système informatique utilisé et éléments d architecture des ordinateurs

Transcription:

Cours/TD d informatique embarquée Utilisation d un microcontrôleur MBED Partie 5 Mémoires Memory and data Plan du cours 5.1. Mémoires électroniques 5.2. Mémoire vive (volatile) 5.3. Mémoire de masse (non-volatile) 5.4. Mémoire des processeurs 5.5. Utilisation des fichiers avec mbed 5.6. Utilisation de fprintf CV C/TD INFO2 - Partie 4 page 1

5.1. Mémoires électroniques L'unité de base est : deux états Un circuit électronique bistable permet de stocker une donnée : Autre possibilité : ( 1 ) ( 0 ) Le monde des mémoires se décompose en deux catégories : Les mémoires nécessitent pour conserver l enregistrement des informations. Les mémoires gardent l information même. 5.2 Mémoires volatiles (RAM) est un exemple de mémoire volatiles SRAM ( ) enregistre les données en utilisant des (bascule D par exemple) Nécessite 6 transistors pour 1 bit de donnée Consommation faible, facile à intégrer, peu coûteuse DRAM ( ) utilise pour enregistrer un bit de donnée DRAM plus petite en taille de silicium Nécessite un rafraîchissement de la donnée (la capacité se décharge) toutes les 10~100 ms les accès sont plus rapides qu'avec une SRAM La consommation est plus importante que la SRAM 5.3 Les mémoires non-volatiles (ROM) et PROMs (Programmable ROM) peuvent être programmée une fois seulement. (EPROM) peuvent être reprogrammées (process lent et compliqué) CV C/TD INFO2 - Partie 4 page 2

Electrically Erasable & Programmable Read Only Memory (EEPROM), les données peuvent être effacées, écrites et lues Une (clé USB) est un type Process très rapide pour effacer d où le nom. Inconvénient : la durée de vie est limitée(environ 100000 cycles) 5.3 Mémoires des processeurs Un microprocesseur a besoin de mémoire pour : Stocker Stocker Lors de la mise en marche (ou d un reset) il faut que le programme soit présent et prêt. On utilise donc une mémoire (Flash) La plupart du temps les données n ont pas besoin d être stockées lorsqu on éteint le microcontrôleur (ex: int i=0;), on préfère donc utiliser Rq : Si on veut sauver des données on utilisera la mémoire Flash Il existe 2 principales de processeurs : Architecture 1 seule mémoire = programme + data => accès successifs aux instructions et aux données => plus lent Architecture 2 mémoires = programme & data => accès simultané aux instructions et aux données => plus rapide (mais complexe ) Attention : ce qu on appelle ici «mémoire» peut être constituée de plusieurs types de mémoires (flash+ram+ = 1 mémoire) 5.5 Utilisation des fichiers avec mbed Il peut être utile de stocker des données même lorsque le microcontrôleur est parfois éteint. ex : mesure d une température toute les heures Le programme précise au compilateur où stocker les fichiers. Pour cela on utilise la déclaration de type LocalFileSystem : LocalFileSystem local( ("local"); CV C/TD INFO2 - Partie 4 page 3

Cela autorise à utiliser le même espace que celui où est stocké le programme (MonProgramme.bin) sur le microcontrôleur mbed. Les fonctions standards du langage C peuvent être utilisées pour ouvrir, lire et écrire les fichiers. Résumé des fonctions pour l utilisation des fichier sur mbed Str : chaîne de caractères (présence du caractère \0) Stream : pointeur vers un objet de type fichier, le pointeur est positionné là où sera écrit le prochain caractère Pour ouvrir un fichier : Le pointeur pfile pointe sur le prochain caractère à écrire dans le fichier MonFichier.txt Dans l exemple : "w" précise le mode écriture (écrase si le fichier existe, le crée s'il l n existe pas) "r" : lecture uniquement "a" : écriture à la fin du fichier (le pointeur est donc positionné à la fin de fichier) Remarque : si le fichier n existe pas il sera créé Une fois le traitement terminé, il convient de fermer le fichier avec fclose : Comment écrire des données dans un fichier Pour stocker des données, le plus simple est de stocker des entiers codés sur 1 octet = 1 char. La commande fputc le permet : char donnee_a_ecrire=0x0f; Remarque : à chaque écriture dans le fichier le pointeur pfile se déplace d une case mémoire... Comment lire des données dans un fichier CV C/TD INFO2 - Partie 4 page 4

Exemple : le programme écrit le caractère 0x23 dans un fichier et le sauve sur le mbed. Puis le fichier est ouvert, lu et le caractère est affiché sur le terminal. #include "mbed.h" Serial pc(usbtx,usbrx); LocalFileSystem local("local"); int donnee_a_ecrire; int donnee_lue; int main () { FILE* File1 = fopen("/local/datafile.txt","w"); donnee_a_ecrire =0x23; fputc(donnee_a_ecrire, File1); fclose(file1); FILE* File2 = fopen ("/local/datafile.txt","r"); donnee_lue = fgetc(file2); fclose(file2); pc.printf("input value = %c \n", donnee_lue); Exercice 1 : Commenter, réaliser et tester le programme ci-dessus. Ouvrez le fichier datafile.txt avec NotePad et vérifier le contenu. Exemple : Le programme écrit puis lit une chaîne de caractères avec les fonctions fgets et fputs #include "mbed.h" Serial pc(usbtx,usbrx); LocalFileSystem local("local"); char read_string[64]; int main () { FILE* File1 = fopen("/local/textfile.txt","w"); fputs("beaucoup de mots et de lettres...", File1); fclose(file1); FILE* File2 = fopen ("/local/textfile.txt","r"); fgets(read_string,256,file2); fclose(file2); pc.printf("text data: %s \n",read_string); Exercice 2 : Commenter, réaliser et tester le programme ci-dessus. Ouvrez le fichier textfile.txt avec NotePad et vérifier le contenu. CV C/TD INFO2 - Partie 4 page 5

5.6 Utilisation de fprintf fprintf permet de formater les données lors de l écriture (%c, %d ) Cette fonction est très similaire au printf, il faut juste passer un paramètre supplémentaire : un pointeur vers un fichier. fprintf(pfile,"la valeur de i est : %d",i); Nous l utiliserons pour stocker dans un fichier des données telles que : temps, valeurs de capteurs Exemple d'utilisation : #include "mbed.h" InterruptIn button(p30); DigitalOut led1(led1); Timer debounce; LocalFileSystem local("local"); void toggle(void); int main() { button.mode(pullup); debounce.start(); button.rise(&toggle); while(1); void toggle() { if (debounce.read_ms()>200) { led1.write(!led1.read()); FILE* pfile = fopen ("/local/log.txt","a"); fprintf(pfile,"time=%.3fs: setting led=%d\n\r",debounce.read(),led1.read()); fclose(pfile); // close file debounce.reset(); // reset debounce timer Exercice 3 : Que réalise le programme ci-dessus? Commenter, réaliser et tester le programme ci-dessus. Ouvrez le fichier log.txt avec NotePad et vérifier le contenu. Exercice 4 : Créer un programme qui utilise le terminal (teraterm), l'utilisateur saisit un texte dans la console et lorsqu'il appuie sur "entrée" le programme récupère la chaîne de caractère et l'enregistre dans un fichier. CV C/TD INFO2 - Partie 4 page 6

Exercice 5 : Créer un programme qui enregistre pendant 5 secondes la donnée d'une entrée analogique (affichage sur la console + enregistrement dans un fichier). Utiliser un potentiomètre pour faire varier la grandeur analogique. Remarque : Il sera nécessaire de définir une période d'échantillonnage entre 2 enregistrements de la donnée, disons 100ms. Assurez vous que 100ms sont suffisantes (lister les opérations à effectuer dans cet intervalle de 100ms). Exercice 6 : Créer un programme similaire, mais remplacer le potentiomètre par un capteur (luminosité, température, ou distance). Diminuer au maximum la période d'échantillonnage, ne faites plus l'affichage sur la console. CV C/TD INFO2 - Partie 4 page 7

Questions de cours : Q1) Expliquer ce que sont les mémoires volatiles et non-volatiles Q2) Expliquer ce que sont les bus de donnée et les bus d'adresse Q3) Expliquer la principale différence entre une architecture Harvard et une architecture Von Neumann Q4) Qu'est qu'une mémoire Flash? Q5) Si on écrit FILE* pfile = fopen("/local/monfichier.txt","w"); où se positionne le pointeur? Q6) Si on écrit FILE* pfile = fopen("/local/monfichier.txt","a"); où se positionne le pointeur? Q7) Quelle fonction me permet de me positionner à un endroit spécifique d'un fichier? Q8)Quel est l'intérêt de stocker des données dans un fichier sur le mbed? CV C/TD INFO2 - Partie 4 page 8