Я пишу фрагмент кода, который должен хранить 10 КБ памяти, расположенной по определенному физическому адресу, до того, как SOC отключится.
Моя проблема в том, что этот физический адрес не является частью пространства ядра, поэтому мне нужно создать специальное сопоставление памяти, чтобы я мог получить доступ к этому пространству памяти.
Я пытался использовать io-remap, но он (очевидно) не работает в неядерном пространстве.
есть ли API для этого? я должен использовать кмап?
заранее спасибо
ioremap()
необходимо предоставить диапазон физических адресов. Имейте в виду, что использование слова «память» без определителя «виртуальный» или «физический» может привести к двусмысленности или путанице. Возможно, вам нужно пересмотреть и проанализировать, почемуioremap()
не работает. Вот еще один вопрос и ответ, связанный с выделением физической памяти для использования драйвером ядра: access-with-busy-m/12557974#12557974" title="после добавления области памяти запроса мой драйвер терпит неудачу при каждом первом доступе с занятой m"> stackoverflow.com/questions/12516603/ - person sawdust   schedule 30.11.2012