Перейти к содержанию
    

Доступ к регистрам UART через Kgdb

Добрый день.

 

Имеется отладочная плата на базе AM3517 (Cortex-A8) с запущенным Linux на базе ядра 2.6.32. Пытаюсь разобраться с отладкой ядра с помощью встроенного отладчика kgdb.

Ядро собрано с отладочной информацией и поддержкой отладчика KGDB. С компьютера по последовательному порту подключаюсь к плате с помощью gdb. Установка точек останова, просмотр глобальных переменных ядра работают без проблем. Однако столнулся с тем, что никак не удается прочитать значения регистров UART.

Допустим, пытаемся прочитать регистр MCR UART3.

В ядре информация о UART3 находится в следующей структуре.

static struct plat_serial8250_port serial_platform_data2[] = {
    {
        .mapbase    = OMAP_UART3_BASE,
        .irq        = 74,
        .iotype        = UPIO_MEM,
        .regshift    = 2,

 

mapbase - это физический адрес из Technical Reference Manual, для UART3 он будет 0x49020000.

 

Через gdb можем проверить содержимое этой структуры и попробовать обратиться к регистру MCR, находящемся по смещению 0x10.

 

(gdb) p/x serial_platform_data2.mapbase
$34 = 0x49020000
(gdb) p/x serial_platform_data2.membase
$35 = 0xfb020000
(gdb) x serial_platform_data2.membase+0x10
0xfb020000:    Cannot access memory at address 0xfb020000
(gdb) x serial_platform_data2.mapbase+0x10
0x49020000:    Cannot access memory at address 0x49020000

 

Поле membase содержит виртуальный базовый адрес получаемый после вызова ioremap(). Насколько я понимаю, что "рабочими" адресами для ядра являются все-таки виртуальные.

Однако ни по физическому, ни по виртуальному адресу прочитать не удалось. В чем проблема?

 

Заранее спасибо за помощь.

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...