|
EVK1100 подключение по USB, где взять дрова. |
|
|
|
Feb 12 2009, 16:01
|
Участник

Группа: Новичок
Сообщений: 52
Регистрация: 5-12-08
Пользователь №: 42 221

|
Maybe the board did not program any usb firmware.
|
|
|
|
|
Mar 31 2011, 12:56
|
Частый гость
 
Группа: Свой
Сообщений: 157
Регистрация: 7-10-07
Из: Санкт-Петербург
Пользователь №: 31 137

|
Цитата(Зайцев Иван @ Jan 23 2009, 10:50)  Задай в опция компилятора адреса 0х80002000 1. В Меню File>Import выбираешь General>File system, давишь Next 2. В строке From Directory добавляй путь \SoftwareFramework\SERVICES\USB\CLASS\DFU\EXAMPLES\ISP 3. выделяешь файлы conf_isp.h и BOOT\trampoline.S 4. Tool setting -> AVR32/GNU Assembler avr32-as замени ша avr32-gcc 5. В поле Assembler Flags добавь -x assembler-witch-cpp-c 6. В Include Patch - ..\UTILS , ..\UTILS\PREPROCESSOR 7. переходи в AVR32/GNU C Linker , выбираешь miscellaneous и вс троке Linker Flags пишешь -Wl,-e,_trampoline Сделал все также, прошивка не затирает бутлоадер, только не понял где нужно задавать в опциях компилятора адрес 0x80002000??? теперь не могу прошить контроллер через Dragon или ICE mkII - пишет, что сегменты флеш заблокированы, что и логично, теперь шьется только через UDF. Как можно теперь заставить шить флеш через JTAG, но чтобы бутлоадер остался? Может как раз загвоздка в адресе?
--------------------
Если работает через раз - значит не работает!
|
|
|
|
|
Apr 1 2011, 11:06
|
Местный
  
Группа: Свой
Сообщений: 437
Регистрация: 23-04-05
Из: Таганрог
Пользователь №: 4 425

|
Цитата(Maximm @ Mar 31 2011, 15:56)  Сделал все также, прошивка не затирает бутлоадер, только не понял где нужно задавать в опциях компилятора адрес 0x80002000??? теперь не могу прошить контроллер через Dragon или ICE mkII - пишет, что сегменты флеш заблокированы, что и логично, теперь шьется только через UDF.
Как можно теперь заставить шить флеш через JTAG, но чтобы бутлоадер остался? Может как раз загвоздка в адресе? В памяти программу размещает на компилятор, а компоновщик. Соответственно и адреса, куда прошивается и откуда выполняется программа задаются в скрипте компоновщика (файле .lds). При программировании через JTAG стираются только те страницы, в которые реально загружается программа. Т.е. если программа написана корректно и лежит в нужных адресах, то она будет загружаться и загрузчик останется целым. У вас ошибка возникает скорее всего из-за того, что в программу включен файл перехода к приложению trampoline.x, во всяком случае он включен во всех примерах от Atmel. Именно он пытается записаться на место загрузчика. Если через UDF программа загружается и нормально работает, то на сообщение от JTAG о заблокированном сегменте можно наплевать, так как в этом случае он не перешивает только защищенную область загрузчика, а сама программа в незащищенную область должна загружается корректно.
|
|
|
|
|
Apr 1 2011, 13:54
|
Частый гость
 
Группа: Свой
Сообщений: 157
Регистрация: 7-10-07
Из: Санкт-Петербург
Пользователь №: 31 137

|
Цитата(Dopler @ Apr 1 2011, 15:06)  В памяти программу размещает на компилятор, а компоновщик. Соответственно и адреса, куда прошивается и откуда выполняется программа задаются в скрипте компоновщика (файле .lds). При программировании через JTAG стираются только те страницы, в которые реально загружается программа. Т.е. если программа написана корректно и лежит в нужных адресах, то она будет загружаться и загрузчик останется целым.
У вас ошибка возникает скорее всего из-за того, что в программу включен файл перехода к приложению trampoline.x, во всяком случае он включен во всех примерах от Atmel. Именно он пытается записаться на место загрузчика. Если через UDF программа загружается и нормально работает, то на сообщение от JTAG о заблокированном сегменте можно наплевать, так как в этом случае он не перешивает только защищенную область загрузчика, а сама программа в незащищенную область должна загружается корректно. Да я вот сам уже выкинул файл перехода trampoline.x и подправил скрипт компоновщика, всё конечно же работает и шьется без предупреждений, и такой способ гораздо проще предлагаемого Atmel, но зачем тогда весь этот геморрой бы сделан trampoline в своих исходниках? По поводу того, что можно не обращать внимание на предупреждения от прошивальщика по JTAG, то я тоже так сначала подумал, но программ залитая через JTAG работает не корректно, как-то кусками....вот этот момент мне не понятен.... А предупреждение возникает при записи как раз в ячейку 0x80000000 команды на прыжок на адрес 0x80002000, но сегмент первый то заблокирован как раз, а вот почему дальше не пишется корректно не понятно....
--------------------
Если работает через раз - значит не работает!
|
|
|
|
|
Apr 2 2011, 11:17
|
Местный
  
Группа: Свой
Сообщений: 437
Регистрация: 23-04-05
Из: Таганрог
Пользователь №: 4 425

|
Цитата(Maximm @ Apr 1 2011, 16:54)  Да я вот сам уже выкинул файл перехода trampoline.x и подправил скрипт компоновщика, всё конечно же работает и шьется без предупреждений, и такой способ гораздо проще предлагаемого Atmel, но зачем тогда весь этот геморрой бы сделан trampoline в своих исходниках?
По поводу того, что можно не обращать внимание на предупреждения от прошивальщика по JTAG, то я тоже так сначала подумал, но программ залитая через JTAG работает не корректно, как-то кусками....вот этот момент мне не понятен....
А предупреждение возникает при записи как раз в ячейку 0x80000000 команды на прыжок на адрес 0x80002000, но сегмент первый то заблокирован как раз, а вот почему дальше не пишется корректно не понятно.... Думаю, что Atmel сделал так для универсальности - чтобы сохранить возможность загрузки проекта и через загрузчик и через JTAG (который стоит дорого). При этом, если в проект включен trampoline.x, то проект будет работать корректно и в том кристалле, где загрузчик стерт. По поводу прошивки через JTAG, ошибка должна выскакивать только на адрес 0x80000000, все остальное должно прошиваться нормально и работать корректно, во всяком случае у меня писалось. Зачем вообще вам нужен этот загрузчик? Сотрите его, при необходимости он легко восстанавливается.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|