|
c't Projekte - c't-Bot und c't-Sim -
Mailinglisten
[Voriger (Datum)]
[Nächster (Datum)]
[Voriger (Thread)]
[Nächster (Thread)]
[Nach Datum][Nach Thread]
Absender: Timo Sandmann
Datum: Di, 08.01.2008 13:44:51
In-reply-to:
<4783393B.6080509@xxxxxxxx>
References:
<812F86EC9E1A96489D5E83C2AB7D688601840BB4@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx> <4783393B.6080509@xxxxxxxx>
Hallo,
Am 08.01.2008 um 09:50 schrieb Benjamin Benz:
...
Der Atmega32, den die meisten in ihrem Bot haben besitzt 2048 Byte
Speicher. Ich denke nicht, dass man mehr als die Hälfte davon für die
Karte einsetzen kann, da ja auch noch andere Routinen Speicher
brauchen.
da sind eigentlich nur noch 512 Byte frei, nämlich genau die, welche
zum Einlagern der MMC-Sektoren benutzt werden. Für eine Map ohne MMC
kann man natürlich diesen Puffer mit demselben Code wie mit MMC
verwenden, nur gibt es dann eben kein Paging. Und die Auflösung muss
halt runter. Bei 2m x 2m (altes Beispiel) ergibt das dann Felder, die
so groß sind wie der Bot selbst. Kann man damit noch etwas Sinnvolles
anfangen? Wenn ja, spricht IMHO nichts dagegen, es mit einzubauen.
Was das Verwenden der Map in Verhalten angeht, noch ein Hinweis: Da
wir zukünftig die Map-Einträge cachen werden, ist die Map nicht sofort
up-to-date (ist sie nach dem alten Prinzip zeitlich gesehen auch
nicht, aber aus Sicht der Verhalten, weil die komplett unterbrochen
wurden, bis die Map fertig ist). Außerdem wird kein gleichzeitiger
Lese- und Schreibzugriff auf die Map funktionieren. Man sollte die Map
daher nur auswerten, wenn der Bot steht.
@Ben: Vielleicht sollten wir noch ein Lock / Mutex einbauen, um die
Karte für Lesezugriffe zu sperren, solange der Cache nicht leer ist?
Für Auswertungsverhalten sollte das Caching ja transparent sein, wobei
sie natürlich trotzdem so konzipiert sein müssen, dass sie keinen
"Online-Zugriff" benötigen.
Viele Grüße,
Timo
|
|