как gpio_request обрабатывает номер GPIO для адреса виртуальной памяти в Linux?

Есть проблема, что gpio_request нужен номер GPIO, но в ядре ему нужен адрес для работы с gpio, как линукс этого добивается?

Всегда в спецификации чипа, например, MSM8x60 или любого другого чипа SOC, есть карта памяти, показывающая, какая область памяти предназначена для GPIO. Но в драйвере ядра мы используем номер gpio для доступа к файлу gpio.

Мой вопрос: 1. Является ли адрес памяти в карте памяти спецификации чипа физическим адресом? 2. В ядре используется виртуальный адрес, как ядро ​​преобразует номер gpio в виртуальный адрес?

Спасибо!

С уважением Билл Ван


person Bill Wang    schedule 13.12.2012    source источник


Ответы (1)


Обычно во встроенной системе существует карта адресов всего адреса, который является виртуальным.

при использовании номера порта gpio соответствующий драйвер GPIO или подобные вещи могут преобразовать номер порта gpio в виртуальный адрес, а MMU будет расположен по физическому адресу.

person Bill Wang    schedule 11.07.2013