Цитата(adnega @ Apr 3 2014, 12:23)

И еще: кто-нить пользуется SVC? Может, лучше через SVC, раз "лишние" прерывания KnightIgor не напрягают?
Я пользуюсь

Цитата(SasaVitebsk @ Apr 3 2014, 12:32)

Да элементарно. Представим себе модем. Скорость rs232 115200, скорость по линии 33600. И ваш fifo по определению переполняется. Дабы этого не происходило, вам надо при заполнении фифо на 90% управлять потоком. То есть высылать XOFF либо снимать RTS. А при освобождении буфера необходимо опять разрешать подгрузку. В целом так будет происходить в любом случае, когда скорость обработки информации меньше чем скорость заполнения буфера.
Так вот в момент определения уровня заполнения буфера, необходимо сравнивать 2 указателя. В общем случае требуется критическая секция.
Фловконтроль для согласования скоростей каналов и программный фифо - несколько разные вещи.
Да, управлять потоком можно от уровня заполненности программного FIFO.
Так вот - для вычисления уровня заполненности FIFO критическая секция совсем не нужна

На
чтение обе стороны могут использовать оба указателя FIFO. На
запись - каждая сторона только свой указатель.
Цитата(andrewlekar @ Apr 3 2014, 12:58)

Это видимо имелось в виду программное прерывание. Правильнее его называть SWI.
Может и правильнее, но в документации Cortex оно называется SVC (SuperVisor Call).