|
Переключить режим работы ARM, текущее состояние ядра Abort, надо переключить в Supervisor |
|
|
|
 |
Ответов
|
Mar 22 2010, 07:03
|
Профессионал
    
Группа: Свой
Сообщений: 1 481
Регистрация: 10-04-05
Пользователь №: 4 007

|
В u-boot есть такая функция ram_size: Код static long ram_size(ulong *base, long maxsize) { volatile long *test_addr; volatile ulong *base_addr = base; ulong ofs; /* byte offset from base_addr */ ulong save; /* to make test non-destructive */ ulong save2; /* to make test non-destructive */ long ramsize = -1; /* size not determined yet */
save = *base_addr; /* save value at 0 so can restore */ save2 = *(base_addr+1); /* save value at 4 so can restore */
/* is any SRAM present? */ *base_addr = 0x5555aaaa;
/* It is important to drive the data bus with different data so * it doesn't remember the value and look like RAM that isn't there. */ *(base_addr + 1) = 0xaaaa5555; /* use write to modify data bus */
if (*base_addr != 0x5555aaaa) ramsize = 0; /* no RAM present, or defective */ else { *base_addr = 0xaaaa5555; *(base_addr + 1) = 0x5555aaaa; /* use write to modify data bus */ if (*base_addr != 0xaaaa5555) ramsize = 0; /* no RAM present, or defective */ }
/* now size it if any is present */ for (ofs = 4; ofs < maxsize && ramsize < 0; ofs <<= 1) { test_addr = (long*)((long)base_addr + ofs); /* location to test */
*base_addr = ~*test_addr; if (*base_addr == *test_addr) ramsize = ofs; /* wrapped back to 0, so this is the size */ }
*base_addr = save; /* restore value at 0 */ *(base_addr+1) = save2; /* restore value at 4 */ return (ramsize); } Вызываю ее при запрещенных прерываниях, соответственно нет и Abort
|
|
|
|
Сообщений в этой теме
impatt Переключить режим работы ARM Mar 17 2010, 09:16 Aurochs Вот фрагмент кода на ассемблере, который позволит ... Mar 18 2010, 11:55 impatt Цитата(Aurochs @ Mar 18 2010, 16:55) Вот ... Mar 19 2010, 03:05 sergeeff Если не секрет. Откуда возникла такая потребность?... Mar 19 2010, 12:57 impatt Цитата(sergeeff @ Mar 19 2010, 17:57) Есл... Mar 19 2010, 13:37 defunct Цитата(sergeeff @ Mar 19 2010, 14:57) А в... Mar 21 2010, 00:32  aaarrr Цитата(defunct @ Mar 21 2010, 03:32) Плюс... Mar 21 2010, 01:06   defunct Цитата(aaarrr @ Mar 21 2010, 03:06) А кон... Mar 21 2010, 01:45    aaarrr Цитата(defunct @ Mar 21 2010, 04:45) В ре... Mar 21 2010, 01:49     defunct Цитата(aaarrr @ Mar 21 2010, 03:49) А вот... Mar 21 2010, 01:58      aaarrr Цитата(defunct @ Mar 21 2010, 04:58) SoC ... Mar 21 2010, 02:10       defunct Цитата(aaarrr @ Mar 21 2010, 04:10) Хорош... Mar 21 2010, 02:19        sergeeff Цитата(defunct @ Mar 21 2010, 05:19) Мой ... Mar 21 2010, 12:27         aaarrr Цитата(sergeeff @ Mar 21 2010, 15:27) Сущ... Mar 21 2010, 15:36 aaarrr Тогда вопросов более нет. Mar 21 2010, 02:29 sergeeff Завтра с работы пришлю процедуру без входа в Abort... Mar 21 2010, 20:26 aaarrr Цитата(sergeeff @ Mar 21 2010, 23:26) Зав... Mar 21 2010, 20:28 zltigo Цитата(sergeeff @ Mar 22 2010, 10:03) Выз... Mar 22 2010, 07:20 _Pasha Цитата(sergeeff @ Mar 22 2010, 11:03) Выз... Mar 22 2010, 07:35 defunct Цитата(sergeeff @ Mar 22 2010, 09:03) В u... Mar 22 2010, 12:16 sergeeff Ну просветите! Надо объем памяти выяснить или ... Mar 22 2010, 07:50 zltigo Цитата(sergeeff @ Mar 22 2010, 10:50) Пиш... Mar 22 2010, 07:59  sergeeff Цитата(zltigo @ Mar 22 2010, 10:59) Зачем... Mar 22 2010, 08:07   aaarrr Цитата(sergeeff @ Mar 22 2010, 11:07) Дей... Mar 22 2010, 08:58   zltigo Цитата(sergeeff @ Mar 22 2010, 11:07) Чег... Mar 22 2010, 09:03 sergeeff Благодарю за ответы, переотдыхал, наверное. Mar 22 2010, 09:28 impatt Привет всем.
Есть кусок кода:
CODE ;
; Dis... Mar 24 2010, 10:55 zltigo Цитата(impatt @ Mar 24 2010, 13:55) Приве... Mar 24 2010, 12:37 scifi По пунктам 1 и 2: запись "LDR reg, =число... Mar 24 2010, 12:27 aaarrr Все верно понимаете. Вместо второго ldr логичнее н... Mar 24 2010, 12:28
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|