ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Пятница
26 апреля
828038 Топик полностью
Vit (29.03.2018 09:38, просмотров: 156) ответил Dingo на Как подступиться думаю: есть несколько устройств на одних и тех же выводах МК, и есть задачи разного приоритета с использованием этой периферии. Понятно, что прерывать обмен на середине нельзя, но как бы сделать, чтобы следующим обменом был
я делал отдельные сервисы и к ним очереди тикетов на транзакции. перед транзакцией выполнялся поиск в очереди по приоритету. иногда делал пару очередей, в которых одна более приоритетная для "инжекций" и с выделением "полосы"(например, максимальное количество страничек FLASH, обслуживаемых за один раз). при работе с памятью тикет представлял собой структурку с адресами откуда, куда, длиной и с флажком для информирования об окончании транзакции. хранимая длина уменьшалась при выполнении транзакции. ЗЫ приоритет именно доступа к ресурсу у задачи с бОльшим приоритетом в системе вполне может быть исходно ниже, чему у задачи с меньшим приоритетом. при равных приоритетах задач в системе явно возникает появление дополнительного атрибута, привязанного к использованию конкретного ресурса, но равно и к требованиям более общим - конкретному устройству с конкретной функциональностью (и соответствующей архитектурой ПО и принятым решениям). использование разделяемых ресурсов в реальных задачах к тому же часто заставляет менять приоритет на ходу. Потому сервисы и настройки к ним, КМК, выглядят предпочтительнее тупых решателей по некоему приоритету задачи в системе.