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

 
 
> Прочитать точный счетчик из пространства пользователя(rdtsc), счетчик нужен в ПО(на Си) работающим под Андроид
Kris2007
сообщение Feb 28 2012, 08:31
Сообщение #1


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

Группа: Участник
Сообщений: 75
Регистрация: 15-03-07
Пользователь №: 26 193



Нужно поюзать какой-нибудь точный счетчик циклов из-под ОС Linux из пространства пользователя.
Кроме clock_gettime ничего в голову не приходит. Существует ли какой-нибудь счетчик типа rdtsc для x86, который можно использовать из пространства пользователя(для включения которого не нужен kernel mode)?

Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Olej
сообщение Feb 28 2012, 16:13
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 351
Регистрация: 11-09-05
Из: Харьков
Пользователь №: 8 458



Цитата(Kris2007 @ Feb 28 2012, 11:31) *
(для включения которого не нужен kernel mode)?


это вопрос уже а). архитектуры ARM и на разных семействах ARM могут быть различия, б). вопрос того, что разработчики kernel сочли нужным в архитектурно-зависимой части включить в kernel API ... (посмотрю на досуге).

а если вы знаете что-то подходящее из kernel API под ваши цели - сделайте под него syscall() под ваши цели, который можно подгружать и динамически, чтоб не отходить от типового ядра Linux.

вот я беру на своём Android (кстати, какой вас интересует Android, версия?) делаю:
Код
[olej@notebook platform-tools]$ ./adb devices
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
List of devices attached
0123456789ABCDEF        device
[olej@notebook platform-tools]$ ./adb -s 0123456789ABCDEF shell
# cd /proc
# cat /proc/kallsyms | grep sys_ | grep T
c00173c8 T proc_sys_init
c002ff88 T sys_call_table
c003060c T sys_oabi_call_table
c0033024 T sys_rt_sigreturn
c00330e0 T sys_sigreturn
c0033180 T sys_sigaction
...

- вот они все kernel API, родёмые, как на ладони...
- adb - это из состава Android SDK, вы уже развернули Android SDK?
Go to the top of the page
 
+Quote Post
Kris2007
сообщение Feb 29 2012, 08:40
Сообщение #3


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

Группа: Участник
Сообщений: 75
Регистрация: 15-03-07
Пользователь №: 26 193



Да развернул.
clock_gettime(другого решения пока не нашел( ) насколько я понимаю использует системный вызов sys_timer_gettime.
Но это много дольше, чем просто прочитать регистр таймера в x86(

Go to the top of the page
 
+Quote Post



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

 


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


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