Les bases (processeur S3C2410 et S5PV210 commencer l'analyse de processus) - comprendre des uboot 2016 détaillées

 entrée S3C2440 et S5PV210 de nombreux amateurs bras processeur embarqué, beaucoup d'informations en ligne. Aujourd'hui, nous allons parler du processus de S3C2440 et S5PV210 sur un blog I introduit dans norflah uboot processus de démarrage (important! C'est la base). Aujourd'hui, nous parlons sur le NandFlash uboot processus de démarrage.

A. Nandflash et norflash

        En outre, comme vous vous sentez sans doute doute ce qui est norflash? Qu'est-ce que NandFlash? Quelles sont les similitudes et les différences entre eux?

        norflash mon dernier billet de blog a été mis en place (puis répéter)

1.norflash

        norflash: norfalsh est une mémoire non volatile (restes de données NORFlash stockées dans la perte de l'alimentation), avec interface NORFLASH SRAM, suffisante pour répondre aux broches d'adresse, vous pouvez facilement lire un octet de chacun de ses internes (Notez que la lecture peut être écrit par le flash est aléatoire, écrire généralement NOR processus flash est :! déverrouillés -> erase -> données d'écriture car la fonction flash n'est retourné de 1-0, vous ne pouvez pas à feuilles mobiles de 0 à. 1. le processus d'effacement est à un certain secteur dans l'écriture flash 0xFFFFFFF complète, les données d'écriture), des instructions de code peut être exécuté directement sur norflash. (Important! Une fois les données de puissance norfalsh peut être lu dans l'opération d'écriture ne peut être effectuée directement devant moi ont dit très clairement)

        Multi peu de longue haleine, pour norflash, le bras de la puissance après que le processeur peut lire directement les données à l'intérieur (de NORFLASH avec interface SRAM, suffisante pour répondre aux broches d'adresse, il peut être lu facilement son interne chaque octet), mais! Mais faites attention! ! Vous ne pouvez pas écrire des données directement! ! ! Vous ne pouvez le voir comme SRAM <directe> (lire SRAM seulement) lire.

2.nandflash

       NandFlash: le modèle non linéaire interne macrocellule fournit une solution peu coûteuse et efficace pour atteindre une grande capacité de mémoire à semi-conducteurs. La mémoire Flash NAND ayant une grande capacité, la vitesse réinscriptible, etc., approprié pour le stockage de masse de données. Cependant NandFlash l'interface E / S et non un bus d'adresse externe d'accès aléatoire, il doit être lu dans des blocs de façons.

        Pour résumer: norflash avec une interface SRAM, suffisante pour répondre aux broches d'adresse, il peut facilement être <lit> chacun y octets.

        NandFlash l'interface E / S, et non le bus d'adresse externe d'accès aléatoire, les données d'adresse sur l'accès aléatoire non à SRAM.              

    (Trouvez le processus d'activation, plus que le concept est assez! Nandflash précisément comment obtenir des données dans, prochain blog je l'explique seul)

 

Deux. Processus de démarrage du processeur S3C2440

    Mon anglais est pas très bon, six n'a pas auparavant, que beaucoup est larmes. Chip fiche de données chinoise pour voir les amis peuvent Baidu

     <S3C2440 ensemble complet de manuel chinois (chapitre 1-27) .PDF>, traduire assez bien! Comme celui-ci! !

    (Ratio S3C6410 données manuel de traduction chinois bien aussi, les données S3C6410 chinois ne peuvent tout simplement pas voir)

     Je pris de Samsung S3C2440 Fiche une puce de processeur de carte mémoire, comme indiqué ci-dessous:

       Comme on peut le voir sur la figure OM [1: 0] dans le choix des valeurs différentes, différentes relations de mappage d'adresses.

       Lorsque OM [1: 0] 01 ou 10 est sélectionné dans SROM (nGCS0) doit être norflash externe. Après l'alimentation du processeur de la première instruction est extraite de 0x00000000, le processeur ARM SP (disponible dans le registre de pointeur de pile à 0x40000FFF). Horloge et DDR complète et d'autres initialisation et BootSRAM construit dans un environnement de fonctionnement norflash.

         (Processus de démarrage et démarrer le processus de mon précédent article sur le même)  

Lorsque OM [1: 0] pour sélectionner 00, l'avant de 4Ko programme S3C2440 construit dans le NandFlash tampon de SRAM automatiquement copié dans le BootSRAM. Après cela, le processeur commence alors l'exécution du programme à 0x00000000.

          (Sur la feuille de données est écrit donc! Mais !!) 

     Maintenant, la question à nouveau:

      1. Qu'est-ce S3C2440 intégré dans des tampons de SRAM à la fin est?

      2. Pourquoi est-il nécessaire d'avoir intégré dans un tampon de SRAM afin de lancer le programme de NandFlash en?

      

      Chacun avec une carte de développement, quand les gens vous disent de commutateur DIP à 01 ou 10 états à partir de norflash, le commutateur DIP au 00 état de démarrage NandFlash. (Mais vous pensiez que le problème ci-dessus?)         

Qu'est-ce 1.S3C2440 intégré dans des tampons de SRAM à la fin est?

       schéma de principe S3C2440 du tampon de SRAM intégré comme illustré ci-dessous:         

                                                                                                                                                           

          S3C2440A code de démarrage peut être exécuté sur une mémoire externe NAND Flash. Afin de soutenir NAND Flash de BootLoader, S3C2440A équipé d'un haut-tampons SRAM, appelé « Steppingstone ». Lors du démarrage, démarrer la mémoire NAND Flash 4K octets sera chargé et exécuté Steppingstone chargé dans le code de démarrage Steppingstone.                                                          

      Habituellement, le code de démarrage copie le contenu de Flash NAND à la SDRAM. En utilisant le matériel ECC, vérifier efficacement les données NAND Flash. Sur la base de la copie est terminée, le programme principal sera exécuté dans la SDRAM.

                                                                                                                                                                                           

         Lorsque la réinitialisation, la broche d'état du contrôleur NAND Flash (NCON (mémoire flash avancé), GPG13 (taille de la page), GPG14 (période d'adresse), GPG15 (largeur de bus) - voir Configuration des broches) pour acquérir la connexion de NAND Flash information, après remise à zéro de puissance vers le bas ou d'un système, le contrôleur flash NAND chargé automatiquement BootLoader 4K octets de code. Une fois le code est chargé dans BootLoader, Steppingstone dans le code BootLoader a été exécuté.

(Lorsque pendant le démarrage automatique, ECC ne passera pas le test, donc, commence NAND Flash 4Ko ne doit pas contenir des bits erreurs liées.)

       Je lis les données de la fiche de données de la suppression d'une grande partie de ce qui précède (peut-être penser que vous pourriez toujours pas très clair)

       Permettez-moi de résumer: Pour la norflash d'interface avec la mémoire SRAM, après processeur de puissance peut lire de l'instruction à exécuter à 0x00000000. Cependant, le processeur est alimenté remplacé NandFlash pas lire directement à partir de l'intérieur de la commande (adresse NandFlash carte non sur l'espace d'adressage du processeur, pour être lu par le contrôleur de NandFlash). solution S3C2440 est: un tampon de SRAM intégrée (Steppingstone), la mémoire tampon SRAM passe automatiquement à l'avant de 4 Ko de données à copier à puce NandFlash construit BootSram (note !! conception de la puce, le matériel interne après mise sous tension atteins, et je l'ai mentionné plus tard bootrom sans rapport). Par la suite, le processeur va chercher l'instruction de BootSram.

2. Pourquoi est-il nécessaire d'avoir intégré dans un tampon de SRAM afin de lancer le programme de NandFlash en?

         Par conséquent, lorsque l'OM [1: 0] pour sélectionner 00, S3C2440 procédures internes a permis la mémoire tampon de SRAM sera en face de 4Ko NandFlash automatiquement copié dans le BootSRAM. Par la suite, le processeur commence à exécuter le programme (BootSRAM adresse de départ) à 0x00000000.

       Lorsque OM [1: 0] 01 ou 10 est sélectionné dans SROM (nGCS0) doit être norflash externe. Après l'alimentation est coupée à partir du processeur de la première instruction 0x00000000 (NORFlash peut lire directement les données de l'intérieur il n'y a pas besoin d'utiliser un tampon de SRAM).

        Ici, je voudrais dire quelques mots!

         Pour processeur S3C2440 M [1: 0] pour sélectionner 01 ou 10: adresse de base norflash 0x00000000, top SRAM adresse 0x40000FFF. Après processeur de puissance récupère les instructions de 0x00000000, le processeur de bras SP (registre de pointeur pile) fait 0x40000FFF.

          OM [1: 0] pour sélectionner 00, S3C2440 procédures internes ont permis la mémoire tampon de SRAM sera en face de 4Ko NandFlash automatiquement copié dans le BootSRAM. BootSRAM adresse de base 0x00000000, le haut 0x00000FFF. Après mise sous tension, le processeur de bras récupère la première instruction à partir de 0x00000000, le processeur de bras SP (pile de registres de pointeur) fait 0x00000FFF.

Finalement, tous besoin d'être mis en miroir uboot transmis au haut de la SDRAM à exécuter. Pour norflash peut lire directement le transfert

   Le processus est similaire:

     int i;
     volatile char * norflash_base_addr = 0x000000000;
          volatile char * ddr_base_addr = 0x300000000;
        for (i = 0; i <longueur; i ++)
        {
            * (ddr_base_addr + i) = * (norflash_base_addr + i);
        } 

        uboot à l' intérieur du processus de traitement Comme écrit ci - dessus, sauf qu'il est écrit en assembleur.
       Cependant, NandFlash cela peut - il?

       Absolument, il est impossible (NandFlash tout simplement pas connecté au bus d'adresse et le bras, les processeurs de bras sont-ils pas eu accès à l'adresse, pour l'accès via le contrôleur de NandFlash), afin de partir NandFlash, en faisant la transplantation uboot, besoin d'écrire une NandFlash fonction de lecture. Nandflash contrôleur pour contrôler l'image de l'NandFlash uboot transmis au DDR. Un tampon SRAM de puissance 4KB taille NandFlash transporté automatiquement les données en BootSRAM (fait en matériel). Par la suite, lorsque le miroir doit être transporté de uboot NandFlash au ddr, vous pouvez obtenir (complétion de code) dans le code lors du portage. (Pensée logique claire, parce que la manipulation et la mise en œuvre deux fois)                             

        Comprenez-vous cela? Comme je l'ai dit rien à faire, commencer à comprendre les processus et l'architecture du processeur processeur, la mémoire principale est de comprendre les différentes caractéristiques et lire la fiche technique.

(Important! Démarrage exceptions processeur de code tel que le réglage près du bras pour le chien de garde à l'échelle Off On cache I / D et l'architecture du processeur comme celui-ci est étroitement liée à l'arrière du blog je vais analyser une section)
 

Publié 136 articles originaux · louange gagné 71 · vues 160 000 +

Je suppose que tu aimes

Origine blog.csdn.net/u012308586/article/details/104969961
conseillé
Classement