|
remote update для NIOS, найти решение |
|
|
|
May 29 2012, 15:49
|
Частый гость
 
Группа: Участник
Сообщений: 149
Регистрация: 17-05-07
Пользователь №: 27 787

|
Есть Циклон3 с Ниосом, грузится из EPCS. Необходимо сделать удаленную перепрошивку. Сделал загрузчик (т.е. factory boot image по альтеровской терминологии), он лежит по начальному адресу EPCS, при загрузке определяет наличие связи с программатором, если есть, грузит новую прошивку в EPCS по определенному смещению и реконфигурится, если нет - просто реконфигурируется старой прошивкой. В качестве тестовой прошивки сделал проект, который имеет проинициализированную внутреннюю onchip_ram и с нее же грузится. Прошивка в одном файле *.rbf, все грузится, все работает. Но разработчик рабочего ПО не хочет делать проект с проинициализированной внутренней памятью. У него проект грузится из EPCS, и не во внутреннюю память, а во внешнюю SRAM. Насколько я понимаю, бутлоадер epcs_flash_controller'а способен работать только с единственным образом во флешке, и заставить штатный бутлоадер найти образ по смещению не получится? Есть какие-то еще варианты в данной ситуации, кроме переписывания бутлоадера (делать это не очень хочется и некогда)?
З.Ы. Как вариант я пересобрал рабочее ПО для загрузки из внутренней RAM, оставив в ней только .text, остальные секции вынес во внешнюю RAM (иначе не помещается). Но этот путь оказался не таким уж простым, потому что одна версия ПО, собранная таким образом, работает, а другая - нет. Непонятно почему, при сборке ошибок не было во обоих случаях. Разработчик утвержает, что версии принципиально ничем не отличаются.
|
|
|
|
|
 |
Ответов
|
May 29 2012, 23:27
|
Знающий
   
Группа: Свой
Сообщений: 540
Регистрация: 16-08-07
Из: Владивосток
Пользователь №: 29 831

|
[quote name='Атмег' post='1063628' date='May 30 2012, 01:49']Есть Циклон3 с Ниосом, грузится из EPCS. Необходимо сделать удаленную перепрошивку. Сделал загрузчик (т.е. factory boot image по альтеровской терминологии), он лежит по начальному адресу EPCS, при загрузке определяет наличие связи с программатором, если есть, грузит новую прошивку в EPCS по определенному смещению и реконфигурится, если нет - просто реконфигурируется старой прошивкой. В качестве тестовой прошивки сделал проект, который имеет проинициализированную внутреннюю onchip_ram и с нее же грузится. Прошивка в одном файле *.rbf, все грузится, все работает. Но разработчик рабочего ПО не хочет делать проект с проинициализированной внутренней памятью. У него проект грузится из EPCS, и не во внутреннюю память, а во внешнюю SRAM. Насколько я понимаю, бутлоадер epcs_flash_controller'а способен работать только с единственным образом во флешке, и заставить штатный бутлоадер найти образ по смещению не получится? Есть какие-то еще варианты в данной ситуации, кроме переписывания бутлоадера (делать это не очень хочется и некогда)?
AN458 Alternative Nios II Boot читали, наверно? Тот код загрузчика Вам не подходит? А писать в EPCS не обязательно из загрузчика, можно и из основного ПО.
|
|
|
|
|
May 31 2012, 05:54
|
Частый гость
 
Группа: Участник
Сообщений: 149
Регистрация: 17-05-07
Пользователь №: 27 787

|
Цитата AN458 Alternative Nios II Boot читали, наверно? Тот код загрузчика Вам не подходит? А писать в EPCS не обязательно из загрузчика, можно и из основного ПО. Да, не важно откуда писать, мне сейчас нужно просто заставить загрузчик грузиться по смещению. Пытаюсь загрузчик epcs_controller'а скомпилить и подсунуть при сборке sof'а, но пока не получается... Вы, насколько я понял, делали свой загрузчик, толькл у Вас cfi, а мне надо под epcs_controller..
|
|
|
|
|
May 31 2012, 06:01
|
Знающий
   
Группа: Свой
Сообщений: 540
Регистрация: 16-08-07
Из: Владивосток
Пользователь №: 29 831

|
Цитата(Атмег @ May 31 2012, 15:54)  Да, не важно откуда писать, мне сейчас нужно просто заставить загрузчик грузиться по смещению. Пытаюсь загрузчик epcs_controller'а скомпилить и подсунуть при сборке sof'а, но пока не получается... Вы, насколько я понял, делали свой загрузчик, толькл у Вас cfi, а мне надо под epcs_controller.. Ну делал это громко сказано  . Я просто добавил кое-что в стандартный. Но не важно. Так же не важно, на сколько знаю, и вид памяти. При компиляции программы загрузчика меняются только несколько функций. Ну и откуда начинать считывание. С EPCS это посложнее, чем в CFI. А что именно у Вас не получается? HEX-файл сгенерировали? UPD. кстати о sof. А Вы саму конфигурацию в EPCS заливаете или только конфигурируете по jtag? Там дело в том, что с изменением размера конфигурации меняется и начальный адрес, с которого ложится тело программы. с этого адреса загрузчик начинает копирование
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|