Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: SAM7S256 может сам себе сменить прошивку?
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
YAN
Привет.
Существуют ли функциональные возможности у SAM7S256 поменять свою собственную прошивку?
То есть запрограммили его, запустили и он работает на объекте. И уж очень не хочется выезжать на объект каждый раз для обновления его ПО, если дистанционно можно загрузить новый софт по каналу связи, но как поменять прошивку на эту новую?
goodwin
Название темы вызвало жуткие ассоциации по Азимову - боты взбунтовались smile.gif По теме - очень даже может. Мжно и просто - SAMBA использовать...
YAN
Стоп.
Насколько я понял из описания, SAM-BA это возможность программировать ARM снаружи по UART-у:
обеспечиваем на PA0, PA1, TST высокий уровень, включаем ARM и загружем снаружи по UARTу в него команды для смены прошивки.

А если снаружи никого нету и проц сам скачал для себя новую прошивку (не важно как) и положил её куда-нибудь в ОЗУ?
Edmundo
Цитата(YAN @ Jul 7 2006, 17:45) *
А если снаружи никого нету и проц сам скачал для себя новую прошивку (не важно как) и положил её куда-нибудь в ОЗУ?

Не знаю, как насчет стандартных средств, а собственными силами можно -- сделать отдельно загрузчик, который не перепрошивается и функциональную прошивку, которая пишется в свою секцию flash и на которую прыгает загрузчик. Так часто делаем (не на АРМ, но суть та же). Есть там некоторые моменты, но это реализуемо.
goodwin
Цитата(YAN @ Jul 7 2006, 16:45) *
Стоп.
Насколько я понял из описания, SAM-BA это возможность программировать ARM снаружи по UART-у:
обеспечиваем на PA0, PA1, TST высокий уровень, включаем ARM и загружем снаружи по UARTу в него команды для смены прошивки.

А если снаружи никого нету и проц сам скачал для себя новую прошивку (не важно как) и положил её куда-нибудь в ОЗУ?


Ну я и предложил самое простое, если нет соответствующего опыта...
АРМ только начинаю ковырять, но во всех своих устройствах на MSP и Atmega в последние 3-4 года пользую загрузчики целевого по - и по ethernet, и по последовательному порту, и даже из таблетки DS1996. В SAM7 нет никаких принципиальных ограничений на это дело, мало того, благодаря ремаппингу нет проблем с векторами прерываний (которые например встают в полный рост в MSP).
Надо разместить в первых секторах флэш загрузчик, а целевые программы компилировать для адресов выше него + 0x10xxxx... При сбросе загрузчик или грузит, что требуется, или проверив контрольную сумму целевого ПО, делает ремап и передает управление целевой программе. Точно не разбирался с SAM7, но если в нем нет возможности шить флэш из програмы, выполняющейся во флэш, то можно при перепрограммировании использовать функции, выполняющиеся в RAM.
rezident
Цитата(goodwin @ Jul 7 2006, 21:03) *
Точно не разбирался с SAM7, но если в нем нет возможности шить флэш из програмы, выполняющейся во флэш, то можно при перепрограммировании использовать функции, выполняющиеся в RAM.

У 7-х ARMов самопрограммирование Flash только из RAM возможно. Штатные средства (IAP) так и делают.
YAN
Цитата(rezident @ Jul 7 2006, 19:24) *
У 7-х ARMов самопрограммирование Flash только из RAM возможно. Штатные средства (IAP) так и делают.


Не понял последнюю фразу. Программа, работающая из FLASH может программировать эту FLASH? Или всё таки придётся скопировать и выполнять её в ОЗУ, чтобы с FLASH выполнялась лишь операция записи?
rezident
Цитата(YAN @ Jul 7 2006, 22:10) *
Цитата(rezident @ Jul 7 2006, 19:24) *

У 7-х ARMов самопрограммирование Flash только из RAM возможно. Штатные средства (IAP) так и делают.


Не понял последнюю фразу. Программа, работающая из FLASH может программировать эту FLASH? Или всё таки придётся скопировать и выполнять её в ОЗУ, чтобы с FLASH выполнялась лишь операция записи?

Про SAMы достоверно не знаю, а у LPC используется IAP, которая при записи во Flash использует RAM, куда перегружает резидентную часть программы записи во Flash.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.