Hallo, ich bin Anfänger in sachen Altera FPGAs und NIOSII. Ich benutze das Altera CycloneIII Starter Board ( NEEK ) mit einem Cyclone III EP3C25 FPGA. Ich habe mit dem SOPC-Builder ein System zusammengestellt, dass folgende Komponenten hat: - onchip_memory - cpu (NIOSII/s) - tri_state_bridge - SRAM_Controller (cypress CY7C1380C SSRAM) - interval timer - PIO für leds und Taster - altpll für den SRAM clock - system id Ich hab das System mit Quartus 10.0 sp1 synthetisiert und auf das FPGA geladen, ohne Fehlermeldungen. Ich hab ein einfaches C-Programm mit der NIOSII EDS geschrieben, welches lediglich eine LED Toggelt. Beim Compilieren des Projekts gibt es keine Fehler, aber wenn ich das Programm auf dem NIOSII ausführe passiert garnichts. Als würde er das Programm nicht ausführen. Wenn ich das Projekt debugge, erscheint kein cursor im Codefenster und auch in den Abschnitten Disassembly, Variables oder Registers wird nichts angezeigt. Kann es sein, das der Processor an der falschen Adresse steht, wo kein Programmcode enthalten ist?? Kennt jemand das Problem oder kann mir jemand ein Tip geben wie ich bei der Problemlösung weiter verfahren könnte?? Vielen Dank grüße Matthias
Hallo Matthias, wenn ich das richtig sehe, hast Du zwei Möglichkeiten, wo die IDE (SBT ?) das Programm hinlinken könnte: on-chip RAM und SSRAM. Man muss bei der CPU ja den Reset-Vektor festlegen, was hast Du da ausgewählt? Passt das zu der Einstellung des Linkers? Und schau mal bitte die Takte an, ich denke, es ist nicht korrekt, wenn nur die eine Komponente SSRAM Controller mit einem anderen Takt läuft. Schau mal in ein Beispieldesign für NEEK rein, in dem der SSRAM Controller benutzt wird. Grüße, Harald
Hallo Harald, zunächst vielen Dank für deine schnelle Antwort. Ich hab den Reset Vector im SOPC-Builder auf den on-chip memory gelegt, hab allerdings dann beim ausführen des Programms bemerkt, dass der Processor aus dem ssram startet ( anhand der Adresse, welche die SBT console ausgibt 'starting Processor at address 0x... ). daraufhin hab ich im BSP-Editor im Tab 'Linker Script' alle Linker Sections auf das on-chip memory gesetzt. Hatte allerdings keine Auswirkung. Was mich zu einer Frage bringt: Warum werden die Linker Sections alle automatisch auf das ssram gelegt, bzw. kann ich das noch anderweitig festlegen als im nachhinein über den BSP-Editor?? Danke für den Tip mit dem Beispieldesign, werd ich gleich mal ausprobieren. Allerdings benutze ich in meinem Programm das ssram noch garnicht, d.h. ich greife nicht darauf zu. Kann sich ein falscher Takt dennoch so gravierent auf das Programm auswirken?? Ich bin bis jetzt davon ausgegangen, dass wenn etwas mit dem Speicher nicht stimmen sollte, ich das erst bei Speicherzugriffen bemerke. Leider bin ich bis jetzt noch nicht soweit gekommen. Grüße Matthias
Matthias J. schrieb: > Warum werden die Linker Sections alle automatisch auf das ssram gelegt, > bzw. kann ich das noch anderweitig festlegen als im nachhinein über den > BSP-Editor?? Als ich das letzte Mal einen Nios benutzt habe, hat man das in der Eclipse-IDE einstellen können. Irgend eine Projekteinstellung. Dort wurde das "was kommt wo hin" eingestellt. Frag mich nur nicht wo genau das war.... aber ich musste auch suchen. Auf alle Fälle zeigt Dir das auch sämtliche Adressbelegungen an. Konnte man den Resetvektor nicht auf das JTAG-Interface stellen, für's debuggen? Das ist bei mir leider schon alles länger her. Ich denke mal dass die Standardeinstellung "Start aus dem großen RAM" halt den Hintergrund hat, dass letztendlich alle größeren Projekte in einem externen RAM laufen. Intern wird es schnell zu knapp.
Matthias J. schrieb: > Was mich zu einer Frage bringt: > Warum werden die Linker Sections alle automatisch auf das ssram gelegt, > bzw. kann ich das noch anderweitig festlegen als im nachhinein über den > BSP-Editor?? Das sind genau genommen zwei Fragen: Warum werden die Linker Sections alle automatisch auf das ssram gelegt? Weil der Programmierer der IDE/BST das so gemacht hat. :-) Ohne Scherz: Per default wird das Programm auf die Adresse des größten Speichers gelinkt, der am Instruction Master hängt. > bzw. kann ich das noch anderweitig festlegen als im nachhinein über den > BSP-Editor?? Nein, anders geht das nicht. Das ist die richtige Methode, so macht man das. Grüße, Harald
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.