реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> приручить Prefetch Abort, для АТ91sam7
_Pasha
сообщение Sep 29 2009, 06:41
Сообщение #1


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



Подскажите, реально ли использовать Prefetch Abort для организации загрузки оверлеев? Семейство AT91SAM7s. Спасибо.
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Sep 29 2009, 10:13
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Наверное, речь все же не о загрузке оверлеев, а о создании виртуальной памяти.
Реально, но будет чудовищно медленно. Разве что в академических целях можно сделать.
Go to the top of the page
 
+Quote Post
SasaVitebsk
сообщение Sep 30 2009, 08:40
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521



Можно и для оверлеев. Если точки входа по фиксированным адресам, за пределами размещать. При определённой структуре п/п (если число обращений невелико, или потерянное время невелико по сравнению со временем обработки процедуры) может даже и возможно использование. smile.gif

Где-то встречал аналогичную обработку внешних устройств. То есть идёт обращение к ВУ. Если оно подключено - нет проблем. Если нет - возникает прерывание и выполняется программная эмуляция данного устройства.
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Sep 30 2009, 09:53
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(SasaVitebsk @ Sep 30 2009, 12:40) *
Можно и для оверлеев. Если точки входа по фиксированным адресам, за пределами размещать.

Можно, но в таком случае проще и логичнее использовать SWI.
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Sep 30 2009, 10:27
Сообщение #5


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



В общем, применение такое видится.
Предположим, есть девайс, который не особо много считает, но нуждается в калибровке, желательно, автоматической. При этом код калибровки де-факто мертвый, и вся софтина не умещается во флеш. Но есть USB - подключили к компу, в меню девайса включили режим калибровки, на стороне компа типопрограмматор. Код скомпилен так, что адреса функций (высокоуровневых, заметьте) приводят при их вызове к PABT - выделяется оверлейный буфер, посылается запрос в комп - загрузилось нужное ПО. При этом, все что работает в .fastrun, ессно, никто не трогает. Закончили работу - от громоздкого софта не осталось ничего.
Красиво?
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Sep 30 2009, 10:45
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(_Pasha @ Sep 30 2009, 14:27) *
Красиво?

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

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

Суть та же, зато никаких извращений с подложными адресами и т.п.
Go to the top of the page
 
+Quote Post
SasaVitebsk
сообщение Sep 30 2009, 22:14
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521



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

Другое дело - если в одном изделии есть, а в другом нет, а код единый.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 13:10
Рейтинг@Mail.ru


Страница сгенерированна за 0.01371 секунд с 7
ELECTRONIX ©2004-2016