Чем не устроил заводской загрузчик? Много чем:
1) Нужно чтобы от внешнего кварца работало, а не от внутренней RC-цепочки, как у становлено по умолчанию.
2) Делитель на 8 CKDIV мешал.
3) BODLEVEL не такой.
4) И, наконец, я не хочу, чтобы кто-угодно мог перешить мой МК :).
> Кстати, если не менялись заводские установки FUSES, то старт идёт именно с загрузочной области.
Нет, заводская установка у AT90USB647 соответствует загрузке из Application-области. Вот она какая было до того, как я ее изменила:
Device connected, 90USB647 detected
Fuses
OSCCAL = 91
CKDIV = 0
CKOUT = 1
SUT = 1
CKSEL = E
BLB1 = 3
BLB0 = 3
OCDEN = 1
JTAGEN = 0
WDTON = 1
EESAVE = 1
BOOTSZ = 1
BOOTRST = 1
HWBE = 0
BODLEVEL = 3
Чтобы прочесть фузы, я прошила чип без устатновки фуз, а потом прочла фузы в режиме чтения.
BOOTRST=1, значит эта фуза не прошита - загрузка должна быть по Reset Address = 0x0000.
Мои фузы кое-чем отличаются, но BOOTRST=1 остался:
Device connected, 90USB647 detected
Fuses
OSCCAL = 91
CKDIV = 1
CKOUT = 1
SUT = 3
CKSEL = E
BLB1 = 3
BLB0 = 3
OCDEN = 1
JTAGEN = 0
WDTON = 1
EESAVE = 1
BOOTSZ = 1
BOOTRST = 1
HWBE = 0
BODLEVEL = 2