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

 
 
 
Reply to this topicStart new topic
> LPC memory remapping
Xim73
сообщение Jul 9 2012, 16:00
Сообщение #1





Группа: Участник
Сообщений: 7
Регистрация: 16-05-12
Пользователь №: 71 877



Добрый вечер!

Хотелось бы поподробнее узнать про механизм переотображения памяти в микроконтроллерах LPC.
В руководстве говорится, что на первые 64 байта flash можно отобразить различные участки памяти. Что подразумевается под словом "отобразить"? Просто копируются первые 64 байта, например, ОЗУ в первые 64 байта flash? А куда помещается тогда "старая" таблица векторов? Или она так и остаётся на месте и отображение происходит как-то по-другому?

Заранее благодарю за помощь!
Go to the top of the page
 
+Quote Post
toweroff
сообщение Jul 9 2012, 18:23
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 957
Регистрация: 19-09-06
Из: Москва
Пользователь №: 20 514



А какой проц-то? LPC - слишком размытое понятие sm.gif
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Jul 9 2012, 22:30
Сообщение #3


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



QUOTE (Xim73 @ Jul 9 2012, 19:00) *
Что подразумевается под словом "отобразить"?
Обращаясь по этим адресам вы вместо содержимого флеша получаете содержимое отображенной памяти. Ничего никуда не копируется, просто ваши запросы перенаправляются в другую область памяти. А для вас это выглядит, как будто подменили содержимое памяти по этим адресам.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
SII
сообщение Jul 10 2012, 15:28
Сообщение #4


Знающий
****

Группа: Свой
Сообщений: 549
Регистрация: 13-07-10
Из: Солнечногорск-7
Пользователь №: 58 414



Цитата(Xim73 @ Jul 9 2012, 20:00) *
В руководстве говорится, что на первые 64 байта flash можно отобразить различные участки памяти. Что подразумевается под словом "отобразить"? Просто копируются первые 64 байта, например, ОЗУ в первые 64 байта flash? А куда помещается тогда "старая" таблица векторов? Или она так и остаётся на месте и отображение происходит как-то по-другому?


Тут не совсем верная формулировка (ну или просто не шибко удачная -- как написано в исходной документации, я посмотреть не могу, поскольку Вы не указали модель МК). Вообще, отображение (mapping) -- это установление соответствия между адресами, выдаваемыми процессором, и физическими областями памяти.

В данном конкретном случае речь идёт о том, что первые 64 байта адресного пространства (адреса 00000000-0000003F), доступного процессору, могут быть отображены либо на первые 64 байта флэш-памяти, либо на какие-либо другие адреса (например, на внутреннее ОЗУ). Необходимость в таком отображении возникает из-за того, что процессор считает, что у него по адресам 00000000-0000003F лежат векторы прерываний, и при возникновении любого из них переходит на тот или иной адрес в этой области. Однако Ваша программа может располагаться не только во флэш-памяти, но и в ОЗУ, и тогда надо "обмануть" процессор: он обратится по одному из адресов в указанном диапазоне, а ему подсунут информацию из совсем другого места. При таком отображении, понятное дело, прочитать информацию из первых 64 байтов именно флэш-памяти окажется невозможно.
Go to the top of the page
 
+Quote Post
Lotor
сообщение Jul 11 2012, 04:25
Сообщение #5


Местный
***

Группа: Свой
Сообщений: 476
Регистрация: 3-07-07
Из: Санкт-Петербург
Пользователь №: 28 866



Цитата(SII @ Jul 10 2012, 19:28) *
Однако Ваша программа может располагаться не только во флэш-памяти, но и в ОЗУ, и тогда надо "обмануть" процессор: он обратится по одному из адресов в указанном диапазоне, а ему подсунут информацию из совсем другого места. При таком отображении, понятное дело, прочитать информацию из первых 64 байтов именно флэш-памяти окажется невозможно.

Не совсем верно, ведь программа может жить в ОЗУ, а вектора во флеш. И наоборот - программа может оставаться во флеше, а вектора прерываний лежать в ОЗУ.


--------------------
Ковырял чукча отверткой в ухе, звук в телевизоре и пропал.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 25th June 2025 - 06:01
Рейтинг@Mail.ru


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