Différences entre ROM, RAM et FLASH

1. ROM

       Mémoire morte ROM (Read Only Memory). Il s'agit d'une mémoire à semi-conducteur dont la caractéristique est qu'une fois les données stockées, elles ne peuvent être ni modifiées ni supprimées. Généralement utilisé dans les systèmes électroniques ou informatiques qui n'ont pas besoin de modifier fréquemment les données, et les données ne disparaîtront pas lorsque l'alimentation est coupée. Mémoire à semi-conducteurs à semi-conducteurs qui peut lire uniquement les données précédemment stockées. Les données stockées dans la ROM sont généralement écrites à l'avance avant d'être installées dans l'ensemble de la machine. Elles ne peuvent être lues que pendant le fonctionnement de l'ensemble de la machine et ne peuvent pas être réécrites rapidement et facilement comme une mémoire vive. Les données stockées dans la ROM sont stables et ne changeront pas après une panne de courant. Sa structure est relativement simple et facile à lire, elle est donc souvent utilisée pour stocker divers programmes et données fixes. À l'exception de quelques types de mémoires mortes (telles que les générateurs de caractères) qui peuvent être utilisées universellement, le contenu des mémoires mortes requis par les différents utilisateurs est différent. Classement ROM :

  • PROM : Programmable une fois (ROM non modifiable).
  • EPROM : ROM programmable effaçable aux UV.
  • EEPROM : ROM programmable effaçable électroniquement.

2. RAM

       RAM (Random Access Memory) mémoire vive. Il s'agit d'une mémoire interne qui échange directement des données avec le CPU ; le contenu de l'unité de stockage peut être retiré ou stocké à volonté selon les besoins, et la vitesse d'accès n'a rien à voir avec l'emplacement de l'unité de stockage. Ce type de mémoire perdra son contenu de stockage lors de la mise hors tension, elle est donc principalement utilisée pour stocker des programmes utilisés pendant une courte période. La plus grande caractéristique de la RAM est que la vitesse de stockage et de lecture est très rapide, bien supérieure à celle de la ROM. Lorsque le CPU (Central Processing Unit) exécute un programme, il doit d'abord transférer les instructions et les données dans la RAM pour garantir la vitesse de calcul. Classement de la RAM :

  • SRAM : RAM statique. La SRAM est très rapide et peut sauvegarder des données sans rafraîchir le circuit. C'est actuellement le périphérique de stockage le plus rapide.
  • DRAM : RAM dynamique. La DRAM conserve les données pendant très peu de temps et nécessite un circuit de rafraîchissement de la mémoire pour la rafraîchir et la recharger de temps en temps, sinon les données disparaîtront.

La ROM peut toujours conserver les données lorsque le système est hors tension, tandis que la RAM perd généralement des données après une panne de courant.

3. FLASH

       FLASH EEPROM , mémoire flash. C'est un type d'EEPROM. Il combine les atouts de la ROM et de la RAM. Non seulement il a les performances d'une EEPROM effaçable et programmable électroniquement, mais il ne perdra pas de données en raison d'une panne de courant et peut lire les données rapidement. La plus grande différence entre celui-ci et l'EEPROM est que FLASH fonctionne sur une base de secteur (bloc), tandis que l'EEPROM fonctionne sur une base d'octet. La structure du circuit FLASH est relativement simple, la même capacité occupe une surface de puce plus petite et le coût est naturellement inférieur à celui de l'EEPROM, il convient donc pour une utilisation comme mémoire de programme.

4. Calcul de la taille du programme du microcontrôleur

       Le FLASH du microcontrôleur est soit 4K, soit 8K. Une fois le programme du microcontrôleur écrit et compilé, un fichier hexadécimal est généré. Ce fichier hexadécimal est le fichier à télécharger sur le microcontrôleur. La taille de ce fichier ne peut pas dépasser la taille FLASH de le microcontrôleur, sinon le programme doit être optimisé. Ou choisissez un microcontrôleur avec un FLASH plus grand.
Insérer la description de l'image ici

       La taille du fichier hexadécimal ne correspond pas à la taille réelle de l'espace FLASH occupé par le programme du microcontrôleur. Une fois la compilation réussie à l'aide de l'outil de compilation, une invite s'affichera généralement.

1、Wedge/MDK

       Après avoir compilé avec succès le programme du microcontrôleur via Keil, l'invite suivante apparaîtra :
Insérer la description de l'image ici

  • Code : Indique le code à exécuter et toutes les fonctions du programme.
  • Données RO : (Read Only Data) représente des données en lecture seule, des données constantes globales définies dans le programme.
  • Données RW : (Read And Write Data) représente les données de lecture et d'écriture initialisées, les variables globales et les variables statiques définies et initialisées dans le programme.
  • ZI-data : (Zero Initial Data) représente les données en lecture-écriture définies mais non initialisées, les variables globales et les variables statiques définies mais non initialisées dans le programme (variables utilisées dans le programme et initialisées à 0 par le système, les Le compilateur Keil attribue par défaut une valeur de 0 à toutes les variables non initialisées, et ces variables sont stockées dans la RAM lorsque le programme est en cours d'exécution).

Il ressort de la description ci-dessus :

  • Le programme téléchargé sur le microcontrôleur FLASH est : Code + données RO + données RW
  • Les données exécutées dans la RAM sont : données RW + données ZI

Je suppose que tu aimes

Origine blog.csdn.net/hezhanran/article/details/130601225
conseillé
Classement