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

 
 
> Несколько вопросов, EP9301, SDRAM, MMU, WinCE
Desenix
сообщение Jul 11 2005, 12:24
Сообщение #1


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

Группа: Новичок
Сообщений: 111
Регистрация: 23-06-04
Пользователь №: 141



1)SDRAM 256Мбит в EP9301
в DS сказано что после инициализации общая память в 32Мбайта разбросана кусками по сегменту в 256Мбайт следующим образом
0xN000_0000 - 0xN03F_FFFF
0xN100_0000 - 0xN13F_FFFF
0xN400_0000 - 0xN43F_FFFF
0xN500_0000 - 0xN53F_FFFF
0xN800_0000 - 0xN83F_FFFF
0xN900_0000 - 0xN93F_FFFF
0xNC00_0000 - 0xNC3F_FFFF
0xND00_0000 - 0xND3F_FFFF
где N - сегмент C,D,E,F(0)

мне почему-то казалось что память должна быть разбросана по адресам банков в 4-е блока по 8Мбайт.

2) Нужно ли инициализировать MMU, если да, то как (там разные типы таблиц) если я хочу потом запускать WinCE, при чем образ будет находится в RAM. Не будет ли конфликта ?

3) по MMU не совсем понятно, на EP9301 кастрированная дока, поэтому смотрю на аналогичное ядро, как я понял, необходимо создать таблицу из 4096 записей (по 4 байта/1слову каждая), где каждая запись описывает 1Мбайт виртуальной памяти, т.е. запись 0 - первый Мбайт, запись 1- второй итд...
Вот только просмотрев процедуры инициализации на два разных камня, я не нашел толком как там этот MMU инициализируют, в одном случае передают указатель на таблицу из записей
Код
   EXPORT      OEMAddressTable[DATA]

OEMAddressTable
      ;
      ; TODO - This needs to be changed.
      ;
      ;;;-------------------------------------------------------------
      ;;; Virt Addr   Phys Addr   MB
      ;;;-------------------------------------------------------------

       DCD 0x80000000, 0xF0000000, 64 ; 64 MB DRAM
       DCD 0x88000000, 0x00000000, 32 ; 32 Mb of Intel J3 flash
       DCD 0x8A000000, 0x10000000, 16 ; 16 Mb of AMD flash
       DCD 0x8B000000, 0x60000000, 1  ; 512K of battery backed SRAM.
       DCD 0x90000000, 0x80000000, 16 ; 16 MB of System ASIC regs etc.
       DCD 0x91000000, 0x40000000, 192; 192 Meg of PCMCIA space
       DCD 0x00000000, 0x00000000, 0  ; End of Table (MB MUST BE ZERO!)
       END

а в другом вообще ручками инициализируют
Код
void AT91F_InitMMU(unsigned int *pTranslationTable)
{
int i;
// Program the TTB
AT91F_ARM_WriteTTB((unsigned int) pTranslationTable);
// Program the domain access register
AT91F_ARM_WriteDomain(0xC0000000); // domain 15: access are not checked

// Reset table entries
for (i = 0; i < 4096; ++i)
 pTranslationTable[i] = 0;
// Program level 1 page table entry
pTranslationTable[0x0] =
 (0x0 << 20) |  // Physical Address
 (1 << 10) |      // Access in supervisor mode
 (15 << 5) |      // Domain
 1 << 4 |
 0x2;             // Set as 1 Mbyte section
pTranslationTable[0x100] =
 (0x200 << 20) |  // Physical Address
 (1 << 10) |      // Access in supervisor mode
 (15 << 5) |      // Domain
 1 << 4 |
 (1 << 3) |       // Cachable
 0x2;             // Set as 1 Mbyte section
pTranslationTable[0x200] =
 (0x200 << 20) |  // Physical Address
 (1 << 10) |      // Access in supervisor mode
 (15 << 5) |      // Domain
 1 << 4 |
 0x2;             // Set as 1 Mbyte section
pTranslationTable[0xFFF] =
 (0xFFF << 20) |  // Physical Address
 (1 << 10) |      // Access in supervisor mode
 (15 << 5) |      // Domain
 1 << 4 |
 0x2;             // Set as 1 Mbyte section

// Enable the MMU
AT91F_EnableMMU();
}

при чем зачем-то кусками и всего 4Мбайта.

пока читаю дальше, но четкой логики в документации по MMU не вижу.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Desenix   Несколько вопросов   Jul 11 2005, 12:24
- - Desenix   Забыл спросить, саму таблицу дескрипторов можно в ...   Jul 11 2005, 12:53
- - aaarrr   1. Для 16 бит шины, похоже, действительно так. Воо...   Jul 11 2005, 17:11
|- - Desenix   Цитата(aaarrr @ Jul 11 2005, 21:11)1. Для 16 ...   Jul 11 2005, 20:08
- - aaarrr   Описание битов кеширования есть на стр.93 ARM920T_...   Jul 11 2005, 20:43
|- - Desenix   aaarrr У тебя были проблемы если при инициализации...   Jul 28 2005, 17:45
- - Desenix   aaarrr Спасибо, считал что эти биты должны быть оп...   Jul 12 2005, 12:56
- - aaarrr   Нет, такой проблемы не было, но у меня в errat...   Jul 29 2005, 11:08
- - Desenix   Если стек находится в SDRAM то программа зависает ...   Jul 29 2005, 12:11
- - aaarrr   А суровый тест SDRAM памяти пробовали? Лучше всего...   Jul 29 2005, 12:51
|- - Desenix   Цитата(aaarrr @ Jul 29 2005, 16:51)А суровый ...   Jul 29 2005, 12:58
|- - Desenix   Еще раз посмотрел инициализацию SDRAM от Cirrus Lo...   Jul 29 2005, 17:37
- - Desenix   черт бы побрал этих разработчиков из цируса... зар...   Jul 31 2005, 08:11
- - aaarrr   Странно, правда у Цирроза много моментов, никак не...   Jul 31 2005, 22:33
- - Desenix   я сделал проще, запихиваю в стек 8 регистров одной...   Aug 4 2005, 07:09
- - aaarrr   Цитатанепонятно назначение MACFIFO , что туда можн...   Aug 4 2005, 08:41
|- - Desenix   aaarrr вроде проинициализировал MAC по примеру дра...   Aug 5 2005, 11:36
- - aaarrr   Я делал все пользуясь только мануалом, процедуры и...   Aug 5 2005, 13:44
- - Desenix   Сомневаюсь что по мануалу можно все правильно сдел...   Aug 5 2005, 14:06
- - Desenix   aaarrr Заметил на мой взгляд странную вещь. Когда...   Aug 8 2005, 10:16


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

 


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


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