Защита памяти автосара

Меня смущает механизм защиты памяти автосар

У меня два приложения, одно доверенное, одно ненадежное

Я настроил диапазон области защиты памяти от 0x70000000 to 0x7100000 для доверенного приложения и настроил задачу инициализации для доверенного приложения.

В init task, если я попытаюсь напрямую записать адрес памяти внутри настроенного диапазона, он будет работать нормально.

Однако, если я пытаюсь писать за пределами настроенного диапазона (все еще правильный адрес памяти), я перехожу в исключение

Если это случилось с ненадежным приложением, я могу понять, но это надежное

Я думал, что доверенное приложение может писать во всю память? Что мне здесь не хватает


person mikmik    schedule 24.12.2020    source источник


Ответы (1)


AUTOSAR_SWS_OS (R19-11) имеет параметр конфигурации, называемый OsTrustedApplicationWithProtection

Параметр, указывающий, выполняется ли доверенное ОС-приложение с защитой памяти или нет. true: ОС-приложение работает в защищенной среде. Это означает, что доступ на запись ограничен. false: OS-приложение имеет полный доступ на запись (по умолчанию)

Похоже, ваше доверенное OSApplication настроено здесь как true вместо false и, следовательно, также ограничено запись.

С другой стороны, гл. 14 Outlook on Memory Protection Configuration гласит:

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

Гл. 14.1 также дает подсказки, как следует обрабатывать конфигурацию MPU (SWCD / BSWMD с указанием разделов памяти (CODE / VAR / CONST / ..) и разделов ввода-компоновщика), поэтому вам не следует просто использовать произвольные определения памяти и получать к ней доступ напрямую, но используя способ отображения памяти AUTOSAR.

И то, что я не понимаю в вашем случае, почему вы фактически ограничиваете доверенное приложение, давая конфигурации MPU только этот диапазон, вместо того, чтобы ограничивать доступ вашего ненадежного приложения?

person kesselhaus    schedule 04.01.2021