Перейти к содержанию
    

Программирование устройства программой из внешней памяти

Скажите пожалуйста! Можно ли записывать программу написанную на PIC32 не на внутреннюю Flash, а на внешнюю EEPROM подключенную по SPI.

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

 

Заранее спасибо!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

И теоретически и практически такое возможно. Причем это выполнимо не только для PIC32, а для микроконтроллеров в целом. Но эта задача не настолько проста, и сколько тут всплывет подводных камней даже предположить сложно.

Я бы пошел следующим путем. Накатал какую-то минимальную программу, которая будет по SPI читать основной код, подгружать его в оперативку или во внутреннюю flash и запускать его на выполнение, при этом возможно использовал бы DMA. Тут возникает много моментов: насколько большой должен быть выполняемый код, будут ли в нем пересечения с обслуживающей программой по ресурсам, как регулярно надо запускать обслуживающую программу, нужно ли на неё постоянно переключаться для какого-либо монитора ситуации (по принципу работы операционки) и т.д.

По сути bootloader на этот вариант похож - по определенным командам/условиям запускается, загружает что надо, запускает загруженное и самоустраняется. Реально у меня до такой ситуации и доходило: максимум - загрузка нового образа рабочей программы на внешнюю Flash, ее контроль на целостность и замена текущей программы на новый образ с последующим запуском и инициирование загрузки новой прошивки по команде полученной через USART.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В PIC32 внутри есть Program Flash и Boot Flash. Если поизвращаться с линкером, то в Boot Flash можно освободить достаточно много места для бутлоадера, который будет перекидывать образ прошивки с внешней ЕЕпром во внутреннюю память Program Flash. Это удобно тем, что вся Program Flash только под прошивку и не приходится бояться что кто-то попортит загрузчик. А загрузочную область можно защитить фьюзами от записи резактирования и даже вызовов из прошивки.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...