Вся ваша карта потенциально копируется во внутреннюю память. Так что если вы обращаетесь к какому-либо адресу вашего прог-файла с SD-карты или чего-то еще, копия данных загружается во внутреннюю память. Насколько большой диапазон на самом деле, известно только ОС. Даже если вы зарезервируете место для полного файла, при необходимости будет прочитана только небольшая часть. Если процессор имеет MMU, это может быть просто реализовано ошибками страницы, что приводит к перезагрузке.
Доступ будет быстрее, если вы не сохраняете данные напрямую на базовое физическое устройство. Таким образом, изменения будут сделаны только в оперативной памяти, что быстро, и записывается позже сразу на более медленные устройства, такие как последовательная флэш-память или что-то еще.
Синхронизация от измененного подключенного виртуального ОЗУ к базовому файлу может быть выполнена с помощью msync http://man7.org/linux/man-pages/man2/msync.2.html
Если вам нужна некоторая базовая информация о том, как (виртуальный) ram адресован и как mmap отображается в виртуальный ram, вы можете прочитать это: https://www.xml.com/ldd/chapter/book/ch13.html