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

 
 
> Доступ к регистрам из программы, Есть ли возможность запретить?
segment
сообщение Sep 17 2010, 10:35
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 352
Регистрация: 10-08-06
Из: Санкт-Петербург
Пользователь №: 19 471



Появилась задача безопасного выполнения пользовательской программы на микроконтроллере.
В начале работы контроллер настраивает периферию и прочее. После настройки нельзя менять эти настройки, может повредить устройство неправильная установка регистров, а починка будет проблематична. Далее алгоритм задачи должен загружаться пользователем.
Выходит два варианта:
- Интерпретатор
- Загрузка и выполнение кода в RAM

При интерпретаторе все нормально, виртуальная машина обрабатывает пользовательский скрипт, доступа по указателям и периферии нет. Если напишут кривой (скорее всего напишут) код, то программа корректно прекратит работу. Вроде бы все нормально, но из-за виртуальной машины производительность падает примерно в 40 раз (проверяли вычислением F32 на Си и с помощью скрипта). Это не во всех случаях подходит.

При простой подгрузке бинарника встает вопрос об возможности доступа к регистрам и памяти. То есть пользователь, криво написав программу, залепит в какой-нибудь регистр фигню, а дальше как повезет. Тут уже нужно будет обрабатывать Data Abort, но это не всегда спасает.

В конечном виде нужно получить несколько системных вызовов и безопасное выполнение кода пользователя.

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

Сообщений в этой теме
- Сега   Доступ к регистрам из программы   Sep 17 2010, 10:35
- - Dron_Gus   Какой контроллер? На ARM>9 для это есть MMU. На...   Sep 17 2010, 10:37
- - Сега   Задача выполняется на простых ARM7 (72Мгц, LPC2000...   Sep 17 2010, 10:42
- - Dron_Gus   У кортексов есть MPU. Не знаю, есть ли он на LPC17...   Sep 17 2010, 10:50
- - Сега   Да, есть MPU. Его еще не использовал, поэтому возн...   Sep 17 2010, 11:20
- - Dron_Gus   Системные вызовы через SWI (SWC). Посмотрите Free...   Sep 17 2010, 11:32
- - Сега   Насколько я понял в ARM7 можно поменять режим и ис...   Sep 17 2010, 11:38
- - Dron_Gus   Да.   Sep 17 2010, 11:39
- - Сега   Спасибо. С PMU вроде все понятно. А нет ли хорошег...   Sep 17 2010, 11:59
- - Dron_Gus   http://infocenter.arm.com/help/index.jsp?t...d/Cac...   Sep 17 2010, 12:28
- - vmp   Для ARM7 можно попробовать задействовать регистры ...   Sep 17 2010, 13:37
- - Dron_Gus   А к ним можно получить доступ "изнутри"?   Sep 17 2010, 13:43
|- - vmp   Цитата(Dron_Gus @ Sep 17 2010, 17:43) А к...   Sep 17 2010, 13:52
- - ar__systems   Цитата(Сега @ Sep 17 2010, 05:35) Выходит...   Sep 17 2010, 14:48
- - prottoss   Цитата(Сега @ Sep 17 2010, 17:35) При инт...   Sep 17 2010, 17:43
- - Сега   Бывают сидят такие, которые потом приходят и говор...   Sep 24 2010, 09:23
- - Deka   А мне больше нравится или интерпретатор или свой к...   Sep 24 2010, 12:35


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

 


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


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