TTTTTTS 0 17 мая, 2019 Опубликовано 17 мая, 2019 · Жалоба Добрый день! интересует вопрос, каким образом с помощью MPU происходит защита одной пользовательской задачи от другой, в cortex M? например как это происходит в различных РТОС имеющих порт на кортекс с MPU? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
yes 6 17 мая, 2019 Опубликовано 17 мая, 2019 · Жалоба ну у тас это сделано так, что переменные (вообще адрес спейс) одной задачи недоступны для другой. то есть для обмена нужно пользоваться сервисами РТОС. мне (как железячнику) для отладки нужно передавать какие-то команды с терминала или эзернета вглубь задачи работающей с железом (в железо из-за защиты в задаче терминала не залезешь). бесит это страшно :). но системные программисты довольны как слоны, потому что прикладные задачки не разваливают систему (ну точнее, для того чтобы ее развалить им нужно приложить усилия, а не тупо по неверному указателю чего-нибудь прописать) железо у нас MMU-шное, но трансляции адресов нет и динамической загрузки (если не Линукс, а FreeRTOS), поэтому разницы с MPU не должно быть Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 231 17 мая, 2019 Опубликовано 17 мая, 2019 · Жалоба 29 минут назад, yes сказал: железо у нас MMU-шное, но трансляции адресов нет и динамической загрузки (если не Линукс, а FreeRTOS), поэтому разницы с MPU не должно быть Даже без трансляции адресов разница огромная. Так как в MPU всего 8 регионов и есть существенные ограничения на дискретность задания их границ. Хотя если задач - мало и памяти - вагон, но можно сделать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
TTTTTTS 0 17 мая, 2019 Опубликовано 17 мая, 2019 · Жалоба 52 минуты назад, yes сказал: но системные программисты довольны как слоны, потому что прикладные задачки не разваливают систему (ну точнее, для того чтобы ее развалить им нужно приложить усилия, а не тупо по неверному указателю чего-нибудь прописать) ну если есть возможность тупо прописать по неверному указателю, или прочитать, то о какой защите может быть речь? меня интересует как задействуют MPU для защиты одной пользовательской задачи от другой пользовательской задачи. единственное что приходит на ум это при переключении контекста каждый раз менять настройки MPU таким образом чтобы для чтения и записи была доступна только та область ОЗУ в которой находятся данные и стек активной задачи, а вся остальная область под запретом. вот хотел узнать так ли это реализовано в различных РТОС с поддержкой MPU или нет Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 231 17 мая, 2019 Опубликовано 17 мая, 2019 · Жалоба 14 минут назад, TTTTTTS сказал: единственное что приходит на ум это при переключении контекста каждый раз менять настройки MPU таким образом чтобы для чтения и записи была доступна только та область ОЗУ в которой находятся данные и стек активной задачи, а вся остальная область под запретом. Почти так. Не забывайте, что задачи не в вакууме работают. Им наверное необходимо между собой данными обмениваться. Т.е. - нужна ещё какая то общая область обмена. И должно быть разделение на системный и прикладной уровни. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
TTTTTTS 0 17 мая, 2019 Опубликовано 17 мая, 2019 · Жалоба 1 минуту назад, jcxz сказал: Почти так спасибо Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
yes 6 17 мая, 2019 Опубликовано 17 мая, 2019 · Жалоба когда-то давно делал (для спарк-а) при переключении контекста, и вроде бы не понимаю, как иначе. использовал только первую страницу, то есть похоже на MPU (смотрел на блэкфиновское, так как было время всюду их совал, но MPU так и не использовал) по возможностям. а во FreeRTOS-e это есть, уверен, что взяли готовую. нужно смотреть Cortex-A порты. может и для Cortex-M есть, тут не знаю Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 48 18 мая, 2019 Опубликовано 18 мая, 2019 · Жалоба 22 часа назад, yes сказал: но системные программисты довольны как слоны, потому что прикладные задачки не разваливают систему (ну точнее, для того чтобы ее развалить им нужно приложить усилия, а не тупо по неверному указателю чего-нибудь прописать) Т.е. криворукость лечим блокировкой памяти? А если их поделье заглючит, то что с общей системой произойдет тогда? ЗЫ. Вообще, как я думаю, вся эта защита нужна только для запуска сторонних программ под осью общего применения, типа винды или линя... И то, чтоб просто закрыть эту программу не порушив всю ось. Во встраиваемых решениях, где нет всяких подгрузок и выгрузок все нужно решать только корректным программированием, иначе все равно ничего не поможет... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
yes 6 19 мая, 2019 Опубликовано 19 мая, 2019 · Жалоба On 18 мая 2019 г. at 3:01 PM, mantech said: Т.е. криворукость лечим блокировкой памяти? от объема кода зависит, от квалификации программистов и т.д. в проекте с лимоном+ строк, десятком исполнителей и достаточно длинным временем жизни никакая пряморукость уже не работает, по-моему. нужны инструментальные средства. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 48 19 мая, 2019 Опубликовано 19 мая, 2019 · Жалоба 34 минуты назад, yes сказал: в проекте с лимоном+ строк, десятком исполнителей Если не секрет, что делает сей мегапроект? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AlexandrY 3 19 мая, 2019 Опубликовано 19 мая, 2019 · Жалоба 1 hour ago, mantech said: Если не секрет, что делает сей мегапроект? Лимон строк эт простенькая RTOS типа Nucleus Plus с GUI и парой коммуникационных стеков. Я такой проект тянул один. Чтобы проект требовал десяти человек надо минимум десять лимонов строк. С изоляцией задач тема актуальная в IoT и для нее придумали Cortex-M33. Кому нужно найдет все в mbed uVisor. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
haker_fox 61 20 мая, 2019 Опубликовано 20 мая, 2019 · Жалоба On 5/18/2019 at 8:01 PM, mantech said: Т.е. криворукость лечим блокировкой памяти? А если их поделье заглючит, то что с общей системой произойдет тогда? Нет, криворукость здесь совершенно не причём по следующим пунктам: 1. MPU != MMU. MPU (Memory Protection Unit) как раз штатно и предназначен для защиты областей памяти от несанкционированного доступа. 2. MPU вкупе с другими возможностями (например, обработчиком Hard Fault) является отличным инструментом для поиска ошибок в софте. On 5/18/2019 at 8:01 PM, mantech said: А если их поделье заглючит, то что с общей системой произойдет тогда? Ну лучше-то иметь больше инструментов для верификации, чем уповать на "безглчное ПО". ИМХО))) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 48 20 мая, 2019 Опубликовано 20 мая, 2019 · Жалоба 13 часов назад, AlexandrY сказал: Лимон строк эт простенькая RTOS типа Nucleus Plus с GUI и парой коммуникационных стеков. Ооо да, как раз в духе сегодняшних "вебописателей", когда хочешь проверить почту, а там 3-5 мегов чего-то загружается... 10 часов назад, haker_fox сказал: Ну лучше-то иметь больше инструментов для верификации, чем уповать на "безглчное ПО". Тестирование - это понятно, но в релизных-то прогах зачем это?? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
haker_fox 61 20 мая, 2019 Опубликовано 20 мая, 2019 · Жалоба 2 minutes ago, mantech said: Тестирование - это понятно, но в релизных-то прогах зачем это?? А где 100%-я гарантия, что релизная программа без багов? А если он вылезет, что будет с устройством? А если оно на объекте, и не на одном? Так хоть можно параметры ошибки в лог занести, и потом расшифровать неспешно) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 48 20 мая, 2019 Опубликовано 20 мая, 2019 · Жалоба 4 минуты назад, haker_fox сказал: Так хоть можно параметры ошибки в лог занести, и потом расшифровать неспешно) Дак и тут будет только очень обобщенная информация, в своих прогах логи ошибок и рестартов тоже делаю, но как-то обходился без подобных наворотов... 6 минут назад, haker_fox сказал: А если он вылезет, что будет с устройством? Как правило рестарт по хардфаулту или собаке, другого не придумано 7 минут назад, haker_fox сказал: А где 100%-я гарантия, что релизная программа без багов? Ктож ее вам даст? Может тот-же боинг, например? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться