Hallo Zusammen, ich habe mir per Qsys ein NiosII-System aufgebaut und ein kleines C-Programm geschrieben. Dieses C-Programm hätte ich gerne dauerhaft auf dem FPGA. Kann mir jemand sagen wie hier vorzugehen ist? Die vhdl Datei des Qsys-Systems liegt nach der Synthese als .sof Datei vor, welche ich über QuartusII in eine .jic Datei umwandeln kann. Diese kann ich dauerhaft auf den FPGA/Speicher schreiben - funktioniert auch einwandfrei. Jedoch weiß ich nicht, wie ich jetzt auch noch das C-Programm parallel dazu permanent auf den FPGA bekomme. Wäre super wenn mir jemand sagen könnte wie das geht :-) Gruß zander
Entweder das C-Programm ist klein genug, dann kannst du es in ein internes Block-RAM integrieren. Wenn das nicht klappt, dann musst du dir einen kleinen Bootloader schreiben, der das eigentliche Programm aus einem externen Speicher lädt (SD-Karte, SPI-Flash oder sonst was). Gruß Marius
Dafuer gibt es den Nios II Flashprogrammer. Man kann sein Programm damit auch in den vorhandenen Konfigurationsspeicher flashen. Quasi huckepack zur eigentlichen FPGA-Konfiguration. Dazu das Dokument von Altera: Nios II Flash Programmer User Guide Falls auf dem Board SPI-Flash ist, wuerde ich den benutzen. Meiner Erinnerung nach ist der Configflash nicht so oft beschreibbar. Viel Erfolg!
Hallo Zander Im Nios kannst du per rechtsklick auf dein Projekt=>Make Targets=>Build=>mem_init_generate die benötigten files (qip,hex,spd) generieren. Diese Files kannst du dann im Quartus einbinden. Dem On-Chip Memory im QSYS musst du dann noch sagen, dass es sich mit dem hex file initialisiern soll. Dann das Projekt neu synthetisieren und fertig.
Danke euch allen für die Antworten! Ich werde das diese Woche testen und eine Rückmeldung geben. Es hätte mich wirklich gewundert wenn das nur per Bootloader gegangen wäre. Offenbar wieder mal drum herum gekommen :D Gruß zander
@Dave: Habe die Vorgehensweise getestet und die benötigten files (qip, hex, spd) wie beschrieben erstellt und im Quartus eingebunden. Danach in Qsys das Häkchen für die Initialisierung per User hex-init gesetzt. Nach meinem Verständnis wollte ich dann das Qsys-Modell nochmal per "Generate" frisch anlegen. Hierbei ergab(en) sich folgende Fehlermeldung(en): Error: onchip_memory_cpu: Failed to generate module NiosII_ADXL345_i2c_read3_SOPC_onchip_memory_cpu Error: Generation stopped, 84 or more modules remaining Error: ip-generate failed with exit code 1: 2 Errors, 2 Warnings Info: Finished: Create HDL design files for synthesis Trotz Fehlermeldung in Qsys habe ich einfach probiert die Synthese neu zu starten. Die Synthese lief auch problemlos durch sodass ich das .jic-File erstellen und auf den FPGA zu spielen konnte. Komischerweise funktioniert das ganze trotz der Fehlermeldung aus Qsys wie gewünscht... Kann mir jemand sagen warum? :-) Die neue "Generierung" in Qsys wäre doch erforderlich oder? Gruß zander
Hallo Zander Ob es wirklich nötig ist,im Qsys nochmals zu generieren kann ich dir nicht zu 100% sagen. Ich glaube es reicht, wenn man neu synthetisiert, aber schaden tut es sicher nicht. Ich setze bei mir immer das Initialize memory content Häckchen, und nicht das Enable non-default initialization file. Hast du das auch so gemacht? Falls das nichts bringt, mach doch mal ein Screenshot von deinem QSYS. Gruss Dave
Hallo Dave, ich habe das ganze nochmal getestet und auch erst jetzt festgestellt, dass das erzeugte hex-file gleichnamig mit dem von Qsys erwarteten Namen ist, welcher gleich angezeigt wird (hier hat offenbar jemand etwas gedacht!). Daher reicht es natürlich aus lediglich das Initialize memory content Häckchen zu setzen, was dieses File erwartet. Die Synthese in Qsys (per Generate) läuft dann auch problemlos durch. Vielen Dank nochmal! Gruß zander
Eine komplette Synthese ist unnötig, es reicht > quartus_cdb --update_mif gefolgt von > quartus_asm aufzurufen.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.