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

 
 
 
Reply to this topicStart new topic
> Доступ к регистрам UART через Kgdb
griabig
сообщение Apr 23 2013, 13:33
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 27
Регистрация: 30-09-09
Пользователь №: 52 655



Добрый день.

Имеется отладочная плата на базе 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(). Насколько я понимаю, что "рабочими" адресами для ядра являются все-таки виртуальные.
Однако ни по физическому, ни по виртуальному адресу прочитать не удалось. В чем проблема?

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

Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 27th June 2025 - 20:27
Рейтинг@Mail.ru


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