|
 |
 |
 |
|
|
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: Achim Pankalla
Datum: Fr, 13.07.2007 18:58:58
In-reply-to:
<4306C7C0-49CA-4C10-B3F7-1108D4A7A333@xxxxxxxxxxxxxxx>
References:
<BCF016D5ED5AC34FBB655D109519ABCF083EBE@xxxxxxxxxxxxxxxxxxxx> <D053B7F5-6BDD-4052-B45F-28FCF0EF45F8@xxxxxxxxxxxxxxx> <45F2B74F.8090706@xxxxxx> <38A4BFD9-CA32-436A-9A1E-B4E6E0652A5D@xxxxxxxxxxxxxxx> <463E0782.1050406@xxxxxx> <0FBD95CF-DA3B-461B-B12B-9FDCD84984D2@xxxxxxxxxxxxxxx> <463F3E0A.7020605@xxxxxx> <8D5B90F4-74FD-45D4-B5B8-DDCAC0B81932@xxxxxxxxxxxxxxx> <464092F7.30605@xxxxxx> <465DB1F9.5030404@xxxxxx> <CF925D4D-FD5A-4581-8480-1C5D35EFEDC9@xxxxxxxxxxxxxxx> <4663027F.4040301@xxxxxx> <F71477F0-03AD-4F06-87E3-AC5DA5BFD1B2@xxxxxxxxxxxxxxx> <466D6849.1020109@xxxxxx> <46756694.9010906@xxxxxx> <6566D2F2-ADE4-4656-86C0-6533B3462B64@xxxxxxxxxxxxxxx> <46866046.7040108@xxxxxx> <4686813D.8020405@xxxxxx> <70929B57-E069-4B5F-AC22-3E1E51ACD696@xxxxxxxxxxxxxxx> <5E0B9EC1-1718-4319-95D6-54862E9ECA42@xxxxxxxxxxxxxxx> <468CB5B0.3000408@xxxxxx> <EB302B19-E327-4736-A0DE-588E25D2EE48@xxxxxxxxxxxxxxx> <468FC24D.5080507@xxxxxx> <4306C7C0-49CA-4C10-B3F7-1108D4A7A333@xxxxxxxxxxxxxxx>
hallo,
Timo Sandmann schrieb:
Auch für MCU sollten wir die Adresse komplett, also in 32 Bit
einlesen. Ich weiß nicht, ob man sich darauf verlassen kann, dass das
schlichte Weglassen der oberen 2 Bytes immer funktioniert. Wo im
Adressraum der Linker die Variablen ablegt, können wir kaum pauschal
voraussagen.
anbei ein patch. ;-)
Die Sache ist soweit jetzt im SVN, ich habe es nur unter Mac OS X
getestet, unter Linux und Windows müsste das bitte nachgeholt werden.
unter windows scheint es in ordnung zu sein, bei mir läufts genau wie
vorher auch. was natürlich kein ordnunglicher test ist. mir genügs aber
erst einmal....
Die Post-Build-Einträge kommen in Kürze auch noch in die
Projekteinstellungen im SVN, das muss ich nur unter dem alten Eclipse
machen.
Ich wäre dafür, dass wir ein 5. Target "Debug Mac OS X" anlegen, weil
der Post-Build-Step hier unterschiedlich zu Linux ist, hat jemand
etwas dagegen? ;-)
nein (kann aber nur für mich sprechen...) :-)
mit freundlichen grüssen und schönes sonniges wochenende
achim
Index: E:/eclipse/ct-bot develop/ct-Bot/pc/eeprom-emu_pc.c
===================================================================
--- E:/eclipse/ct-bot develop/ct-Bot/pc/eeprom-emu_pc.c (revision 1185)
+++ E:/eclipse/ct-bot develop/ct-Bot/pc/eeprom-emu_pc.c (working copy)
@@ -247,10 +247,11 @@
static uint16 create_ctab(char *simfile, char *botfile){
FILE *fps, *fpb;
char sline[250], bline[250]; //Textzeilen aus Dateien
- char vname_s[30], vname_b[30]; //Dummy und Variablennamen
+ char vname_s[30], vname_b[30]; //Variablennamen
size_t addr_s, addr_b; //Adressen der Variablen
uint16_t size; //Variablengroesse
uint16 vc = 0; //Variablenzaehler
+ size_t first_botaddr = 0xffffffff; //Erste ct-bot EEPROM Adressse
/*Dateien oeffnen*/
if(!(fps=fopen(simfile,"r"))){
@@ -285,8 +286,10 @@
/*Variablennamen suchen*/
sscanf(&bline[BNAME_POS], "%s", vname_b);
// printf("vname_b=%s\n", vname_b);
- addr_b = strtol(&bline[BADDR_POS], NULL, 16) & 0xffff; //TODO: sehr unschoen so, besser kleinste Adresse von allen subtrahieren
+ addr_b = strtol(&bline[BADDR_POS], NULL, 16);
// printf("addr_b=0x%lx\n", addr_b);
+ if(addr_b < first_botaddr)//Kleinste ct-bot Adresse bestimmen
+ first_botaddr = addr_b;
size = strtol(&bline[BSIZE_POS], NULL, 16);
// printf("size=0x%x\n", size);
@@ -350,12 +353,15 @@
}
}
- /*Tabelle auf Startadresse 0 normieren, wenn noetig*/
+ /*Die EEPROM-Startadressen vom ct-bot und/oder Ct-Sim auf Null normieren*/
size_t first_simaddr = ctab[0].simaddr;
- if(first_simaddr != 0) {
+ if(first_simaddr || first_botaddr) {
LOG_INFO("->Adressen werden normiert");
- for(i=0; i<tsize; i++)
- ctab[i].simaddr -= first_simaddr;
+ for(i=0; i<tsize; i++){
+ if(first_simaddr) ctab[i].simaddr -= first_simaddr;
+ if(first_botaddr) ctab[i].botaddr -= first_botaddr;
+// printf("addr_b=0x%x addr_b=0x%x\n", ctab[i].botaddr, ctab[i].simaddr);
+ }
}
// for (i=0; i<tsize; i++) {
Index: E:/eclipse/ct-bot develop/ct-Bot/Changelog.txt
===================================================================
--- E:/eclipse/ct-bot develop/ct-Bot/Changelog.txt (revision 1185)
+++ E:/eclipse/ct-bot develop/ct-Bot/Changelog.txt (working copy)
@@ -1,5 +1,7 @@
CHANGELOG fuer c't-Bot
======================
+2007-07-13 Achim Pankalla [achim.pankalla@xxxxxx]: PC-EEPROM-Emulation weiter optimiert
+
2007-07-13 Timo Sandmann [mail@xxxxxxxxxxxxxxx]: PC-EEPROM-Emulation optimiert / korrigiert
2007-07-12 Timo Sandmann [mail@xxxxxxxxxxxxxxx]: Delay-Verhalten etwas vereinfacht und in andere Verhalten eingebaut
|
|
|