Größenwahn
- PIC18F2550
- Beiträge: 2836
- Registriert: Fr 30. Sep 2011, 13:08
Größenwahn
es gibt 2 verschiedene Arten die Daten zu lesen und zu schreiben.
im 1. Verfaren wird erst die Adresse ausgegeben und danach die Daten gelesen oder geschrieben
Im 2. Verfahren wird die Adresse nach dem lesen oder Schreiben um 1 erhöt so das keine neuen Adressen ausgegeben werden müssen.
Hintergrund :
Grundstrucktur für LMM/Emulatoren mit Programmcode im eRam
z.B. Z80 code muss in eine 32Bit Strucktur umgewandelt werden.
- Jeder Befehl besitzt die selbe Breite
- der längste z80 Code besteht aus 4 Byte ist der Code kürzer wird mit 0x00 aufgefüllt
- Befehle stehen hintereinander
- PC ist extern als Hartware vorhanden.
- Jeder Sprung bedeutet neusetzen des PC
Schaltung noch nicht vollständig
Gruß
PIC18F2550
drone265/278
Barbarus hic ergo sum, quia non intellegor ulli.
Ein Barbar bin ich hier, da ich von keinem verstanden werde.
ʎɐqǝ ıǝq ɹnʇɐʇsɐʇ ǝuıǝ ɹǝpǝıʍ ǝıu ǝɟnɐʞ ɥɔı ´uuɐɯ ɥo
PIC18F2550
drone265/278
Barbarus hic ergo sum, quia non intellegor ulli.
Ein Barbar bin ich hier, da ich von keinem verstanden werde.
ʎɐqǝ ıǝq ɹnʇɐʇsɐʇ ǝuıǝ ɹǝpǝıʍ ǝıu ǝɟnɐʞ ɥɔı ´uuɐɯ ɥo
Re: Größenwahn
Tja, Größenwahn, das kommt darauf an was Du mit dem RAM machen willst. Um z.B. eine Z80-Emulation mit CP/M laufen zu lassen, genügen 128kB und hat man 512kB wird es ja schon üppig. Dann könnte 10MB schon etwas hoch gegriffen sein. Will man jedoch die 8MB-Festplatten von CP/M, die sich auf der SD-Karte befinden, im RAM spiegeln wird es mal gerade eine, das kann man dann nicht unbedingt als Größenwahn bezeichnen. Wenn man nun andere Dinge wie LMM-Programme mit Propeller machen will, fällt mir im Momnet leider nichts ein was so groß sein soll, daß man 10MB haben muß. Da würde mich schon interessieren was es da gibt und das nicht besser durch einen etwas größeren ARM besser erledigt werden kann, weil seine Architektur für einen derartigen Adressraum optimaler geeignet ist.
Dann noch eine Frage, was verstehst Du unter eRAM oder ist das nur ein Tippfühler.
Gruß
TuxFan
Dann noch eine Frage, was verstehst Du unter eRAM oder ist das nur ein Tippfühler.
Gruß
TuxFan
Wunder gibt es immer wieder.......
- PIC18F2550
- Beiträge: 2836
- Registriert: Fr 30. Sep 2011, 13:08
Re: Größenwahn
externer RAMPIC18F2550 hat geschrieben:Dann noch eine Frage, was verstehst Du unter eRAM oder ist das nur ein Tippfühler.
Die Speicherangabe beruht auf dem im HIVE verwendeten RAM-Typ.
Bei verwendung des gesamten Adressraum's kommt mann schnell in der jetzigen Schaltungsversion auf 8MByte
Mit einer kleinen Modifikation könnte mann auch 4,2GByte verwalten.
Dabei muss nicht der Gesamte Speicher als SRAM ausgeführt sein es Kann auch FLASH oder EPROM's gemischt sein.
Eine Anwendung währe z.B. ein openNAVI. Hiergäbe es große Datenmengen die weit verteilt in der Datei verteilt sind und wo es auf ein schnelles herumspringen ankommt.
Eine SD-Karte schafft zwar die Datenmenge aber nicht die Flexibilität. Der EEPROM befindet sich auf der Busplatiene Sein Loader ist so vor doppelter verwendung geschützt.
Ich frage mich gerade ob ein 2.EEPROM auf der Karte für die Konfiguration dieser von nutzen ist.
Gruß
PIC18F2550
drone265/278
Barbarus hic ergo sum, quia non intellegor ulli.
Ein Barbar bin ich hier, da ich von keinem verstanden werde.
ʎɐqǝ ıǝq ɹnʇɐʇsɐʇ ǝuıǝ ɹǝpǝıʍ ǝıu ǝɟnɐʞ ɥɔı ´uuɐɯ ɥo
PIC18F2550
drone265/278
Barbarus hic ergo sum, quia non intellegor ulli.
Ein Barbar bin ich hier, da ich von keinem verstanden werde.
ʎɐqǝ ıǝq ɹnʇɐʇsɐʇ ǝuıǝ ɹǝpǝıʍ ǝıu ǝɟnɐʞ ɥɔı ´uuɐɯ ɥo
- PIC18F2550
- Beiträge: 2836
- Registriert: Fr 30. Sep 2011, 13:08
Re: Größenwahn
Jetzt hab ich mir ein Ei gelegt.
Da jetzt 2COG's auf die print routine zugreifen können passieren ja die tollsten sachen.
Um eine Vorrang verriegelung brauch ich mir keine sorgen zu machen das Wird schon über die Slots geregelt Start des 3.VGA-COG's
Horchroutine sie dient nur zur Anzeige der Daten im Slot.
Da jetzt 2COG's auf die print routine zugreifen können passieren ja die tollsten sachen.
Um eine Vorrang verriegelung brauch ich mir keine sorgen zu machen das Wird schon über die Slots geregelt Start des 3.VGA-COG's
Code: Alles auswählen
....
'if both COGs launched, return true
if cog[0] and cog[1]
pr_chr($E)
cog[2] := cognew(slotr(slotvec), @stack)
if cog[0] and cog[1] and cog[2]
return true
'else, stop any launched COG and return false
else
stop
'else, stop any launched COG and return false
else
stop
Code: Alles auswählen
PUB slotr(slotvec)| t
pr_str(string(" ******************", $A))
pr_str(string(" * Monitor v. 0.1 *", $A))
pr_str(string(" * (c) PIC18F2550 *", $A))
pr_str(string(" ******************", $A, $A))
pr_str(string(" Slotvector : ", $A,$A,))
pr_str(string(" ## Eingangspuffer ## ", $A,))
pr_str(string(" Status : ", $A,))
pr_str(string(" Eigene ID : ", $A,))
pr_str(string(" Absender ID : ", $A,))
pr_str(string(" Datenlänge : ", $A,))
pr_str(string(" Daten : ", $A,$A,))
pr_str(string(" ## Ausgangspuffer ## ", $A,))
pr_str(string(" Status : ", $A,))
pr_str(string(" Empfänger ID : ", $A,))
pr_str(string(" Eigene ID : ", $A,))
pr_str(string(" Datenlänge : ", $A,))
pr_str(string(" Daten : ", $A,$A,))
repeat
pr_strat( 5,16,str.integerToHexadecimal(slotvec,4))
pr_strat( 8,16,str.integerToHexadecimal(byte[slotvec][0],2))
pr_strat( 9,16,str.integerToHexadecimal(byte[slotvec][1],2))
pr_strat(10,16,str.integerToHexadecimal(byte[slotvec][2],2))
pr_strat(11,16,str.integerToHexadecimal(byte[slotvec][3],2))
repeat t from 0 to 15
pr_strat(12,16 + t * 3 ,str.integerToHexadecimal(byte[slotvec][4 + t],2))
pr_chr(" ")
pr_strat( 15,16,str.integerToHexadecimal(byte[slotvec][20],2))
pr_strat( 16,16,str.integerToHexadecimal(byte[slotvec][21],2))
pr_strat( 17,16,str.integerToHexadecimal(byte[slotvec][22],2))
pr_strat( 18,16,str.integerToHexadecimal(byte[slotvec][23],2))
repeat t from 0 to 15
pr_strat(19,16 + t * 3 ,str.integerToHexadecimal(byte[slotvec][24 + t],2))
pr_chr(" ")
Gruß
PIC18F2550
drone265/278
Barbarus hic ergo sum, quia non intellegor ulli.
Ein Barbar bin ich hier, da ich von keinem verstanden werde.
ʎɐqǝ ıǝq ɹnʇɐʇsɐʇ ǝuıǝ ɹǝpǝıʍ ǝıu ǝɟnɐʞ ɥɔı ´uuɐɯ ɥo
PIC18F2550
drone265/278
Barbarus hic ergo sum, quia non intellegor ulli.
Ein Barbar bin ich hier, da ich von keinem verstanden werde.
ʎɐqǝ ıǝq ɹnʇɐʇsɐʇ ǝuıǝ ɹǝpǝıʍ ǝıu ǝɟnɐʞ ɥɔı ´uuɐɯ ɥo
Re: Größenwahn
When kein cog verfuegbar ist wird -1 (TRUE) als Ergebnis geliefert. Andererseits ist 0 (FALSE) ein gueltiges Resultat.PIC18F2550 hat geschrieben:Start des 3.VGA-COG'sCode: Alles auswählen
.... 'if both COGs launched, return true if cog[0] and cog[1] pr_chr($E) cog[2] := cognew(slotr(slotvec), @stack) if cog[0] and cog[1] and cog[2] return true ...
Code: Alles auswählen
if ID := cognew(...) +1
...
if ID
cogstop(ID~ -1)
- PIC18F2550
- Beiträge: 2836
- Registriert: Fr 30. Sep 2011, 13:08
Re: Größenwahn
Oh hab wol das +1 vergessen Danke
Gruß
PIC18F2550
drone265/278
Barbarus hic ergo sum, quia non intellegor ulli.
Ein Barbar bin ich hier, da ich von keinem verstanden werde.
ʎɐqǝ ıǝq ɹnʇɐʇsɐʇ ǝuıǝ ɹǝpǝıʍ ǝıu ǝɟnɐʞ ɥɔı ´uuɐɯ ɥo
PIC18F2550
drone265/278
Barbarus hic ergo sum, quia non intellegor ulli.
Ein Barbar bin ich hier, da ich von keinem verstanden werde.
ʎɐqǝ ıǝq ɹnʇɐʇsɐʇ ǝuıǝ ɹǝpǝıʍ ǝıu ǝɟnɐʞ ɥɔı ´uuɐɯ ɥo