Цитата(Punk @ Sep 16 2010, 13:43)

Приветствую.
Есть Устройство:
LPC2294+внешняя RAM+SD карта+LCD
------------------------------------------
Есть ли возможность в Кейле компилировать заданные функции программы в отдельные бинарники? затем сохраняем эти бинарники, скажем, на SD карте, а уже с нее грузим необходимые (выбранные в меню девайса) бинарники в RAM и запускаем их на выполнение. Что в этой идее реально и выполнимо?
P.S. говоря очень простым языком: Хочу чтобы как на PC, выбрал exe-шник с диска и запустил
Да вроде как не проблема
Допустим на внутреннем флеше находится загрузчик и Ваше меню для запуска программ с SD
В скаттер-файле загрузчика выделяете свой RW_RAM регион или используете сугубо RW_IRAM1(внутреннее ОЗУ)
IROM1 остается на 0x00000000
Для запускаемых с SD приложений переписываете скаттер-файл скажем так:
IROM1 меняете на 0x80000000 (внешнее ОЗУ)
RW_RAM прописываете для региона отличного от RW_RAM загрузчика
А дальше загрузчик грузит выбранный бинарник в область 0x80000000
В Memory Mapping Control Register (MEMMAP - 0xE01FC040) выбирает "User External memory Mode. Interrupt vectors are re-mapped to external memory" (при замаскированном прерывании)
И прыгает по адресу 0x80000000
И еще...
Отладка SD-шной программы тоже не проблема
Нужно только написать свой кейловский драйвер (Keil\ARM\Flash), который в Init конфигурирует внешнее ОЗУ (External Memory Controller - EMC) и в ProgramPage грузит прошивку в 0x80000000
Ну и видимо в SD-шной программе из Startup.s повыкидывать все лишнее