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 | ||
| ||
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) |