[an error occurred while processing this directive]
OK, продолжим...
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено Михаил Евстафьев 14 сентября 2002 г. 19:19
В ответ на: "Красивый исходник" - чисто маркетинговое выражение. отправлено Alexandr 14 сентября 2002 г. 14:12

>SALVO делает то же самое, что и NESOS только NESOS не пытаеться
>замаскировать разбиение задачи на отдельные части.

Или, говоря по другому, задача в SALVO выглядит как бесконечный цикл. А в NESOS это некое подобие обработчика прерывания. С обязательным выходом из этого обработчика (иначе все зависнет).

>Для меня красота это отсутствие каких либо неизвестных макросов.

О вкусах не спорят, конечно.
Но, во первых, макрос известен, входит в заголовочный файл.
Во вторых, хорошее и красивое где-то рядом. Это я о Вашем утверждении, что красота - это только маркетинг. Нет. Это и надежно работающий код, понятный не только автору, но и любому программисту.

>Текст в NESOS более прозрачен для чтения.
>А макросы заставляют напрягаться, вспоминать их назначение.

О чем мы говорим?
OS_Yeld(); - разве может быть что-то более понятное?

>Найти ошибку в отладчике также гораздо труднее,
>поскольку задача разбиваеться на куски и может быть
>раскидана по всему пространству памяти программ.

Чуствую с SALVO Вы не знакомы совершенно. Не стоит незнакомую вещь зачисять в отстой :-)
Макрос (ассемблерная вставка) не воспринимается компилятором как завершение подпрограммы и начало следующей. Значит для компилятора это одна подпрограмма, с общими локальными переменными. И ничего и никуда не раскидывается.
Да даже если бы и раскидывалось, в чем проблема-то? Высосана из пальца.

>Скорость переключения контекста зависит в RTOS от конкретной
> реализации для конкретного контроллера и здесь вряд ли
>что-то очевидно.

Хорошо, непонятно сразу, расшифрую.
Нет никакого контекста в кооперативной RTOS. Нет множества стеков, нет необходимости сохранять и восстанавливать регистры процессора при переключении задач.

>Задержки прерываний нет! Запрещать нужно не прерывания,
>а конфликты сервисов операционки между собой.
>Коммерческие операционки не могут, конечно, себе позволить
>роскошь так тонко настраиваться они просто тупо запрещают прерывания.

Тоже мимо.
Предположим задача вызвала сервис ОС. Произошло прерывание. В обработчике прерывания тоже вызывается этот сервис. Как можно предотвратить этот повторный вызов, не запретив прерывание?

>Реентерабельность не нужна если вы, конечно, не хотите
>сделать "красивый исходник". Если очень прижало ставте
>критические секции и все.

Это я не понял к чему.
SALVO не требует реентерабельности, потому что это кооперативная RTOS. И поэтому ее можно использовать на PIC+HiTech.
А реентерабельность требуется для реализации вытесняющей RTOS, например uCOS. На PIC+HiTech невозможно запустить uCOS.

А причем тут красота исходника? И на SALVO и на uCOS исходники будут очень похожими. А вот реализация на NESOS совершенно будет совершенно не похожей на uCOS.

Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru