реклама на сайте
подробности

 
 
2 страниц V  < 1 2  
Reply to this topicStart new topic
aaarrr
сообщение Sep 11 2018, 20:09
Сообщение #16


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(jcxz @ Sep 11 2018, 22:29) *
А вот вынос переменной в регион с защитой от записи (через MMU) и fault-ом при попытке записи - может очень помочь.

Предполагается, что "переменную" (тогда уж страницу с оной, да не суть), пишет исключительно вредитель?
Go to the top of the page
 
+Quote Post
__inline__
сообщение Sep 12 2018, 05:55
Сообщение #17


Местный
***

Группа: Участник
Сообщений: 257
Регистрация: 5-09-17
Пользователь №: 99 126



MMU хорош тем, что:

1) позволяет настроить кеширование, буферирование.... (cachable, bufferable), политику кеша (write throw, write back)
2) сделать виртуальное адресное пространство (полезно к примеру для склейки разных диапазонов адресов в один непрервыный)

Ну и в целях защиты его использовать пока не приходилось, потому что bare metal и standalone. От кого защищаться?

Цитата(mantech @ Sep 11 2018, 15:23) *
Раскурить аллвиннер вполне норм, примерно месяца полтора факультативной работы потребовалось, единственный трабл - это их УСБ! Это какой-то цирк с конями...

Написал в личку
Go to the top of the page
 
+Quote Post
jcxz
сообщение Sep 12 2018, 06:04
Сообщение #18


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(aaarrr @ Sep 11 2018, 23:09) *
Предполагается, что "переменную" (тогда уж страницу с оной, да не суть), пишет исключительно вредитель?

Почему? Может и прикладная задача писать. В чём проблема?
Да и это может быть не только переменная, но и константы/код. Кстати - MMU позволяет вообще закрыть область с константами/кодом от записи не только при отладке, но и при штатной работе программы, увеличив надёжность работы устройства. И делает этого много гибче чем MPU в Cortex-M. Это ещё один плюс к MMU-кешированию.
Кроме того ещё один вариант использования MMU: отображение на адресное пространство МК внешнего устройства хранения (например - SPI-флешки). Т.е. - виртуализация такого устройства. Например есть код, который работает с некоторой большой областью памяти читая в произвольные моменты времени данные из произвольных смещений в этой области. Без MMU придётся такой код наполнить во всех местах чтения вызовами функций чтения SPI-флешь, а с MMU можно сделать отображение адресного пространства SPI-флешь на адресное пространство МК, назначив некоторое число блоков реальной ОЗУ для кеша страниц. При кеш-промахах (доступах к страницам, которые не помещены в кеш) - делать подкачку из SPI-флешь автоматом по fault-у от MMU. Также если нужна запись в такую память, то при записи, опять-же по fault-ам - метить модифицированные сектора и, по некоторому таймауту, в процедуре обслуживания этой памяти, сбрасывать содержимое секторов в SPI-флешь. При этом прикладной код будет простой, как будто он просто работает с линейной областью памяти, находящейся в адресном пространстве МК.
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Sep 12 2018, 08:33
Сообщение #19


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(jcxz @ Sep 12 2018, 09:04) *
Почему? Может и прикладная задача писать. В чём проблема?

И чем прикладная задача будет отличаться от вредителя?
Go to the top of the page
 
+Quote Post

2 страниц V  < 1 2
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 4th July 2025 - 08:45
Рейтинг@Mail.ru


Страница сгенерированна за 0.0136 секунд с 7
ELECTRONIX ©2004-2016