Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: приручить Prefetch Abort
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
_Pasha
Подскажите, реально ли использовать Prefetch Abort для организации загрузки оверлеев? Семейство AT91SAM7s. Спасибо.
aaarrr
Наверное, речь все же не о загрузке оверлеев, а о создании виртуальной памяти.
Реально, но будет чудовищно медленно. Разве что в академических целях можно сделать.
SasaVitebsk
Можно и для оверлеев. Если точки входа по фиксированным адресам, за пределами размещать. При определённой структуре п/п (если число обращений невелико, или потерянное время невелико по сравнению со временем обработки процедуры) может даже и возможно использование. smile.gif

Где-то встречал аналогичную обработку внешних устройств. То есть идёт обращение к ВУ. Если оно подключено - нет проблем. Если нет - возникает прерывание и выполняется программная эмуляция данного устройства.
aaarrr
Цитата(SasaVitebsk @ Sep 30 2009, 12:40) *
Можно и для оверлеев. Если точки входа по фиксированным адресам, за пределами размещать.

Можно, но в таком случае проще и логичнее использовать SWI.
_Pasha
В общем, применение такое видится.
Предположим, есть девайс, который не особо много считает, но нуждается в калибровке, желательно, автоматической. При этом код калибровки де-факто мертвый, и вся софтина не умещается во флеш. Но есть USB - подключили к компу, в меню девайса включили режим калибровки, на стороне компа типопрограмматор. Код скомпилен так, что адреса функций (высокоуровневых, заметьте) приводят при их вызове к PABT - выделяется оверлейный буфер, посылается запрос в комп - загрузилось нужное ПО. При этом, все что работает в .fastrun, ессно, никто не трогает. Закончили работу - от громоздкого софта не осталось ничего.
Красиво?
aaarrr
Цитата(_Pasha @ Sep 30 2009, 14:27) *
Красиво?

Нет, через SWI проще и красивее:
Код
__swi(1) int func(int, int);

int main(void)
{
    ...
    x = func(1, 2);
    ...
}

Суть та же, зато никаких извращений с подложными адресами и т.п.
SasaVitebsk
Да, мне тоже кажется что это немного притянуто за уши. Если изначально известно, что данного кода нет, то зачем Prefetch Abort?

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