Невозможно записать на виртуальный адрес с помощью iowrite () - PullRequest
1 голос
/ 22 марта 2012

Я пытаюсь создать модуль аппаратного драйвера в ядре Linux. Оборудование подключается к ЦП через UART, поэтому я пытаюсь получить доступ к регистру UART напрямую через iowrite (). Однако я обнаружил, что никогда не могу писать на адрес регистра. Ниже код, который я использую:

release_mem_region(UARTBASE_PA, 145);

if(request_mem_region(UARTBASE_PA, 145, "myserial") ==NULL)
    printk("iomem request refused\n");

else
    UARTBASE =(u32)  ioremap_nocache((u32) UARTBASE_PA, 145);

iowrite32((u32) 0x100,(u32) (UARTBASE+0x20));

x=ioread32(UARTBASE+0x20);

printk("%x\ \n", x);

Где вывод printk всегда является значением по умолчанию вместо того, которое я записываю в него.

Понятия не имею, как решить эту проблему, помогите, любая идея будет полезна.

Заранее спасибо!

Джеймс

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...