Für dieses Forum muß Javascript im Browser aktiviert werden!
Kommentar: Einfügen von HTML im Kommentar: Link einfügen: <a href="LINKURL" target="_blank">LINKTITEL</a> Bild einfügen: <img src="BILDURL"> Text formatieren: <b>fetter Text</b> <i>kursiver Text</i> <u>unterstrichener Text</u> Kombinationen sind auch möglich z.B.: <b><i>fetter & kursiver Text</i></b> C2 Quellcode formatieren: <code>Quellcode</code> ASM Quellcode formatieren: <asm>Quellcode</asm> (Innerhalb eines Quellcodeabschnitts ist kein html möglich.) Wichtig: Bitte mache Zeilenumbrüche, bevor Du am rechten Rand des Eingabefeldes ankommst ! > Hallo André, > > zuerst muß ich jetzt mal rausfinden, was die > > > > 0x25e4: MOV R4,#0xaaaa > > > 0x25e8: MOV 0xaaaa,R4 writes to prom address 0x5555 because A0 is not used > > > 0x25ec: MOV R4,#0x5555 > > > 0x25f0: MOV 0x5554,R4 > > > 0x25f4: MOV R4,#0xa0a0 > > > 0x25f8: MOV 0xaaaa,R4 > > eigentlich so genau machen und dann mal > die Speicheraufteilung im allgemeinen welche Sachen im welchen > Segment sind, un wo noch ein bisschen Platz für die paar Bytes ist. > dann denke sollte es schon möglich sein diese auch zu nutzen, > aber wie gesagt zuerst denke ich, muß ich mir ein paar grundsätzliche > Informationen über Flash Speicher besorgen, um die Routinen erst mal > richtig zu verstehen. Ich werde dich auf dem Laufenden halten, hab aber > z.Zt. wenig Zeit um mich mit dem Thema intensiv zu beschäftigen. > > mfg Tom > > > > Hallo Tom, > > > > Diese Diskussion gab es schon öfters. :-) > > Jedoch beschäfftige ich mich jetzt seit wenigen Wochen auch mit Flash-Bausteinen, > > da ich Versuche mache mein CC2Net-RAM-Device auch mit Flash-Bausteinen zu bestücken. > > > > Das Problem bei der CC2 auf den Flash schreibend oder löschend zuzugreifen ist, > > daß der ausführende Code nicht im Flash stehen darf. > > Ich habe mir jetzt die Mühe gemacht, die Schritte des OS nachzuvollziehen bzw. habe ich > > meinen Kopf "debuggen" lassen. *grins* > > > > Beim löschen von Seg.3 passiert folgendes: > > Angefangen bei den Hosmode-Routinen ab 0x2276 wird das entsprechende > > Kommando ausgewertet. Bei CMD6 ("ERAS HEX") wird zu Addr. 0x2310 in der Sprungtabelle > > gesprungen. Von dort aus wird der Code ab 0x2536 aufgerufen. > > Hier wird "ERAS HEX" auf dem internen LCD ausgegeben, dann die Kopierroutine an 0x255C > > aufgerufen, welche die Lösch-Routinen in den internen RAM des C164CI ab Addr.0xF8B4 kopiert. > > Anschließend wird die Segmentnummer, hier 3, in R12 gespeichert. > > Danach wird die Routine an 0x2552 aufgerufen, welche die Interrupts zuerst deaktiviert, > > dann die Lösch-Routine im internen RAM an Addr.0xF8B4 aufruft und anschließend die > > die Interrupts wieder aktiviert. Danach geht's wieder in den Hostmode. > > > > Beim schreiben in den Flash verhält es sich ähnlich, nur daß die Interrupts > > nicht deaktiviert werden. Aber der schreibende Code muß auch hier aus > > dem internen RAM des Controllers ausgeführt werden. > > > > Ach ja, die Daten(0xaaaa, 0x5555, 0xa0a0, 0x8080 etc.), die am Anfang > > der Schreib-und Löschroutinen zum Flash gesendet werden, sind Kommandos, > > die den Flash-Baustein entsprechend veranlassen, z.B. bestimmte Segmente > > zu löschen oder diesen in den Schreibmodus zu versetzen. > > > > Theoretisch sollte es möglich sein, diese Routinen zu nutzen. > > Jedoch kann man Seg3 dann nicht für Daten verwenden, da man immer > > ASM-Code benötigt, um dies durchzuführen. > > Hier wäre eher die Verwendung von Seg7 (obere 64kB des Konstantenspeichers) > > oder Seg2 (nicht benutzte Beriebssystemreserve) besser. > > Allerdings müsste man hier einiges experimentieren und viel Zeit investieren, > > bis man es wirklich schafft. > > > > Einfacher wäre es für ein "paar" Konfigurationsdaten ein externes winziges(Bauform) > > und günstiges EEProm zu benutzen. Diese kosten schließlich nicht die Welt. :-) > > > > MfG André H. > > > > > > > Hallo zusammen, > > > > > > da ich jetzt angefangen habe mich mir der Assembler Programierung > > > zu beschäftigen taucht bei mir die Frage auf, ob man nicht auch > > > Daten im Segment 3 speichern könnte ( das man wegen ein paar > > > Bytes nicht immer gleich noch mal ein Modul braucht). > > > Im disassembled os.hex von Eric Hospel hab ich folgende Stelle gefunden > > > > > > 0x25e4: MOV R4,#0xaaaa > > > 0x25e8: MOV 0xaaaa,R4 writes to prom address 0x5555 because A0 is not used > > > 0x25ec: MOV R4,#0x5555 > > > 0x25f0: MOV 0x5554,R4 > > > 0x25f4: MOV R4,#0xa0a0 > > > 0x25f8: MOV 0xaaaa,R4 > > > 0x25fc: EXTS R12,#1 > > > 0x25fe: MOV [R13],R14 Program word > > > 0x2600: EXTS R12,#1 > > > 0x2602: MOV R4,[R13] Readback the value > > > 0x2604: XOR R4,R14 > > > 0x2606: AND R4,#0x80 if ready? > > > 0x260a: JMPR cc_Z,0x2626 then jump > > > 0x260c: EXTS R12,#1 > > > 0x260e: MOV R4,[R13] Readback the value > > > 0x2610: AND R4,#0x20 if time limit not Exceeded? > > > 0x2614: JMPR cc_Z,0x2600 then jump > > > 0x2616: EXTS R12,#1 > > > 0x2618: MOV R4,[R13] Readback the value > > > 0x261a: XOR R4,R14 > > > 0x261c: AND R4,#0x80 > > > 0x2620: JMPR cc_Z,0x2626 > > > 0x2622: MOV R14,#0x0 return 0 when error > > > 0x2624: JMPR cc_NC,0x262a > > > 0x2626: MOV R14,#0xffff return 0xffff when OK > > > 0x262a: MOV R4,#0xaaaa Activate read mode > > > 0x262e: MOV 0xaaaa,R4 > > > 0x2632: MOV R4,#0x5555 > > > 0x2636: MOV 0x5554,R4 > > > 0x263a: MOV R4,#0xf0f0 > > > 0x263e: MOV 0xaaaa,R4 > > > 0x2642: EXTS R12,#1 > > > 0x2644: MOV R4,[R13] > > > 0x2646: MOV R4,R14 > > > 0x2648: RETS > > > > > > die meiner Meinung für das Schreiben der Daten im Segment 3 zuständig ist. > > > Meine Frage nun ist, kann man mit diesem Programmteil Daten schreiben (Brennen) > > > oder nicht ? > > > > > > mfg Tom > > > > > > > > >