So Leute jetzt kommt mal wieder was neues ...
Ihr wisst ja nun alle, dass beim sogenannten mhc_debug keine Rückmeldung erfolgt,
da der Loader ja noch nicht im Debug ist. Es wäre aber schön etwas zu sehen ...
Fakt ist, dass die 'Product?'-Variable im RAM 'abgelegt' wird.
Wenn man nun im RAM diese Variable auf 0x00000000 ändert, wäre der Loader im Debug.
Aber nur temporär, da beim nächsten Start die Variable wieder aus dem Flash
geholt wird ...
Aber wie ändere ich nun das RAM ?? .... ganz einfach ...
Anlass war das rumprobieren mit SRecord ... damit kann ja ein Programm
über die serielle Schnittstelle ins RAM geladen werden ... und das brachte
mich auf die Idee:
warum nicht einfach die 4Byte der Variable auf 00 setzen ...
Und es geht ...
dazu braucht man nur folgendes Wissen ...
wo befindet sich diese Variable ?? ....
na da ----->
[1.Änderung]
(hab zwar unten die kompletten RAM-Adressen gepostet, aber ich editier die mal hier mit rein ... manche lesen nicht soweit *lol* )
Nokia Bmon 1.0 : 0x029c60
Nokia Bmon 1.2 : 0x029d18
Philips Bmon 1.0 : 0x02a84c
Sagem Bmon 1.0 : 0x029dd8
Sagem Bmon 1.1 : 0x02a9cc
Sagem Bmon 1.2 : 0x02a9cc
Sagem Bmon 1.3 : 0x02ad10
--- ohne Garantie ---
wie man sieht ist es wieder Hardware und Bmon Version abhängig !!!
[/Änderung]
so wie muss nun der SRecord aussehen ?
S208xxxxxx0000000000 (man beachte ... grosses 'S' !!!)
Bedeutung:
S2
---> Srecord mit 3Byte Adressfeld
08
---> Länge
xxxxxx
---> 3Byte Adressfeld (hier die RAM-Adresse eingeben zb. 029d18 )
00000000
---> 4Byte Datenfeld (also unsere 'Product?'-Variable )
00
---> 1Byte CRC ... hier Absichtlich falsche CRC, damit der Srecord-Download abgebrochen wird
so wie funktioniert das nun ...
1. mhc_Debug bis zum Punkt 'icache' ausführen
2. jetzt dl und [ENTER] tippen (aktiviert SRecord Download)
3. jetzt den Srecord eintippen ... fertig Box ist im Debug (Prompt erscheint)
so beim eintippen muss man folgendes beachten :
1. das S muss gross geschrieben werden
2. bei den Buchstaben der Hexzahlen (a;b;c;d;e;f) ist es egal
3. keine Leerzeichen oder [ENTER] tippen !!
4. die Zeichen werden nicht ge-echo't ... also bei einem Terminalprogramm ohne
Lokal-Echo sieht man nicht was man tippt !!!
Es kann nichts kaputt gehen, da wir nur das RAM ändern ...
Also wenn nach der Meldung vom Loader
"dl: srec chksum error in line 1.
in record xx, calculated xx"
und kein Prompt (dbox2:root> ) erscheint, hat man sich vertippt oder falsche RAM-Adresse genommen ... dann unbedingt Box neu starten und von vorne beginnen ...
Hier mal ein Beispiel von einer Nokia 2xI mit Bmon 1.2 :
Adresse RAM: 0x029d18
Anmerkung:log von MHC hat geschrieben: icache
icache is on
dl
S Record Load, offset: 0
S208029d180000000000
dl: srec chksum error in line 1.
in record 0x0, calculated 0x40
dbox2:root> printenv
printenv: config_mem: 0x1000095c
name value default
product?: true false
diag-switch?: false true
auto-boot?: true true
watchdog-reboot?: false false
boot-cmd: boot net flash boot net
intopt: 0x01234567 0x12345678
dbox2:root> setenv product? 0
write sector : 0 Address 0 Size 4000
dbox2:root> printenv
printenv: config_mem: 0x1000095c
name value default
product?: false false
diag-switch?: false true
auto-boot?: true true
watchdog-reboot?: false false
boot-cmd: boot net flash boot net
intopt: 0x01234567 0x12345678
dbox2:root>
Für User mit Nokia 2xI und Bmon 1.0 ist dies sehr Vorteilhaft ...
1. Man aktivert den temporären Debug
2. man kann mit 'boot net' nun laden was man will ...