Forum: FPGA, VHDL & Co. Nanoboard 2 - Application Memory


von Andi H. (Gast)


Lesenswert?

Hi Leute,

folgendes Problem:
Ein FPGA-Projekt mit Altium erstellt soll auf das Nanoboard 2 gespielt 
werden. Das Embedded-Project, enthält die main.c mit folgenden 
Textzeilen:

#pragma section .bss=SHARED_MEM
pixel_t vga1[XRES * YRES];
#pragma endsection

#pragma section .bss=SHARED_MEM2
pixel_t vga2[XRES * YRES];
#pragma endsection


Dadurch werden diese Teile im RAM gespeichert.
Beim Kompilieren kommt dann die Fehlermeldung:


[Info]  requirement: 1M (2000868) bytes of RAM area in space "main"
[Info]  requirement: range restriction - range(s) 0x0-0x8000 and/or 
0x1000000-0x1100000 and/or 0x2000000-0x2100000

Also es wird mehr speicher benötigt. Vergrößert man nun die 
Speicherbereiche, werden die range-restrictions nicht mehr eingehalten 
und das Programm funktioniert nicht.
Was kann man tun?

von Duke Scarring (Gast)


Lesenswert?

Andi H. schrieb:
> Was kann man tun?
Erstmal uns drüber aufklären, was das Projekt/Programm machen soll.
Außerdem wäre ganz hilfreich zu wissen, auf welchem Prozessor und mit 
welcher Peripherie das Programm laufen soll, sowie die genutzte 
Software-Toolchain.

> #pragma section .bss=SHARED_MEM
> pixel_t vga1[XRES * YRES];
> #pragma endsection
Diese #pragma-Geschichte sieht aus, als wenn da ein Hinweis an den 
Linker gegeben werden soll. Aber diese Syntax kenn ich (noch?) nicht, in 
der mir einigermaßen geläufigen gnu-Toolchain.

Duke

von Halbwachs (Gast)


Lesenswert?

Beschäftige mich auch gerade mit dem Nanoboard, und habe genau das selbe 
Problem.
Wäre sehr hilfreich, wenn jemand helfen könnte.

von Andi H. (Gast)


Lesenswert?

@Duke
Über eine Kamera soll ein Videosignal eingelesen werden, welches im SRAM 
(1MB) zwischengespeichert wird und anschließend auf einem VGA Monitor 
ausgegeben wird.
Zusätzlich sollen im RAM die Grafiken, wie das Hintergrundbild 
gespeichert werden. Für diese Funktionen ist der 1MB RAM allerdings zu 
klein.

Die Pragma Section dient dazu, den darin enthaltenen Code in eine Memory 
Location zu schreiben.

von Duke Scarring (Gast)


Lesenswert?

Andi H. schrieb:
> Die Pragma Section dient dazu, den darin enthaltenen Code in eine Memory
> Location zu schreiben.
Das ist also von Dir erstellter Code.

Wie sieht es mit den anderen Antworten aus:
> auf welchem Prozessor und mit
> welcher Peripherie das Programm laufen soll, sowie die genutzte
> Software-Toolchain.

Duke

von Halbwachs (Gast)


Lesenswert?

Hey
Wollte mal die neue Altium Designer 10 Version mit dem Nanoboard 2 & 
Spartan 3 XC3S1500 probieren
Hat jemand eine Ahnung, welche ISE Webpack Version damit kompatibel ist, 
um fpga programmieren zu können

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
Noch kein Account? Hier anmelden.