Цитата(Jhohn @ Sep 17 2010, 10:01)

Мне не понятно следующее (выставив fuses как описано ниже прерывания стали проходить нормально) :
Fuses:
"boot Flash size=512 words start address=$7F00" адрес в линкере (бут должен начинаться с) $FC00 = 2*$7E00
"boot Flash size=1024 words start address=$7E00" адрес в линкере (бут должен начинаться с) $F800 = 2*$7С00
"boot Flash size=2048 words start address=$7C00" адрес в линкере (бут должен начинаться с) $F000 = 2*$7800
"boot Flash size=4096 words start address=$7800"
AVRStudio 4.18 build 700
IAR C/C++ Compiler for AVR 5.50.0 (5.50.0.50277)
После решения более насущных проблем в другом проекте, взявшись с новыми силами, решил-таки в чем был косяк.
Посылка: вышеописанная цитата не укладывается в логику - значит есть ошибка.
Решение: сравнил биты размера (BOOTSZ1, BOOTSZ0) как их отображает (расшифровывает) AvrStudio, c тем как расшифровывает datasheet T90usb647.pdf и
прозрел разницу:
AvrStudio: [BOOTSZ1, BOOTSZ0] - [1, 1] - "boot Flash size=512 words start address=$7
F00"
datasheet: [BOOTSZ1, BOOTSZ0] - [1, 1] - "Boot Size = 512", "Boot Reset Address (Start Boot Loader Section) = 0x7
E00"
и т.д.
AVRStudio 4.18 build 700
AVRStudio 4.18 build 716
В общем, размер указывается правильно (это видно выше: boot Flash size=512) от него и нужно отталкиваться:
Размер_лоадера = 512 words = 1024 byte
Вся_флеш = 65536 byte
Стартовый_адрес_лоадера = Вся_флеш - Размер_лоадера = 65536 - 1024 = 64512 byte = 0xFC00 = 2 * 0x7
E00
Сообщение отредактировал Jhohn - Oct 4 2010, 09:43