Здравствуйте, SergH, Вы писали:
SH>Здравствуйте, D-NICKNAME, Вы писали:
DN>>Всем привет! DN>>У меня проблема, мне нужно доступиться у определённому адресу памяти и поменять значение, к примеру: DN>>я писал след образом:
DN>>PUINT p1; DN>>p1 = (PUINT) 0xA7000024; DN>>*p1 |= 0x00010000;
DN>>Понял, что для доступа к физ памяти необходим VirtualLocal, но никак не могу понять, как в этом случае сюда прикрутить.
DN>>Подскажите, если кто в курсе.
DN>>Заранее благодарен.
SH>К физической памяти из обычного приложения ты так просто не залезешь. Ни одной стандартной API функцией (как-то можно в NT\2000 через CreateFile("что-то"), где-то это было). Хуже того, скорее всего тебе туда и не надо. Опиши задачу.
На самом деле я это использую под WinCE. Мне надо, чтобы адрес 0xA7000024 соответствовал физическому. Выполнение этой процедуры, нужно для включение подсветки кнопок под Mitec.
Коментарии, которые мне дали были следующие:
"Что касается адресов, то их надо получать через VirtualAlloc, чтоб они соответсвовали физическим."
А изначально решение этой проблемы было продемонстрировано как:
unsigned int p1,p2;
p1=0xA7000024;
p2=0xA7000018;
*p1 |= 0x00010000;// LED ON
*p2 |= 0x00010000;// LED OFF