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

 
 
> ep9307. Вирутальные адреса. Переадресация RAM ROM, Как выполнить инструкцию после переопределения адресов(с помощью MMU)
Микула
сообщение Dec 17 2013, 06:44
Сообщение #1





Группа: Участник
Сообщений: 12
Регистрация: 4-12-13
Пользователь №: 79 488



Есть программа, которая выполняет настройку виртуальных адресов с помощью MMU.
RAM располагается на физических адресах 0x30..0 а ROM на адресах 0x0..0.
Появилась необходимость переадресовать RAM по нулевым адресам (0x0..0).
Собственно, для этого нужно переадресовать весь RAM и ROM, но в данный момент по этим адресам выполняется текущая программа..
После включения MMU программа сразу улетит в тар_тара-ры?
Как мне после включения MMU вызвать другую программу по определенному адресу (установить PC)?
Использую IAR4.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Микула
сообщение Dec 19 2013, 12:04
Сообщение #2





Группа: Участник
Сообщений: 12
Регистрация: 4-12-13
Пользователь №: 79 488



Зря я сказал, что забыл записать "1111" в контрольный регистр ММУ. (не забывал).
_write_MMU_control() возврат к коду выполняется в одну ассемблер инструкцию + одна на сдвиг PC в конвейер должно померещатся (в дизасемблере по крайней мере так).
Пробовал и так и так все равно вываливается сразу сразу после MCR2 PC менял . PC просто не меняется и через несколько шагов вываливается код в аборт.
Конечно SP для каждого режима настраиваются под ремапированные адреса в стартапе программы на которую мы переходим PC.

Решил не маяться больше с этим, сделал копию программы по адресам после ремапинга.. - все заработало.
Собственно программа нормально перешла по адресу где лежит следующая программа, которую я пытался запустить. Я её соответственно сдвинул.

Кстати в примерах ИАР нашел комент, что после вклчючения ММУ следующие две инструкции должны быть NOP. Получается что он не всегда включается сразу после записи данных в контрольный регистр ММУ.

Спасибо за советы!


Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 29th August 2025 - 00:20
Рейтинг@Mail.ru


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