ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Суббота
6 июля
168657 Топик полностью
Vit (09.10.2009 14:01, просмотров: 222) ответил Alex B. на корень вычисляет не метка. Метка мелкая, она ничего не знает, но работать должна по минимуму.
Ключевая фраза "значит (Б) должен быстро шевелить поршнями". А тут уже в ход вступают цифры/оценки. Принимаем, что реакция на событие (не конкретно вход в обработчик прерывания) должна быть максимально быстрой, но нецелесообразно его пытаться получить меньшим, чем реальное время переключения приём/передача в радиотрактах (А) и (Б). Насколько быстрым важно иметь вычисление того корня и каково допустимое соотношение потребление_радиотракта(Б)/потребление_МК(Б)/оптимальная_тактовая_МК(Б)? При достаточно высокой производительности МК (для упрощения считаем, что матлибы одинаковы) время расчёта будет соизмеримо малым (с допустимым пережором метки) и вероятность попадания момента возникновения события по приёму в момент сразу после начала процедуры расчёта вряд ли будет велика. Далее, даже если появление сигнала метки должно обслуживаться более приоритетно, чем всё остальное, пиковая загрузка должна учитывать возникновение и остальных возможных прерываний - если их таки не бывает, то считаем, что слишком повезло - в реальной системе их будет. Т.е. некоторая неидеальность кроме переключения контекста будет. При кооперативе действительно придётся решать где и насколько часто отдавать управление системе и в планировщике организовывать некие приоритетные вызовы, но как и какими средствами нарезАть это большой вопрос. Хотя не думаю, что реально все таски выглядят как числодробилки, т.е. Вы знаете, где конкретно будут критичные места. Обычное дробление на кучу тасков это невкусно. Потому я пользуюсь различными вариантами механизма статических сопрограмм (Protothreads) в самих тасках кооператива. В результате задачи, подобные описанной Вами, достаточно эффективно решаются без вытеснения, что позволяет работать на камнях типа MSP430 со сравнительно небольшим ОЗУ с применением ОС и эффективным централизованным управлением питанием (речь о программе, а не кремнии). У мну есть проект, где каждый батарейный радио-девайс может становиться клиентом или сервером в зависимости от ситуации - задачи, близкие к описанным Вами, действительно приходилось решать.