Раздел ELF сброса от RAM после инициализации библиотеки

У меня есть много кода в совместно использованной библиотеке ELF, которой только пользуются во время инициализации библиотеки (это называют от статических инициализаторов). Если я поместил этот код в его собственный раздел (или возможно он может войти в раздел .init), который я могу сделать использование __attribute__((section(".mysection"))), существует ли способ вынудить этот раздел быть разбитым на страницы после того, как библиотека загрузилась?

Этот вопрос связан, но заключение, там был то, что ядро разобьет на страницы неиспользованные страницы, когда это будет нуждаться в памяти, таким образом, нет никакой потребности сделать так явно. Однако я работаю во встроенной среде, где память в большом почете, и стоимость подкачки страниц в коде от диска (медленная карта флэш-памяти с интерфейсом USB) высока. Поэтому я явно сбросил бы этот код, который я, никогда знаю не будет используемым снова, вместо того, чтобы иметь ядро, возможно, решают сбросить некоторый другой код, который, возможно, в конечном счете должен был бы быть разбит на страницы, въезжают задним ходом.

Я уверен, что не забываю читать о syscall для выяснения у ядра к странице в или определенным регионам памяти, хотя я не могу найти ссылку на это нигде, поэтому возможно, я вообразил это. Такая вещь существует?

8
задан Community 23 May 2017 в 10:33
поделиться

1 ответ

Поищите документацию по оверлеям elf. Организуйте свой код так, чтобы у вас был оверлей для инициализации, а другой - для обработки. Вы также можете посмотреть наложение для выключения. Код в оверлее должен быть заменен при вызове следующего оверлея.

2
ответ дан 6 December 2019 в 01:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: