Как я могу прокси mmap для чтения и записи по сети? - PullRequest
1 голос
/ 26 сентября 2010

Я работаю над программным обеспечением для управления устройством mmap'd во встроенной системе ARM, но столкнулся с несколькими ситуациями, когда доступных средств отладки и разработки было недостаточно. то есть инструментальные средства, такие как valgrind и профилировщики резьбы более высокого уровня, недоступны.

То, что я хотел бы сделать, это скомпилировать мой код на компьютере с архитектурой x86, отобразить «фиктивный» сегмент памяти, используя тот же размер, и затем передать эти операции чтения / записи по сети на встроенный компьютер, который затем мог бы соответственно реагировать .

Я понимаю, что это, вероятно, потребует механизма клиент / сервер и будет мучительно медленным, но преимущества этой опции сделают механизм вне самого интерфейса mmap (обработка асинхронных событий, управление потоками) доступным для инструмента, использующего разработку x86 инструменты были бы очень полезны.

Я слышал об этой технике в некоторых разработках ASIC для моделирования, но никогда не использовал ничего, что обеспечивало бы эту функциональность. Ключевым моментом здесь является то, что я хочу использовать один и тот же код на обеих платформах без необходимости переписывать кучу вещей или писать модуль ядра, в котором есть какая-либо логика обработки оборудования. Я хочу сохранить всю логику управления устройством в userland через mmap

Ответы [ 2 ]

1 голос
/ 26 сентября 2010

Если вы обдумаете это, то в основном это сводится к реализации удаленной файловой системы.

  • "самым простым" будет, вероятно, если бы ваше встроенное устройство могло реализовать простую версию клиентской части NFS,и mmap файл на вашем настольном компьютере
  • также должно быть возможно обратное, а именно, чтобы на вашей встроенной системе работали серверные модули nfs и экспортировать что-то вроде /dev/shm в качестве точки монтирования nfs на ваш рабочий стол.

Для обоих подходов (любого другого, использующего mmap) вы должны быть очень осторожны при синхронизации данных.Но если у вас есть типичная настройка отладки с одним писателем и одним читателем, это может быть выполнимо.Если это усложняется, есть дистанционная блокировка файлов, доступная как расширение nfs.

0 голосов
/ 09 июня 2011

Я хотел что-то подобное в прошлом, но никогда не удосужился реализовать его. Тем не менее, вы можете захотеть взглянуть на что-то вроде memcached, я знаю, что оно обычно используется для вещей, основанных на web / db, но для этого можно злоупотреблять этим, особенно если это отладка.

...