uC / OS-II имеет приоритет, но только в одном направлении - он будет вытеснять поток с более низким приоритетом, чтобы позволить потоку с более высоким приоритетом работать, но не будет делать обратное.То есть потоки с более высоким приоритетом должны явно отказаться от управления процессором, чтобы позволить потокам с более низким приоритетом работать.Готов поспорить, что ваш последовательный поток имеет более высокий приоритет, чем поток HTTP, и что serFgetc()
вообще не теряет контроль (через OSMboxPend
, или OSTimeDly
, или через какую-то другую процедуру).
Попробуйте либо сделать последовательный поток потоком с самым низким приоритетом в системе, либо вставить что-то в его код, чтобы позволить ему отказаться от управления процессором.(Например, ожидание семафора, когда нет доступных символов, семафор, который вы можете отправить из доступного данным прерывания.) Любой из них должен работать.