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

Sam3s обновление прошивки

Код для обновления прошивки Sam3s пишу используя IAR.

Новую прошивку помещaю в массив памяти flash микроконтроллера. Далее, использую функцию постраничного копирования этого массива в начало flash по адресу 0X00400000 (flash base address). Для функции использую атрибут __ramfunc, который копирует ее код из flash в ram во время выполнения записи. Соответственно перед этим запрещаю все прерывания (например, void __disable irq (void);).

В принципе, проект работает, только когда ему подсовываешь свою же старую прошивку, если новую, измененную, то после выключения-включения питания мк виснет. Может проблема в том, что не все прерывания отключаются? Или в чем то другом..

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


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

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

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

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

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

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

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

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

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

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