|
Altera Remote Ststem Update |
|
|
|
Jan 21 2015, 13:59
|
Профессионал
    
Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539

|
Добрый день. В проекте присутствует ядро Remote update, всё управление происходит с помощью Nios II. Есть две конфигурации: factory и application. Factory заливается по адресам 0x0, application - 0xd00000. Включается питание запускается factory конфигурация, которая через Remote Update загружает конфигурацию application. Алгоритм работы для factory следующий: Код rd_data = rsu_controller_rd_reconf_src_condition((void *)RSU_CONTROLLER_BASE); if((rd_data == RECONF_SOURCE_POR) || (rd_data == RECONF_SOURCE_EXTERNAL_RST) || (rd_data == RECONF_SOURCE_LOGIC_TRIGGERED)) { rsu_controller_wr_config_mode((void *)RSU_CONTROLLER_BASE, CONFIG_MODE_APPLICATION); rsu_controller_wr_wdt_timeout((void *)RSU_CONTROLLER_BASE, RSU_WDT_TIMEOUT_VALUE); rsu_controller_write_param((void *)RSU_CONTROLLER_BASE, PARAM_WDT_ENABLE, 1); rsu_controller_write_param((void *)RSU_CONTROLLER_BASE, PARAM_PAGE_SELECT, APPLICATION_PAGE_START_ADDRESS); rsu_controller_reconfig((void *)RSU_CONTROLLER_BASE); } Алгоритм работы для application: Код rd_data = rsu_controller_rd_config_mode((void *)RSU_CONTROLLER_BASE); if(rd_data == CONFIG_MODE_APPLICATION) { rd_data = rsu_controller_read_param((void *)RSU_CONTROLLER_BASE, PARAM_WDT_ENABLE); if(rd_data) { rsu_controller_reset_timer((void *)RSU_CONTROLLER_BASE, 1); // сигнал разрешения сброса wdt, разрешает подачу меандра на вход reset_timer ядра Remote Update } } Для удобства перепрошивки довавлена функция реконфигурации, алгоритм которой: Код #if __REMOTE_SYSTEM_UPDATE_CONFIGURATION_MODE == CONFIG_MODE_FACTORY rsu_controller_wr_config_mode((void *)RSU_CONTROLLER_BASE, CONFIG_MODE_FACTORY); rsu_controller_write_param((void *)RSU_CONTROLLER_BASE, PARAM_WDT_ENABLE, 0); rsu_controller_wr_wdt_timeout((void *)RSU_CONTROLLER_BASE, 0); rsu_controller_write_param((void *)RSU_CONTROLLER_BASE, PARAM_PAGE_SELECT, FACTORY_PAGE_START_ADDRESS); rsu_controller_reconfig((void *)RSU_CONTROLLER_BASE); #elif __REMOTE_SYSTEM_UPDATE_CONFIGURATION_MODE == CONFIG_MODE_APPLICATION rsu_controller_reconfig((void *)RSU_CONTROLLER_BASE); #endif Вопросы в следующем: 1) Заливаем factory, application, переключаем питание - всё работает, даём команду Reconfig - всё перезапускается. 2) Залит только factory. По включению питания запустилось, дали команду Reconfig - всё ок. 3) Проблемная ситуация 1: Находимся в режиме application и перезаливаем прошивку для application. Что-то легло - прошивка залилась неправильно/частично, даём команду Reconfig и FPGA уже не стартует (а должна была остаться конфигурация factory). Сбрасываем питание, запускается factory и Reconfig для него уже работает. 4) Проблемная ситуация 2: Включаем питание. Для application залита какая-то ерунда - загружается конфигурация factory. Factory перезаливает прошивку для application, делаем Reconfig и всё опять дохнет (а должна была стартануть конфигурация application). По сбросу питания опять всё запускается, переходит в режим application и нормально работает.
|
|
|
|
|
 |
Сообщений в этой теме
doom13 Altera Remote Ststem Update Jan 21 2015, 13:59 vadimuzzz посмотрел у себя в коде, все аналогично. возникли ... Jan 23 2015, 04:08 doom13 Цитата(vadimuzzz @ Jan 23 2015, 07:08) по... Jan 23 2015, 06:38  vadimuzzz Цитата(doom13 @ Jan 23 2015, 12:38) Предп... Jan 23 2015, 06:56 doom13 С Ваших слов возникло предположение по поводу необ... Jan 23 2015, 07:07 vadimuzzz ЦитатаUPP:
Но как тогда работает пункт №2 (залит f... Jan 23 2015, 08:06  doom13 Цитата(vadimuzzz @ Jan 23 2015, 11:06) я ... Jan 23 2015, 08:30   vadimuzzz Цитата(doom13 @ Jan 23 2015, 14:30) Ещё н... Jan 23 2015, 09:00    doom13 Цитата(vadimuzzz @ Jan 23 2015, 12:00) ес... Jan 23 2015, 09:22     vadimuzzz Цитата(doom13 @ Jan 23 2015, 15:22) nSTAT... Jan 23 2015, 10:36 doom13 Нашёл ещё одну глючную ситуацию, работает applicat... Jan 23 2015, 10:51 vadimuzzz Цитата(doom13 @ Jan 23 2015, 16:51) Очень... Jan 23 2015, 11:35  doom13 Цитата(vadimuzzz @ Jan 23 2015, 14:35) а ... Jan 23 2015, 11:40 Golikov A. может сократить пути и уменьшить число вариантов з... Jan 23 2015, 12:06 doom13 Цитата(Golikov A. @ Jan 23 2015, 15:06) м... Jan 23 2015, 12:10 Golikov A. просто можно грузиться всегда через фактори и она ... Jan 23 2015, 17:47 doom13 Цитата(Golikov A. @ Jan 23 2015, 20:47) п... Jan 23 2015, 19:22 Golikov A. а вочьдогом перегрузить? Jan 23 2015, 21:49 doom13 Цитата(Golikov A. @ Jan 24 2015, 00:49) а... Jan 24 2015, 12:13 doom13 Почитал ещё параметры для Remote Update, после ста... Jan 26 2015, 12:59 doom13 Как и предполагалось, есть какая-то ерунда при исп... Jan 26 2015, 15:24       doom13 Цитата(vadimuzzz @ Jan 28 2015, 11:41) а ... Jan 28 2015, 09:07 Golikov A. а флешка не переконфигурируется на чтение по 1 или... Jan 28 2015, 09:08 doom13 Цитата(Golikov A. @ Jan 28 2015, 12:08) а... Jan 28 2015, 09:26  vadimuzzz Цитата(doom13 @ Jan 28 2015, 15:26) Данна... Jan 28 2015, 09:57   doom13 Цитата(vadimuzzz @ Jan 28 2015, 12:57) я ... Jan 28 2015, 10:05    vadimuzzz Цитата(doom13 @ Jan 28 2015, 16:05) Или э... Jan 28 2015, 11:01     doom13 Цитата(vadimuzzz @ Jan 28 2015, 14:01) не... Jan 28 2015, 11:28 Golikov A. ну пока прошивку не считаешь, режим же не поймешь.... Jan 28 2015, 10:27 doom13 Default-mode для EPCQ256 (N25Q256) - это, как пони... Jan 28 2015, 13:04 vadimuzzz Цитата(doom13 @ Jan 28 2015, 19:04) EPCS/... Jan 28 2015, 14:10  doom13 Цитата(vadimuzzz @ Jan 28 2015, 17:10) до... Jan 28 2015, 15:12 doom13 Перекомпилил с настройкой Active Serial x1 - не за... Jan 29 2015, 06:43
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|