Я знаю, что вопрос расплывчатый ... но вот что я надеюсь узнать: MCU направляет некоторую часть адреса памяти устройствам на шине PCI, поэтому теоретически код пользователя / ядра может напрямую читать / записывать память устройства, как если бы это было основная память. Но данные, входящие и исходящие из устройств PCI Express, упаковываются/сериализуются/передаются по дорожкам, что означает, что каждое чтение/запись влечет за собой значительные накладные расходы, такие как упаковка (добавление заголовков) и распаковка. Таким образом, это означает, что пользователю/ядру не идеально считывать память устройства побайтно, вместо этого он должен выполнять какую-то массовую передачу. Если да, то какой предпочтительный механизм и API?
Кстати, я знаю, что есть DMA, но мне кажется, что DMA не требует, чтобы память устройства была напрямую отображена в адресное пространство основной памяти - DMA предназначен для предоставления устройству доступа к основной памяти, и мой вопрос заключается в другом, позволяя пользователю/ память устройства доступа к ядру. Итак, я предполагаю, что это не связано с вопросом выше, верно?