реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Удаленный загрузчик ПЛИС, где лучше разместить
Golikov A.
сообщение Mar 12 2014, 15:07
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454



Всем привет, что-то не смог придумать раздела лучше чем этот.

Есть система ARM + FPGA. На ARM есть загрузчик, который позволяет обновить прошивку через езернет. Загрузчик не убиваемый и не обновляемый. Для его использования ARM переводится в специальный режим, где работает только он и обновляет основную программу.

Далее ARM имеет возможность перезаписать флэш с которой грузиться FPGA, и вот внимание вопрос: Где лучше разместить программу перезаписи (обновления) прошивки FPGA?!
Варианты ответа:
1. В основной программе, позволяет модифицировать загрузчик FPGA, в том числе и запретить его в будущем, например.
2. В программе загрузчике ARM, позволяет за 1 раз обновить обе прошивки.

минусы опять же есть у обоих вариантов, основная программа - штатная работа, а для перезаписи FPGA надо ее блокировать и отключать, придется делать какой-то подрежим. В загрузчике ARM - нет возможности что либо поменять в загрузчике FPGA, платы что уже уехали придется либо возвращать либо оставлять без загрузчика.

Поделитесь мыслями, склоните чашу весов в какую - то сторонуsm.gif Спасибо!

Go to the top of the page
 
+Quote Post
aabmail
сообщение Mar 12 2014, 15:25
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 210
Регистрация: 4-06-08
Из: Москва
Пользователь №: 38 056



Я у себя делал так, что из основной программы можно было обновлять прошивку FPGA (заливал .BIN в SPI flash AT45). Причем перепрограммировать можно в основном режиме.
Не вижу тут никаких минусов, кроме того, что при сбое питания можно "запороть" прошивку. В этом случае приходится разбирать прибор и подключаться по JTAG.
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение Mar 12 2014, 15:27
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454



Цитата(aabmail @ Mar 12 2014, 19:25) *
Я у себя делал так, что из основной программы можно было обновлять прошивку FPGA (заливал .BIN в SPI flash AT45). Причем перепрограммировать можно в основном режиме.
Не вижу тут никаких минусов, кроме того, что при сбое питания можно "запороть" прошивку. В этом случае приходится разбирать прибор и подключаться по JTAG.

ну это существенный минус для коммерческого прибора, мне он правда не грозит, АРМ у меня выживет полюбому.
Go to the top of the page
 
+Quote Post
vladec
сообщение Mar 13 2014, 11:02
Сообщение #4


Профессионал
*****

Группа: Свой
Сообщений: 1 167
Регистрация: 3-10-05
Из: Москва
Пользователь №: 9 158



Наши программисты, вообще для обновления фирмваре резервируют половину памяти контроллера. Заливают туда не спеша обновление, затем верифицируют его и активируют. При этом прошивка ПЛИСа является частью прошивки микроконтроллера, который и грузит ее в ПЛИС без использования отдельной загрузочной микросхемы памяти.
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение Mar 13 2014, 12:11
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454



ну то есть у вас это делается из основной программы
Go to the top of the page
 
+Quote Post
ASN
сообщение Mar 13 2014, 12:53
Сообщение #6


Местный
***

Группа: Свой
Сообщений: 459
Регистрация: 15-07-04
Из: g.Penza
Пользователь №: 326



Golikov A.
Если загрузчик не убиваемый и не обновляемый, то может туда и аварийную (минимальную и сжатую) прошивку FPGA положить?
И сделать минимальную возможность (пусть значительно медленнее) загрузки ПО и прошивки.
А работать по следующему алгоритму (как штатный bootloader во многих микросхемах):
1. Стартуем с неубиваемого загрузчика.
2. Проверяем целительность рабочего ПО и рабочей прошивки FPGA.
3. Если проверка прошла, то через некоторое время (чтобы успеть, если рабочая прошивка "роняет" прибор, дать команду на остаться в минимальном режиме) грузим рабочий режим, иначе - аварийную прошивку.
То есть, имеем два режима: минимальный и рабочий (стартует с минимального).
А в рабочем можно и мощные алгоритмы обновления "навернуть".
У нас так и сделано.
Go to the top of the page
 
+Quote Post
seneka
сообщение Mar 13 2014, 12:58
Сообщение #7


Участник
*

Группа: Свой
Сообщений: 74
Регистрация: 11-03-14
Из: Ростов
Пользователь №: 80 888



Мы используем метод, когда прошивки хранятся в теле основной программы процессора.

Сообщение отредактировал seneka - Mar 13 2014, 23:37
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение Mar 13 2014, 14:27
Сообщение #8


Гуру
******

Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454



ну пока программисты думают над архитектурой, схемотехники меняют схемы.
Флэш ПЛИС повесили на SPI которой в боевой прошивке используется по другим ногам. Отсюда либо делать программный SPI, либо однозначно обновления делать не из основного алгоритма.

Так что проблема решилась сама собойsm.gif. Все равно спасибо участвовавшим.

Решение такое:

АРМ с не убиваемой прошивкой, при загрузке проверяет целостность своей боевой прошивки, или желания пользователя что-то изменить. Если никто не хочет и прошивка цела и код безопасности тот, переходит на боевой режим, и разрешает грузить ПЛИС тем что есть.

Если нет, то в режим загрузчика, где будет ждать 2 прошивки для ПЛИС и для себя боевую. Корректность прошивки ПЛИС проверять не буду, только во время обновления, пусть сами следят при смене прошивки что все прошло штатно.
Кирпич из прибора никогда не сделают, благодаря не убиваемой прошивке, а все остальное поправят...

П.С. кто на вскидку знает Spartan 6 проверяет целостность прошивки до загрузки, мне главное чтобы он не загрузился в какой-то конфликтный режим и не пожог все...
Go to the top of the page
 
+Quote Post
vladec
сообщение Mar 14 2014, 03:58
Сообщение #9


Профессионал
*****

Группа: Свой
Сообщений: 1 167
Регистрация: 3-10-05
Из: Москва
Пользователь №: 9 158



По моему, все ПЛИСы во время загрузки верифицируют код, и при обнаружении "битости" сбрасываются
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение Mar 14 2014, 04:35
Сообщение #10


Гуру
******

Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454



это логично, но мало ли)... ну что же и хорошо, тогда если все заработало то все ок, а нет, значит меняй прошивки
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 21:53
Рейтинг@Mail.ru


Страница сгенерированна за 0.01437 секунд с 7
ELECTRONIX ©2004-2016