Я использую mmap
для открытия /dev/mem для чтения/записи в регистры UART. Это работает хорошо, но мой вопрос: действительно ли нужен системный вызов msync
с флагом MS_SYNC после записи?
Насколько я понимаю, /dev/mem — это виртуальное устройство, которое обеспечивает доступ к зонам физической памяти (в моем случае это регистры UART) путем преобразования адреса виртуальной памяти и, таким образом, предоставляет доступ к некоторой физической памяти из пользовательского пространства.
Это не обычный файл, и я предполагаю, что модификации регистров не буферизируются/кешируются. На самом деле я хотел бы избежать этого системного вызова по соображениям производительности.
Спасибо