|
|
  |
jpeg на at91sam9g20, скорость сжатия |
|
|
|
Aug 22 2010, 09:01
|
Частый гость
 
Группа: Участник
Сообщений: 111
Регистрация: 2-03-10
Пользователь №: 55 768

|
CODE
void InitMMU(unsigned int *pTranslationTable) { int i; // Program the TTB _writeTTB((unsigned int) pTranslationTable); // Program the domain access register _writeDomain(0xC0000000);
// Reset table entries for (i = 0; i < 4096; ++i) pTranslationTable[i] = 0; // Program level 1 page table entry
pTranslationTable[0x3] = (0x3 << 20) | // Physical Address (1 << 10) | // Access in supervisor mode (15 << 5) | // Domain (1 << 4) | (1 << 3) | // Cachable 0x2; // Set as 1 Mbyte section
/* SDRAM entire mapping */ for(i=0;i<64;i++) pTranslationTable[0x200+i] = ((0x200+i) << 20) | // Physical Address (1 << 10) | // Access in supervisor mode (15 << 5) | // Domain (1 << 4) | (1 << 3) | // Cachable 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 CP15_EnableMMU(); }
int main(void) { CP15_Enable_I_Cache(); InitMMU((unsigned int *) 0x310000);
Попробовал запустить MMU. Все операции с памятью теперь не работают. В чем ошибка?
|
|
|
|
|
Aug 22 2010, 11:48
|

Ally
     
Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050

|
Цитата(wmakc @ Aug 22 2010, 14:26)  Как использовать memcpy для копирования из массива char в int? а то когда копировал, получалось что char просто записывается в каждый байт int. тоесть если в char {0xAB, 0xFA, 0xFF, 0x01} то один int получится 0xABFAFF01, а мне нужно чтобы было 0x000000AB, 0x000000FA и т.д. Пробовал объявлять char c __align. Результата не дало От это вы зря спросили, щаз ваш пост снесут в раздел для самых начинающих новичков. Даже знаете, боюсь что мой ответ пролетит мимо, поскольку покуда я пишу ответ вашего поста может тут уже не быть. Скажу коротко: memcpy для такого переноса данных не подойдет.
|
|
|
|
|
Aug 22 2010, 16:21
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(wmakc @ Aug 22 2010, 14:34)  Пробовал в sdram, результата не дало Как пробовали и что именно получили? Цитата(wmakc @ Aug 22 2010, 15:26)  Как использовать memcpy для копирования из массива char в int? а то когда копировал, получалось что char просто записывается в каждый байт int. тоесть если в char {0xAB, 0xFA, 0xFF, 0x01} то один int получится 0xABFAFF01, а мне нужно чтобы было 0x000000AB, 0x000000FA и т.д. Так это уже не копирование совсем, а перепаковка данных. Ее придется сделать руками.
|
|
|
|
|
  |
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|