16+
Воскресенье
17 ноября
Вход |Карта сайта |Upload |codebook | PARTS

 О смысле всего сущего 0xFF

 Средства и методы разработки

 Мобильная и беспроводная связь

 Блошиный рынок Объявления

caxapa

Микроконтроллеры ARM 

AVR PIC MSP PLD,FPGA,DSP 

Кибернетика Технологии 

Схемы, платы, компоненты 

Микроконтроллеры PIC

 
Новая темаПравила РегистрацияСтатистика Архив
Вернуться в конференциюТопик полностью
fk0  (13.09.2013 12:45 - 13.09.2013 12:51) , в ответ на да ладно. защита памяти нужна только для запуска стороннего кода автор: Mahagam
Ещё раз. Есть вероятность сбоя. Она всегда есть. ПО для МК -- это комплекс из нескольких компонентов, где в больших МК число компонентов достаточно высоко и связность между ними тоже высокая. Надёжность компонента ПО порядка 0.999... 
Когда ПО стоит из двух компонентов -- это полностью устраивает. Когда имеется сотня компонентов (модулей на языке) и сбой в любом приводит к тотальному краху: 0.999^100 = 0.90. С точки зрения стороннего наблюдателя -- это значит "постоянно глючит". Это если грубо, не разбираясь в ошибках. Если детальней. MPU даёт изоляцию компонентов ПО и сбои в одних компонентах перестают влиять на другие компоненты. Т.е. при сбоях в одних функциях прибора мы не имеем перезагрузку всего прибора, а получаем только отказ данной функции. А в ОС типа windows или linux может быть даже и не получаем -- программа может что-то портить, например, в своём сегменте памяти и эта "порча" может даже не влиять на нормальную работу. В МК ввиду ограниченных объёмов памяти и отсутствия виртуальной памяти (MMU) пустых участков нет и велик шанс испортить память соседнего компонента со всеми последствиями. Напрашивается прямая аналогия с перезагрузкой ПК от любого сбоя в программе -- на самом деле в ОС типа windows или linux перманентно происходят сбои в программах, по большей части не обнаружимые. Этот факт легко заметен, если работал с чем-то вроде valgrind. Он далеко не все ошибки обнаруживает. А без valgrind ещё хуже. Ещё один аспект -- MPU позволяет ошибки вообще обнаруживать. Без MPU они могут быть никогда не обнаружены. Программа иногда (а не на тестовых примерах) посчитает неправильно (пример из жизни, измерительный прибор: только в определённом диапазоне измеряемых величин резко увеличивалась погрешность -- и не скажешь даже сходу, что программная ошибка). Или посчитает правильно, но опять же иногда, испортит какую-то память ответственную за другую функцию. С MPU имеем сразу аварийную остановку и диагностику для отладки. Альтернатива -- только что-то вроде Java машины.
[ZX]
Главная | Карта сайта | О проекте | Проекты | Файлообменник | Регистрация | Вебмастер | RSS
Лето 7528 от сотворения мира. При использовании материалов сайта ссылка на caxapу обязательна.
MMI © MMXIX