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 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 = <asm>JMPA 0F620h</asm>. > 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 <asm>BSET R15.15</asm>. 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.