Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: V-USB Bootloader(Mega32A). Ошибка записи после 0x7000
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
am2008
Доброго времени суток,

Пытаюсь победить проблему с загрузчиком на основе V-USB.

Использую BootloadHID на Mega32A с частотой 16МГц.
Размер загрузчика 1688 байт с стартовым адресом 0x7800.
Фьюзы: LOW:0xef HIGH:0x9b (Размер бутсекции = 2048 байт)

Т.е. размер секции под программу = 0x0000-0x77FF (30720 байт).

Заливаю прошивку размером 29416 байт и получаю ошибку записи после 0x7000.

Нажмите для просмотра прикрепленного файла

Код
$bootloadHID.exe test.hex                                                                                                                                                                                            
Page size   = 128 (0x80)                                                                                                                                                                                            
Device size = 32768 (0x8000); 30720 bytes remaining                                                                                                                                                                  
Uploading 29440 (0x7300) bytes starting at 0 (0x0)                                                                                                                                                                  
0x07000 ... 0x07080Error uploading data block: Communication error with device


Пробовал AVRUSBBoot, USBasploader - тоже самое.

Кто-нибудь может прошить у себя на Меге32 чтонибудь в районе 29кб через любой V-USB загрузчик?
alag57
Цитата(am2008 @ Mar 27 2015, 13:39) *
Пытаюсь победить проблему с загрузчиком на основе V-USB.


Section__________________________Pages__Address
Read-While-Write section (RWW)_____224____$0000 - $37FF
No Read-While-Write section (NRWW)_32_____$3800 - $3FFF

"Видимо" принцип записи страниц ниже 0x7000 отличается от принципа записи
в адреса выше 0x7000.
am2008
Цитата(alag57 @ Mar 27 2015, 15:07) *
Section__________________________Pages__Address
Read-While-Write section (RWW)_____224____$0000 - $37FF
No Read-While-Write section (NRWW)_32_____$3800 - $3FFF

"Видимо" принцип записи страниц ниже 0x7000 отличается от принципа записи
в адреса выше 0x7000.

Вполне может быть. В сети нет никакой информации по этому вопросу, что странно. Я написал письма разработчикам бутлоадеров, но пока ответа нет.
pavel-pervomaysk
Кое что зависит от установленных фузов. Ну и от самого загрузчика, как он работает.
Адресация идет через Z.
Через команды SPM\LMP пишется\читается 64КБ область, тут всего 32КБ, без проблем.

(Размер бутсекции = 2048 байт) вот тут глянь, байт или слов?
Адрес 0x7000 = (0x3800 for AVR)

Flash size > 64KB
Для 128 KB нужно использовать указатель RAMPZ, при этом читать область с адресом более 0xFFFF можно только через команду ELPM.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.