Раньше в разработках использовали АРМ7 от Atmel-а, а именно SAM7x. Теперь подумываем о переходе на АРМ9, а именно на SAM9260 или SAM9XE. При этом хотелосб бы, чтобы была возможность устанвки по выбору или SAM9260 или SAM9XE (т.к. последний еще не запущен в производство). Все разработки программного обеспечения предполагается вести в IAR.
Так вот привожу список вопросов, которые у меня возникли:
1) у SAM9260 есть возможность загрузки программы из внешней flash-SPI памяти, но часть моей программы д.б. во внутр. ОЗУ, а часть во внеш. Значит вначале должна загрузится часть программы, которая заливается во внутр. ОЗУ, затем эта программа д.проинициализировать внешную память и загрузить оставшую часть программы из внешней flash-SPI памяти как во внутр. ОЗУ, так и во внеш.ОЗУ память.
Это все я должен реализовывать сам или IAR это поддерживает (т.е. есть готовый загрузчик, который мне надо только подправить, чтобы правильно проинициализироватьвнешнюю память)?
Для примера: для процессоров ADSP21371/5, у которых есть возможность выполнения программ из внеш.ОЗУ, я описывал проект свой, в котором по сегментам указывал компилятору, где должен располагаться код и данные, а затем к своему проекту я выбирал готовый загрузчик от AD. Т.о. при подачи питания вначале загружается этот загрузчик, а затем он загружает мою прошивку как во внутр., так и во внеш. память
2) может ли выполняться программный код у SAM9XE во внешней памяти?
3) есть ли возможность у SAM9XE выполнить аналогичные действия как в 1-м пункте, т.е. представить внутр.ОЗУ как внеш.память.
Это я должен реализовывать сам или у IAR или Atmel для этого готовые программные решения?
4) есть ли возможность у SAM9XE разместить часть кода как во внутр.ОЗУ, так и во внеш.ОЗУ - отличие от п.3 состоит в том, что программа может также выполняться из внутр.flash памяти - т.е. это что-то похоже на размещение функции директивой __ramfunc__, которая есть у IAR - но вот только как сказать IAR, что функция д.б. размещена во внеш.ОЗУ - я так понимаю все это делается указанием сегмента, в котором д.б. размещена функция + использованием директивы __ramfunc__, тогда при инициализации программа загрузит ее во внеш. ОЗУ - как это было для SAM7x
5) правильно ли я понял, что для SAM9260 SAMBA м.обновить программу, которая должна быть размещена во внеш.SPI памяти?