ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Четверг
18 апреля
293571 Топик полностью
abivan (21.12.2011 16:34, просмотров: 433) ответил MegaJohn на правильное использование RTOS - научите уму разуму
1. Задача М(модем) имеет очередь сообщений она ничего не должна проверять переодически, только обрабатывать приходящие сообщения. и отправлять сообщения в случае "плохих" ответов. 2. Задача U(UART) занимается приемом передачей данных. Принятые данные отправляется сообщением задаче М. 3. Задача П решила что надо отправить СМС, через передачу сообщений отправляет задаче M команду. задача М не ставит ни каких признаков а работает с очередью сообщений. Если нужно оповещать о резулбтате, то задача П должна иметь очередь сообщений от 1(если запрос -ответ) до ....(при серии запросов. Сообщение в М можно организовать разными способами. Используя блоки памяти(я не использую) или использовать DMS(самописный аналог встроенного malloc, но безопасный. Это отдельная тема) сообщение упаковать в структуру если надо типа: typedef struct{ BYTE bSource; //bCommand t_MyType Date; }t_ModemMsg; ответ от модема можно формировать или отдельно или отправлять сообщение назад с признаком выполнения. И память освобождать в задаче память выделяющей. можно не отправлять сообщения от М к П в случае успешной работы М тогда память освободить в М, а в П ничего не отправлять. Про работу с памятью это отдельная тема, если интересно можно продолжить отдельно.