Hallo,
ich möchte meinem Hauptprogramm die größe meines Bootloaders mitteilen.
Wie kann ich diese ermitteln/ablesen?Code:$loadersize=????
Vielen Dank
mfG
Mario
Hallo,
ich möchte meinem Hauptprogramm die größe meines Bootloaders mitteilen.
Wie kann ich diese ermitteln/ablesen?Code:$loadersize=????
Vielen Dank
mfG
Mario
Wenn das die Lösung sein soll...
...will ich mein Problem zurück !!!
Das sollte in der Dokumentation des von dir verwendeten Bootloaders stehen. Alleine schon, weil du ja auch die entsprechenden Fusebits setzen musst, damit der AVR nach einem Reset auch die Ausführung beim Bootloader (der ziemlich am Ende des Flashspeichers abgelegt wird) beginnt und nicht bei der regulären Startadresse 0x00.
mfG
Markus
Tiny ASURO Library: Thread und sf.net Seite
Hallo Markus,
und Danke für deine Antwort.
Ich benutze:
-Atmega88
-den MCS Bascom Bootloader
-lt. Datenblatt Seite 281 sollte der Beginn des Bootbereichs bei 0xC00 liegen. Was auch im Bootloader steht und ich auch beim Software Reset verwende.
Aber, wenn ich die Loadersize auf 1024 stelle, wird der Bootloader teilweise vom Hauptprogramm überschrieben. Bei 2048 erhalte ich die Meldung von Bascom das ich das Speicherlimit überschritten habe.
Aber 2048 deckt sich doch nicht mit dem Datenblatt, oder sehe ich da was falsch?
Vielen Dank
mfG
Mario
Geändert von dj_cyborg (10.05.2014 um 14:13 Uhr)
Wenn das die Lösung sein soll...
...will ich mein Problem zurück !!!
Laut der von dir verlinkten BASCOM-Doku (Direktlink) ist der Bootloader tatsächlich 1024 Words groß. Was die Doku aber nicht verrät: Wird loadersize in Bytes oder in Words angegeben? Wenn dein Programm den Bootloader überschreibt, gehe ich fast davon aus, dass es von sich aus zu viel Platz benötigt um zusammen mit dem Bootloader auf den AVR zu passen. Eigentlich sollte der Bootloader aber verhindern dass er selbst überschrieben wird ...
Wie groß ist dein Programm denn ohne Bootloader?
mfG
Markus
Tiny ASURO Library: Thread und sf.net Seite
Hallo Markus,
und Danke für deine Antwort.
Die Programmgröße kann ich gerade nicht nachschauen, mach ich aber nachher.
In meinem Link in der Bascom-Hilfe steht unten im Code-Bsp.:
zu sehen ist hierbei das beim Mega88 & 168 in der Bemerkung ein Verweis auf das Datenblatt steht. Bei allen anderen Chips steht gleich "1024 words" dahinter. Daher hatte ich die Vermutung das es beim M88 & 168er eine Besonderheit gibt. Aber für mich sagt das Datenblatt auch 1024 aus.Code:... #if Loaderchip = 88 'Mega88 $loader = $c00 'this address you can find in the datasheet 'the loader address is the same as the boot vector address Const Maxwordbit = 5 Config Com1 = Dummy , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol = 0 #endif #if Loaderchip = 168 'Mega168 $loader = $1c00 'this address you can find in the datasheet 'the loader address is the same as the boot vector address Const Maxwordbit = 6 Config Com1 = Dummy , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol = 0 #endif #if Loaderchip = 32 ' Mega32 $loader = $3c00 ' 1024 words Const Maxwordbit = 6 'Z6 is maximum bit ' Config Com1 = Dummy , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol = 0 #endif #if Loaderchip = 8 ' Mega8 $loader = $c00 ' 1024 words Const Maxwordbit = 5 'Z5 is maximum bit ' Config Com1 = Dummy , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol = 0 #endif ...
Die Angabe sollte (lt. anderen Foren) in WORD sein.Laut der von dir verlinkten BASCOM-Doku (Direktlink) ist der Bootloader tatsächlich 1024 Words groß. Was die Doku aber nicht verrät: Wird loadersize in Bytes oder in Words angegeben?...
Meiner Meinung nach ist die Loadersize-Angabe für die Ermittlung der Gesamtgröße und Sicherung des Bootloaderbereichts da.Wenn dein Programm den Bootloader überschreibt, gehe ich fast davon aus, dass es von sich aus zu viel Platz benötigt um zusammen mit dem Bootloader auf den AVR zu passen. Eigentlich sollte der Bootloader aber verhindern dass er selbst überschrieben wird ...
mfG
Mario
Wenn das die Lösung sein soll...
...will ich mein Problem zurück !!!
Lesezeichen