ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Воскресенье
24 ноября
39409
ДМ (19.09.2005 15:02, просмотров: 4043)
Защищённость OS на ARM без MMU. На примере uCLinux и Samsung S3C2500 Кое-что о многозадачности знаю. Сам реализовал вытесняющую на AVR. Открыл для себя очень много того, о чём ранее и не задумывался. На этапе отладки все выглядело, как Win98 - и перезагрузы и зависания. Мало выделил памяти под стек одной из задач - он заполз на соседнюю задачу... И никак от этого не защититься, так как механизмов защиты у AVR нет. Как выяснилось, на i486 и выше многозадачность реализована так же, как и у меня, с той лишь разницей, что у i486 есть сегментация программной памяти, что само по себе тоже защита, и механизм защиты от того, что приложение попытаеся перепрыгнуть за выделенный ей предел. Про ARM, каюсь, ничего подобного не читал. Если я правильно понял, то MMU - это и есть механизм, который при попытке приложения выскачить за пределы выделенной ему программной памяти, либо обратиться к ячейке памяти данных за пределом выделенного дипазаона, формирует аппаратное прерывание. А обработчик прерывания сделает, что нужно. Скорее всего закроет это приложение. Если я не прав, то прошу меня поправить. По долгу службы заинтересовался одним готовым контроллером http://www.moxa.co …roduct/UC-7110-LX.htm, с uCLinux на Samsung S3C2500. На этом процессоре, как выяснилось, MMU нет. uCLinux - как раз для него. Не получится ли, что одна из задач может изменить данные OS, либо другой задачи, тем самым нарушить работу всей системы? Или MMU - не единственный механизм защиты многозадачности у ARM? Есть ли у ARM сегментация, как у x86 и механизм смены банков регистров, как у MCS51? И ещё! Посоветуйте отладочную плату ARM9 с MMU и Ethernet на борту Очень хотелось бы, чтобы был RS485. Мне посоветовали http://www.embedde …epc/ts7200-spec-h.html и http://www.ucrouter.ru/hardware.html Первый вариант очень интересный, но как и где его купить. Даже на запрос по электронке не ответили. Второй вариант купить, думаю, легче, но дорого, и нет RS485. Может быть ещё что посоветуете? Спасибо!