|
Есть такая задача: необходимо иметь возможность перезагрузки рабочей программы микропроцессора, при этом текущая программа не должна прерывать работу. Т.е. видится такой вариант: микроконтроллер должен работать от внешней флеш памяти программ. Внешняя флеш разбита на пополам (т.е. работаем от одной половины, другую шьем). При этом хорошо бы иметь еще небольшую внутреннюю память программ - с нее запускаемся, тестируемся, проверяем целостность внешней памяти программ и запускаемся с требуемой половины внешней ПЗУ. Если с внешней ПЗУ проблемы - работаем от внутренней только в режиме ожидания закачки рабочей программы во внешнюю.
Нечто похожее реализовывали на ADSP-218x: там внешняя флеш была разбита на 3 части. Стартовали с загрузочной страницы, программа которой затем перезагружала рабочую программу с нужной страницы. Но, во-первых, бывали сбои, когда портилась и загрузочная страница (так как все в одном адресном пространстве); во-вторых, на "чистой" плате было очень трудно прошивать память (пришлось написать программу, запукаемую на эмуляторе и прошивающую внешнюю флеш), в-третьих, сейчас такое нужно для микроконтроллера 8-16 бит.
E-mail: info@telesys.ru