Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Программирование устройства программой из внешней памяти
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Все остальные микроконтроллеры > PIC
ZEbr
Скажите пожалуйста! Можно ли записывать программу написанную на PIC32 не на внутреннюю Flash, а на внешнюю EEPROM подключенную по SPI.
В дальнейшем прошивка записанная на EEPROM может изменятся, с помощью внешней программы по какому нибудь интерфейсу.

Заранее спасибо!
Redguy
И теоретически и практически такое возможно. Причем это выполнимо не только для PIC32, а для микроконтроллеров в целом. Но эта задача не настолько проста, и сколько тут всплывет подводных камней даже предположить сложно.
Я бы пошел следующим путем. Накатал какую-то минимальную программу, которая будет по SPI читать основной код, подгружать его в оперативку или во внутреннюю flash и запускать его на выполнение, при этом возможно использовал бы DMA. Тут возникает много моментов: насколько большой должен быть выполняемый код, будут ли в нем пересечения с обслуживающей программой по ресурсам, как регулярно надо запускать обслуживающую программу, нужно ли на неё постоянно переключаться для какого-либо монитора ситуации (по принципу работы операционки) и т.д.
По сути bootloader на этот вариант похож - по определенным командам/условиям запускается, загружает что надо, запускает загруженное и самоустраняется. Реально у меня до такой ситуации и доходило: максимум - загрузка нового образа рабочей программы на внешнюю Flash, ее контроль на целостность и замена текущей программы на новый образ с последующим запуском и инициирование загрузки новой прошивки по команде полученной через USART.
Василий Иванов
В PIC32 внутри есть Program Flash и Boot Flash. Если поизвращаться с линкером, то в Boot Flash можно освободить достаточно много места для бутлоадера, который будет перекидывать образ прошивки с внешней ЕЕпром во внутреннюю память Program Flash. Это удобно тем, что вся Program Flash только под прошивку и не приходится бояться что кто-то попортит загрузчик. А загрузочную область можно защитить фьюзами от записи резактирования и даже вызовов из прошивки.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.