Je voudrais connaître la procédure appropriée pour créer un fichier PROM (.MCS) pour un flash SPI série inclure à la fois le flux binaire de configuration FPGA et le logiciel à utiliser par le processeur Microblaze. Cela suppose que ma conception matérielle et logicielle est terminée. J'utilise une carte d'évaluation Xilinx Spartan-6, la SP605, qui a plusieurs périphériques de mémoire non volatile et je souhaite utiliser le flash SPI série pour stocker à la fois le train binaire FPGA et le logiciel Microblaze qui doit être chargé en mémoire. Je ne peux y parvenir que si le code du Microblaze réside dans les BRAM internes. Si je crée mon script de lien de sorte qu'il place le code ou les sections de données dans la RAM DDR3 externe, il échoue.Flux de conception pour créer un fichier Flash SPI amorçable (fichier PROM) pour une configuration bitstream Xilinx contenant Spartan-6 et logiciel Microblaze
- EDIT -
OK, donc j'ai essayé deux choses différentes et j'ai une meilleure compréhension de ce que je dois faire, mais toujours sans succès (qui, d'ailleurs, merci pour votre réponse Andy). Donc, j'ai essayé 2 choses différentes. Pour les deux, je fusionne d'abord le bitstream du système avec le programme bootloader pour générer un nouveau fichier .bit (download.bit) qui fonctionne bien (lorsque vous cliquez sur programme dans SDK et que vous choisissez le bootloader pour charger le BRAM, il appelle data2mem générer le nouveau fichier download.bit).
APPROCHE PREMIER - CORBEILLE FICHIER
Une fois que mon programme principal est fait (avec un script de liaison ciblant la RAM DDR et tout) j'appelle mb-objcopy pour générer un fichier bin du .elf un:
mb-objcopy -O binary program -R .vectors_reset -R .vectors.sw_exception -R vectors.interrupt -R .vectors.hw_exception dummy.elf dummy.b
Puis j'utilise iMPACT pour créer et fichier MCS en utilisant download.bit et dummy.b. Je place download.bit à l'adresse de départ du SPI Flash et de dummy.b plus bas (le bootloader pointe déjà vers cette adresse). Ensuite, je graver le MCS à la série SPI FLash, redémarrer et le chargeur de démarrage s'exécute et soi-disant copie tout à la RAM DDR, mais, le programme principal ne fonctionne pas. Est-ce que j'ai râté quelque chose? Si j'essaie d'utiliser iMPACT sans changer le programme principal de .elf à BIN, le PC se bloque (parfois je dois même complètement réinitialiser l'ordinateur) et j'ai un PC très rapide et équipé de mémoire.
Le chargeur de démarrage que j'ai utilisé était le même que celui lié dans le document Xilinx XAPP1146.
APPROCHE DEUXIÈME - DOSSIER SREC
Les étapes sont à peu près les mêmes, sauf que j'utilise la même commande mb-objcopy pour générer un SREC au lieu d'un fichier BIN (cette fois, je ne supprimer aucun des les secteurs, ce que je devais faire pour le fichier BIN sinon cela générerait un énorme fichier).
Le chargeur de démarrage que j'ai utilisé est celui que possède le logiciel SDK.
Veuillez me faire savoir si vous avez créé un chargeur de démarrage pour le Microblaze.
Merci à l'avance, Erick
Cela pourrait faire mieux sur electronics.se. Vous pouvez le marquer et demander à un modérateur de le faire migrer. – Andy
Pouvez-vous mettre à jour votre question en détail sur la façon dont vous générez le fichier MCS et les erreurs que vous obtenez? Utilisez-vous l'option '-data_file' ou son équivalent graphique? Une erreur de dépassement de capacité semble indiquer que le flash n'est peut-être pas assez grand. Voici quelques ressources: [AR 36210] (http://www.xilinx.com/support/answers/36210.htm), [AR 35345] (http://www.xilinx.com/support/answers/35345 .htm), [Programmer les données de l'utilisateur en flash interne ...] (http://forums.xilinx.com/t5/Design-Tools-Others/Program-user-data-into-in-internal-flash-of-Spartan3an -xc3s200an/td-p/118996) – Andy