Цитата(Dopler @ Apr 1 2011, 15:06)

В памяти программу размещает на компилятор, а компоновщик. Соответственно и адреса, куда прошивается и откуда выполняется программа задаются в скрипте компоновщика (файле .lds). При программировании через JTAG стираются только те страницы, в которые реально загружается программа. Т.е. если программа написана корректно и лежит в нужных адресах, то она будет загружаться и загрузчик останется целым.
У вас ошибка возникает скорее всего из-за того, что в программу включен файл перехода к приложению trampoline.x, во всяком случае он включен во всех примерах от Atmel. Именно он пытается записаться на место загрузчика. Если через UDF программа загружается и нормально работает, то на сообщение от JTAG о заблокированном сегменте можно наплевать, так как в этом случае он не перешивает только защищенную область загрузчика, а сама программа в незащищенную область должна загружается корректно.
Да я вот сам уже выкинул файл перехода trampoline.x и подправил скрипт компоновщика, всё конечно же работает и шьется без предупреждений, и такой способ гораздо проще предлагаемого Atmel, но зачем тогда весь этот геморрой бы сделан trampoline в своих исходниках?
По поводу того, что можно не обращать внимание на предупреждения от прошивальщика по JTAG, то я тоже так сначала подумал, но программ залитая через JTAG работает не корректно, как-то кусками....вот этот момент мне не понятен....
А предупреждение возникает при записи как раз в ячейку 0x80000000 команды на прыжок на адрес 0x80002000, но сегмент первый то заблокирован как раз, а вот почему дальше не пишется корректно не понятно....