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

 
 
 
Reply to this topicStart new topic
> Как в программе под Windows Mobile писать в память по физическому адресу?, проц Samsung S3C6410 (ARM11)
Pasha 111
сообщение Dec 7 2009, 01:12
Сообщение #1


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

Группа: Свой
Сообщений: 154
Регистрация: 6-11-05
Из: Москва
Пользователь №: 10 515



Сразу извиняюсь, если не туда пишу, просто не знаю у кого спросить...

Хочу поиграться на КПКшке с устройствами в S3C6410. Есть там регистр APLL_CON, управляющий PLL-ю. У него физический адрес 0x7E00F00C. Как я понимаю, в проце есть MMU, который не даст мне записать напрямую по этому адресу (я плохо в этом разбираюсь - всегда ARM7 программировал, где этого ничего нет). Как, собственно, в программе, запускаемой в Windows Mobile, можно туда что-то записать?

Когда пишу,например, DWORD APLL_CON = *((DWORD *)0x7E00F00C), то прога вываливается с ошибкой.
Go to the top of the page
 
+Quote Post
ataradov
сообщение Dec 7 2009, 08:25
Сообщение #2


Профессионал
*****

Группа: Участник
Сообщений: 1 014
Регистрация: 8-01-07
Из: San Jose, CA
Пользователь №: 24 202



Нужно найти в винмобайл аналог POSIX вызова mmap () и отобразить физический адрес в адресное пространство процесса. И писать уже по виртуальному адресу.
Go to the top of the page
 
+Quote Post
abcdefg
сообщение Dec 7 2009, 09:05
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 201
Регистрация: 23-01-06
Из: Msk
Пользователь №: 13 490



Цитата(Taradov Alexander @ Dec 7 2009, 11:25) *
Нужно найти в винмобайл аналог POSIX вызова mmap ()


см. MmMapIoSpace()
Go to the top of the page
 
+Quote Post
SFx
сообщение Dec 7 2009, 09:59
Сообщение #4


Знающий
****

Группа: Свой
Сообщений: 758
Регистрация: 11-07-05
Из: Понаехал (Мск)
Пользователь №: 6 688



товарищи, а можно тот же самый вопрос только относительно Linux'а ? просто на будущее... как писать в физический адрес?
Go to the top of the page
 
+Quote Post
ataradov
сообщение Dec 7 2009, 10:53
Сообщение #5


Профессионал
*****

Группа: Участник
Сообщений: 1 014
Регистрация: 8-01-07
Из: San Jose, CA
Пользователь №: 24 202



Цитата(SFx @ Dec 7 2009, 12:59) *
товарищи, а можно тот же самый вопрос только относительно Linux'а ? просто на будущее... как писать в физический адрес?


man mmap
Go to the top of the page
 
+Quote Post
SimpleSoft
сообщение Dec 7 2009, 12:31
Сообщение #6


Местный
***

Группа: Участник
Сообщений: 273
Регистрация: 3-11-05
Пользователь №: 10 442



Цитата(Pasha 111 @ Dec 7 2009, 03:12) *
Сразу извиняюсь, если не туда пишу, просто не знаю у кого спросить...

Хочу поиграться на КПКшке с устройствами в S3C6410. Есть там регистр APLL_CON, управляющий PLL-ю. У него физический адрес 0x7E00F00C. Как я понимаю, в проце есть MMU, который не даст мне записать напрямую по этому адресу (я плохо в этом разбираюсь - всегда ARM7 программировал, где этого ничего нет). Как, собственно, в программе, запускаемой в Windows Mobile, можно туда что-то записать?

Когда пишу,например, DWORD APLL_CON = *((DWORD *)0x7E00F00C), то прога вываливается с ошибкой.


Под управлением WinCE (WinMo) записать напрямую не получится. Если вы пользуете WinMo (WinCE) 6.0 и выше даже MmMapIoSpace вам не помощник, т.к. пользоваться данной функцие можно только в режиме ядра, т.е. необходимо писать драйвер. Есть иной выход. Как правило ОС держит в памяти отмапленные адреса физической памяти за границей 0x80000000. Для того чтобы узнать какие адреса отмаплены можно просто воспользоваться утилитой v2p представленной в статье V2P
Go to the top of the page
 
+Quote Post
Pasha 111
сообщение Dec 8 2009, 18:24
Сообщение #7


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

Группа: Свой
Сообщений: 154
Регистрация: 6-11-05
Из: Москва
Пользователь №: 10 515



Всем спасибо за ответы. На девайсе стоит Windows Mobile 6.1.
Я уже натыкался на статью "Кое-что об устойчивости и защищенности Windows CE на ARM-платформе", но просмотрел её мельком, сейчас пойду подробно разбираться.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 22nd June 2025 - 07:37
Рейтинг@Mail.ru


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