Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - FAQ - Zum CC1-Forum - Zum CC-Pro-Forum

Re: Flashspeicher löschen Kategorie: Progr. Assembler, TaskingTools, OS (von André H. - 21.09.2004 18:44)
Als Antwort auf Re: Flashspeicher löschen von Thomas - 20.09.2004 19:13
Ich nutze:
C-Control II Unit, C164CI-ControllerBoard, CC2-Application-Board, CC2-StarterBoard, CC2-ReglerBoard, OSOPT_V2, OSOPT V3.0
Hallo Thomas,
> > Das Laden der ersten 32Byte, der Startup-Code, und das Laden des restlichen Bootloaders
> > erfolgt in einem Schritt und ist eben die boot.hex .
>
> "In einem Schritt" bedeutet hierbei aber nur, dass du sie in einem Stück sendest. Empfangen tut
> die CC2 dann aber wohl doch erst 32-Byte und dann einen 2. Teil von definierter Grö�e, nämlich
> in diese Fall genau die restlichen Bytes des Boot.hex.

Das macht aber keinen Unterschied. ;-)
In den ersten 32 Byte befindet sich "nur" der Bootloader, welcher den eigentlichen Bootloader
ab Addr. 0xF620 schreibt und dann aufruft.
Das sieht man sehr schön an den letzten 4 Byte: EA0020F6 = JMPA 0F620h.
Die gesamte boot.hex mu� hier immer in einem Stück gesendet werden.
Eine Pause oder auf ein Ereignis zu warten, welches es nicht gibt, würde keinen Sinn machen. ;-)

> Mich interessiert nun halt, an welcher Stelle er das Segment 0 löscht, da der Code ja selbst in
> Segment 0 liegt und sich ja nicht quasi selbst löschen kann.

Ã?hh. Softwaretechnisch gesehen wird der Boot-Loader in Segment 0 geladen,
hardwaretechnisch jedoch nicht. ;-)
Der Bootloader wird komplett in das interne SRAM geladen, welches sich eben hardwaretechnisch
nicht in Segment 0 des Flash befindet.
Der C164CI überlagert lediglich die oberen 8k mit dem internen RAM.
Somit kann auf den Flash in Segment 0 nur auf die erstenb 56kByte zugegriffen werden.
Wenn (Flash-)Segment 0 nun gelöscht wird, hat dies keinerlei Auswirkungen auf den internen RAM
des C164CI. Darum kann sich der Bootloader nicht selbst löschen.

Und Segment 0 wird gelöscht sobald der Bootloader fertig übertragen und gestartet wurde.
Darum muÃ? man auch eine Zeit warten, bis man mit dem Ã?bertragen vom OS beginnen kann.
Man mu� sich "selbst" nicht um das Löschen kümmern. Man könnte das auch garnicht. ;-)


> habe eben mal probiert die boot.hex mit dem Cross View Debugger zu disassemblieren (habe noch keinen
> InBrain Debugger ;-) ). Leider bekomme ich dabei kein verwertbares Ergebnis.
> Er gibt nur "Müll" zurück, d.h. an jeder Adresse steht BSET    R15.15. Was auch immer das
> heiÃ?en mag. Liegt das an den Einstellungen in Cross View oder woran kann das liegen?
> Habe mit den gleichen Einstellungen das os.hex geladen und das funktioniert einwandfrei (auch wenn ich noch
> nicht herausgefunden habe, wie ich den gesamten disassemblierten Code aus Cross View exportiere...:-( )

Jetzt weiÃ?t Du, warum ich selbst angefangen habe, einen Disassembler zu schreiben. ;-)

Aber, wie gesagt.
Du mu�t eigentlich nicht genau wissen, wie der Bootloader funzt, au�er Du möchtest
ihn modifizieren. ;-)

MfG André H.



Antworten bitte nur ins Forum!
Fragen per EMail auf Forum-Postings werden nicht beantwortet!

Das macht meine Heizung gerade


    Antwort schreiben


Antworten:

Re: Flashspeicher löschen (von André H. - 21.09.2004 19:27)
    Re: Flashspeicher löschen (von Gordon Klimm - 22.09.2004 13:13)
        Re: Flashspeicher löschen (von Thomas - 23.09.2004 16:32)
            Re: Flashspeicher löschen (von André H. - 23.09.2004 19:02)
                Re: Flashspeicher löschen (von Thomas - 25.09.2004 15:25)
                    Re: Flashspeicher löschen (von André H. - 26.09.2004 9:29)