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

 
 
> AT91RM9200: использование кеша и Data Abort, Выключаю кеш- и ошибка пропадает
Ruslan1
сообщение Sep 30 2006, 16:58
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 2 360
Регистрация: 6-03-06
Из: Кишинев
Пользователь №: 15 025



Сразу оговорюсь, что если я не включаю кеш в бутлодере, то все работает отлично.

В своем первичном бутлодере включаю кеш команд:

__MCR(15,0,__MRC(15,0,1,0,0) | 0x00001000,1,0,0) ;

Кеш данных не включаю, так как MMU не использую (не умею), а без MMU он не работает.
Все отлично и шикарно, ускорение ого-го (в 4 раза при тестировании SDRAM).
Но вот когда загружаю в SDRAM основную прошивку и перехожу на нее, то в какой-то момент возникает исключение по вектору 0x10 (Data Abort). При попытке пошагово просмотреть то место, с которого происходит исключение, ничего крамольного не вижу. Более того- если я даже просто ставлю точку останова в основной программе до возникновения исключения, то дальше исключения уже не происходит. То есть достаточно поставить отладчиком точку останова, а при остановке запустить дальше- и никаких усключений, все работает отлично. Такое ощущение, что пока оно стоит, что-то там в кеше успевает дозреть и далее работает нормально.

Ну ладно. Выключаю кеш в конце бутлодера и потом включаю его по новой в основном коде- тоже возникает исключение.

Передаю управление основной программе из бутлодера в состоянии, как можно более близком к ресету (в основной программе происходит полный стартап, кроме уже проинициализированной бутлодером периферии): и ARM-мода, и прерывания выключены, и в супервизоре. Чего ему еще не хватает, не понимаю.

С помощью метода тыка добился почти работоспособного варианта: выключаю кеш где-то посередине бутлодера, и включаю его уже потом в основной программе.

В-общем шаманство какое-то. Может кто-то сталкивался с подобным?
И от чего вообще может возникает этот Data Abort, если я не включаю кеш данных (кстати, пробовал включать, ничего не изменилось), и не использую MMU ?
И вдогонку: а как MMU включить? Хочу кеш данных использовать.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
yuri_t
сообщение Sep 30 2006, 20:35
Сообщение #2


Частый гость
**

Группа: Свой
Сообщений: 163
Регистрация: 24-08-05
Пользователь №: 7 937



Я не призываю не использовать cache, IMHO, просто надежней ее использовать
совместно с MMU.

Вот цитата из ARM920T Technical Reference Manual, Rev. DDI0151C.

4.2.2 Enabling and disabling the ICache

"...The ICache is usually used with the MMU enabled. In this case the Ctt in the relevant MMU
translation table descriptor indicates whether an area of memory is cachable."
Go to the top of the page
 
+Quote Post
Ruslan1
сообщение Sep 30 2006, 20:43
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 2 360
Регистрация: 6-03-06
Из: Кишинев
Пользователь №: 15 025



Цитата(yuri_t @ Sep 30 2006, 23:35) *
Я не призываю не использовать cache, IMHO, просто надежней ее использовать
совместно с MMU.

Вот цитата из ARM920T Technical Reference Manual, Rev. DDI0151C.

4.2.2 Enabling and disabling the ICache

"...The ICache is usually used with the MMU enabled. In this case the Ctt in the relevant MMU
translation table descriptor indicates whether an area of memory is cachable."


Да я ж не против, я только за обеими четырьмя конечностями!
Но это ж не так просто, задействовать MMU.

(Все, вырубаюсь, спать охота. Завтра все, что тут рекомендовали, попробую начать воплощать.)
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Ruslan1   AT91RM9200: использование кеша и Data Abort   Sep 30 2006, 16:58
- - aaarrr   Не совсем понятно, что у Вас происходит с кешем в ...   Sep 30 2006, 17:36
|- - Ruslan1   Цитата(aaarrr @ Sep 30 2006, 20:36) Не со...   Sep 30 2006, 19:28
- - yuri_t   Использование cache без включенного MMU не рекомен...   Sep 30 2006, 17:41
|- - Ruslan1   Цитата(yuri_t @ Sep 30 2006, 20:41) Испол...   Sep 30 2006, 19:54
- - aaarrr   Цитата(yuri_t @ Sep 30 2006, 21:41) Испол...   Sep 30 2006, 18:07
- - yuri_t   To aaarrr Насчет использования I-cache without MM...   Sep 30 2006, 18:42
- - aaarrr   Цитата(Ruslan1 @ Sep 30 2006, 23:28) Насч...   Sep 30 2006, 20:16
|- - Ruslan1   Цитата(aaarrr @ Sep 30 2006, 23:16) Цитат...   Sep 30 2006, 20:35
- - aaarrr   Цитата(Ruslan1 @ Oct 1 2006, 00:35) Вона ...   Sep 30 2006, 21:44
- - DropDown   Цитата(Ruslan1 @ Sep 30 2006, 19:58) И вд...   Oct 1 2006, 05:53
- - Rst7   Цитата(Ruslan1 @ Sep 30 2006, 19:58) В-об...   Oct 1 2006, 07:03
- - sergeeff   Ощущение такое, что ошибка в чем-то другом. Я рабо...   Oct 2 2006, 05:29
- - cf7k   В доку по ядру 920 про использование кэша без ММУ ...   Oct 7 2006, 16:55
- - aaarrr   Цитата(cf7k @ Oct 7 2006, 20:55) Возможно...   Oct 7 2006, 17:35
- - cf7k   Цитата(aaarrr @ Oct 7 2006, 21:35) Так не...   Oct 7 2006, 20:27


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

 


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


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