Цитата
Исходника серверной программы у меня нет, поэтому я не знаю как организовать поступление данных из внешней флэш
"На городі бузина, а в Києві дядько".
Как вообще связана серверная программа с внешней флеш? Внешняя флеш находится максимум в 10-ти сантиметрах от Вашего контроллера и непосредственно связана с ним (а не с программой на сервере). Поэтому Вы, как разработчик, должны сами обеспечить связь с этой флешью. Или может наши понятия о "внешней флэш" не совпадают?
Цитата
МК выходит на связь с сервером из основной программы, затем получает страницу памяти, стирает область памяти и заливает новую информацию, при этом отправляется запрос на получение следующей страницы памяти.
Ну вот и "стирайте область памяти и заливайте новую информацию", только не во флешь контроллера, а во внешнюю флешь. А как получите все данные и проверите их целостность, тогда уже переписывайте из этой внешней флэши во внутреннюю флешь контроллера.
Прочитать о самопрограммировании подробно и с примерами можно на сайте атмела,раздел
Application notes. Искать по словам "self-programming","boot" Плюс раздел Boot Loader Support из даташита Вашего МК.