Исходя из мира микроконтроллеров, я создаю загрузчики, чтобы клиенты могли обновить прошивку.
Как это сделать с FPGA и CPLD.
Для ПЛИС:
Поскольку прошивка хранится во внешней флэш-памяти, изображение ПЛИС записывается на внешнюю флэш-память и затем перезагружается? Но что произойдет, если новый файл поврежден или соединение будет удалено во время обновления? Есть ли способ сделать резервную копию по умолчанию? В микроконтроллерах загрузчик никогда не перезаписывается, поэтому приложение может испортиться в любое время, и загрузчик все равно будет работать.
Существует ли отдельная выделенная часть энергонезависимой памяти, которая не переконфигурируется при включении питания, в которую вы можете загрузить загрузчик?
Для CPLD:
Так как изображение хранится внутри, есть ли у них способ настроить себя? Как сделать загрузчик для CPLD?
Другие мысли:
Может быть, вы можете установить какой-либо чип FTDI с GPIO, которым вы можете управлять из приложения для ПК через USB. Таким образом, вы можете побить SPI, чтобы загрузить новый образ на внешней флэш-памяти? Кто-нибудь делает это? Таким образом, изображение FPGA может быть повреждено или отсутствует, и все равно сможет загрузить новое изображение.
Обратите внимание, что я предполагаю, что FPGA или CPLD одни на плате. Это означает, что на плате нет MCU, чтобы делать все это.
Любое понимание того, как отрасль достигает этой задачи, было бы замечательно.