Как прочесть регистры микропоцессора

Модератор: Модераторы разделов

freem4n
Сообщения: 4
ОС: Ubuntu Linux

Как прочесть регистры микропоцессора

Сообщение freem4n »

Всем привет.

Есть задача написать модуль ядра. Одна из функций должна читать регистры микропроцессора.
Проц - PXA 270. Как это можно это сделать? Есть ли какие-то функции ядра для этого?
Спасибо сказали:
Аватара пользователя
Liksys
Сообщения: 2910

Re: Как прочесть регистры микропоцессора

Сообщение Liksys »

я когда-то давно делал такое вставками на асме, так что вполне реально.
Спасибо сказали:
Аватара пользователя
helicopter
Сообщения: 324
Статус: Комсомолец
ОС: Gentoo Linux

Re: Как прочесть регистры микропоцессора

Сообщение helicopter »

Угу, вставку на асме. Но я только на x86 такими весчами занимался.
Выбирая Linux, вы развиваете цивилизацию. Выбирая windows, вы набиваете кошелёк забугорному буржую...
Спасибо сказали:
freem4n
Сообщения: 4
ОС: Ubuntu Linux

Re: Как прочесть регистры микропоцессора

Сообщение freem4n »

Хорошо, если вставки на асме, то насколько я знаю там есть инструкция rdmsr, в linux-headers она обернута в файле asm/msr.h, пытался пользовать, результат не правильный (0x00000000). Хотя пытался прочитать этой функцией регистр EIP x86 процеса.
Спасибо сказали:
Serg79
Сообщения: 153

Re: Как прочесть регистры микропоцессора

Сообщение Serg79 »

Вот пример функции которая возвращает значение регистра "EBP", процессора i386:

Код: Выделить всё

inline unsigned int get_ebp(void)
{
    unsigned int val;
    __asm__ __volatile__ ("movl %%ebp, %0" : "=r" (val) :);
    return val;
}

Используй ее как образец.
Спасибо сказали:
freem4n
Сообщения: 4
ОС: Ubuntu Linux

Re: Как прочесть регистры микропоцессора

Сообщение freem4n »

Serg79 писал(а):
13.09.2007 11:01
Вот пример функции которая возвращает значение регистра "EBP", процессора i386:

Код: Выделить всё

inline unsigned int get_ebp(void)
{
    unsigned int val;
    __asm__ __volatile__ ("movl %%ebp, %0" : "=r" (val) :);
    return val;
}

Используй ее как образец.


Спасиб, попробовал, EIP прочитал на i386. Правда под PXA все равно не пойдет, там асм неизвестно как пользовать. Нужна функция ядра.
Спасибо сказали:
freem4n
Сообщения: 4
ОС: Ubuntu Linux

Re: Как прочесть регистры микропоцессора

Сообщение freem4n »

Все вопросы отпадают. Наткнулся на книгу Роберта Лова "Разработка ядра Linux". Читаю, начинаю понимать.
Спасибо сказали: