hallo,
wenn ich den internen eeprom (512 byte) vom atmega8 mit einem
parallelport ISP auslese dauert es ca. 0,3 sekunden laut avrdude.
wenn ich nun mit einem bootloader (avr109 kompatibel) den eeprom auslese
dauert das mehr als 4 sekunden bei einer baudrate von 119200!
beim eeprom schreiben das gleiche, der parallelport ISP schreibt
126 byte in 0,1 sekunden.
der bootloader braucht für die selbe anzahl an bytes zu schreiben
ca. 2 sekunden!
die eeprom routine im bootloader macht eingentlich nichts anders als
ein byte nach dem anderen entweder lesen und per uart ausgeben oder
ein byte per uart empfangen und speichern.
die frage die sich mir nun stellt ist warum das schreiben/lesen über den
bootlader so langsam im vergleich zum parallel ISP abläuft?
besten dank
flo
lese routine:
1 | out EEARH, ZH
|
2 | out EEARL, ZL
|
3 | sbi EECR, EERE
|
4 | in zeichen, EEDR
|
5 | rcall send
|
schreibe routine:
1 | rcall rec
|
2 | out EEARH, ZH
|
3 | out EEARL, ZL
|
4 | out EEDR, befehl
|
5 | sbi EECR, EEMWE
|
6 | sbi EECR, EEWE
|
7 |
|
8 | eeprom_wait:
|
9 | sbic EECR, EEWE
|
10 | rjmp eeprom_wait
|