В процессорах ARM Cortex-M отсутствует MMU, а в некоторых реализациях, таких как серия STMicroelectronics STM32F, есть дополнительный блок защиты памяти (MPU).
В отличие от других ядер L4, микроядро F9 разработано для сред только с MPU, оптимизировано для Cortex M3/M4, где Поддерживается модель архитектуры защищенной памяти ARMv7 (PMSAv7). Системное адресное пространство системы, совместимой с PMSav7, защищено MPU. Кроме того, доступная оперативная память обычно невелика (около 256 Кбайт), но с помощью бит-бэндинг.
Память, защищенная микропроцессором, разделена на набор областей, количество поддерживаемых областей ОПРЕДЕЛЕНО РЕАЛИЗАЦИЕЙ. Например, STM32F429 предоставляет 8 отдельных областей памяти. В PMSAv7 минимальный размер области защиты составляет 32 байта, а максимальный — до 4 ГБ. MPU обеспечивает полный доступ к:
- Область защиты
- Перекрывающаяся область защиты
- Права доступа
- Экспорт атрибутов памяти в систему
Несоответствия MPU и нарушения разрешений вызывают обработчик ошибок MemManage с программируемым приоритетом.
Управление памятью в микроядре F9 можно разделить на три концепции:
- пул памяти, который представляет собой область PAS с определенными атрибутами (жестко запрограммированными в таблице карты памяти).
- адресное пространство - отсортированный список fpages, связанных с определенными потоками.
- гибкая страница - в отличие от традиционных страниц в L4, вместо этого fpage представляет область MPU.
person
jserv
schedule
05.02.2017