Forum: FPGA, VHDL & Co. AX8 Softcore Problem.


von Sigint 112 (sigint)


Lesenswert?

Hallo zusammen,
   ich wollte mal fragen, ob hier jemand den AX8-Softcore mit GCC am 
laufen hat. Ich möchte per SPI einen Text auf ein OSD (OSD vom 
Mist-Board) ausgeben.
Das SPI Interface und OSD funktionieren soweit. Wenn ich die Daten "per 
Hand", also Byte für Byte, rüberschiebe, dann wird ein Buchstabe 
angezeigt. Möchte ich aber die Zeichendaten aus einem Array oder einem 
Array im Programmspeicher holen, dann wird nur Unsinn angezeigt. Ich hab 
den AX8 mit 4kB ROM und RAM ausgestattet. Das .data-Segment hab ich per 
Hand hinter den Stack gelegt.

Gruß,
  SIGINT

von Sigint 112 (sigint)


Lesenswert?

P.S.: Ich hab festgestellt, daß das .data-Segement wohl nicht 
initialisiert wird. Wenn ich einer Variablen im .data -Segment noch mal 
ihren Wert zuweise, dann stimmt die Ausgabe. Warum ich allerdings keine 
Daten aus dem Programmspeicher laden kann ist mir immernoch 
schleierhaft.

von Duke Scarring (Gast)


Lesenswert?

Sigint 1. schrieb:
> Warum ich allerdings keine
> Daten aus dem Programmspeicher laden kann ist mir immernoch
> schleierhaft.
Dafür hat der AVR spezielle Instruktionen bzw. Opcodes. Da muss man doch 
mit _flash und PSTR arbeiten.

Duke

von Sigint 112 (sigint)


Lesenswert?

Jo, steht alles im Header pgmspace.h .
Man muss die Variable mit PROGMEM in den Flash verbannen und kann dann 
mit
pgm_read_byte auf die Daten zugreifen. Soweit, so gut. Aber ich bekomme 
nur irgendwelche Zufallswerte, die allerdings Konstant sind. Anscheinend 
läuft irgendwas mit LPM schief. Deshalb die Frage, ob den Kern jemand am 
laufen hat und auf initialisierte Daten zugreifen kann ;-) Daten im .bss 
- Segment funktionieren ohne Probleme, wenn ich ihnen später einen Wert 
zuweise.

Gruß,
   SIGINT

von Antti L. (xilant)


Lesenswert?

AX8 ist schon benutzbar, aber mal muss man selber was basteln auch, es 
gibt da viele möglichkeiten, aber ganz so lustig ist es nicht. Ich habe 
meistens den PROG memory block RAM dem AX8 zugreifbar gemacht das man es 
ohne LPM lesen schreiben kann, das wird dann aber wider nicht kompatible 
mit GCC

https://hackaday.io/project/6592-dipsy

dieses kleine kerl hat auch AX8 basierten demo drinne, werde ich auch 
weiter entwickeln..

von Lars R. (lrs)


Lesenswert?

Wie wurde das Problem gelöst?
Würde es auch ein AVR8 (opencores, papilio) tun?

von Sigint 112 (sigint)


Lesenswert?

@Antti:
  Eigentlich sollte LPM funktionieren... ich kenn mich leider nicht mit 
Multisim aus und kann nicht nachschauen, wo es hakt.
Das ROM im Speicher einblenden wäre ne möglichkeit... ich möchte aber 
kein Hack. Das gibt nur Probleme

@Lars:
  Leider hab ich das Problem noch nicht gefunden. Mir fehlt aber auch 
die Zeit für eine intensive Fehlersuche.
Den AVR8-Core hab ich schon gesehen... der scheint aber deutlich größer 
zu sein. Ausserdem hab ich ihn noch nicht auf einem Cyclone 
synthetisiert bekommen. Hab es allerdings nur kurz angetestet.
Mir sind die meisten Cores noch zu komplex. Ich fang gerade erst mit 
FPGAs an.

Gruß,
  SIGINT

von Antti L. (xilant)


Lesenswert?

tjah, ich werde sehr bald dem AX8

in diesem KERL

http://DIPSY.COOL

den AVR core erweitern mit framebuffer für WS2811 ansteurung, kannst ja 
mal da auch reingucken, das ist echt klein gehalten die core da

https://github.com/AnttiLukats/DIPSY/tree/master/THP2015

Das zeug programmiere ich mit AVR Basic, nicht mit GCC

: Bearbeitet durch User
von Sigint 112 (sigint)


Angehängte Dateien:

Lesenswert?

Es läuft! So halbwegs ;) Ich hatte wohl mehrere Probleme. Ein Problem 
war, daß mein AX8 mehr Speicher hat als der AT90S2313 und GCC deshalb 
mist gebaut hat. Das andere Problem war, daß mein ROM mit höherem Takt 
getaktet wurde als vorgesehen. Hatte am Anfang Probleme und hab das zum 
testen eingebaut.
Allerdings läuft noch was schief, wenn ich Daten im PROGMEM ablege. Dann 
startet mein Programm nicht. Damit kann ich aber erstmal leben.

Das Dipsy kenn ich und finde ich nett. Ist für mich aber zu klein. 
(Resourcen und IO)
Interesannt finde ich aber, daß die den AX8-Core abgespeckt haben :) 
Meiner braucht ~1.6kLE.

P.S.: Hier mal ein Bild von meinem kleinen "Projekt"

: Bearbeitet durch User
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.