Для real time приложения в данном случае вам было бы достаточно просто организовать обмен данными с USB контроллером по прерываниям. Пришли данные - возникло прерывание, вы перебросили их в память и все. Приложение даже подозревать не будет о том каким образом данные в памяти появляются.
Если предположить что скорость обмена данными будет около 1 Мбайта в секунду (что мало вероятно при общении с PC, обычно меньше), то при размере эднпоинта 64 байта прошивка должна 1000000/64 = 15625 раз в секунду проработать прерывание. Предположим что весь код прерывания у вас занимает не более 1000 тактов процессора (тоесть вход в него, определение что его вызвало, чтение в цикле регистра данных эндпоинта и запись в память и т.п.), тогда в секунду у вас при заданной скорости обмена данными примерно будет потрачено процессором 15625000 тактов, что при тактовой частоте MCU = 48МHz есть менее 30% процессорного времени. 70% времени остается для Вашего real time приложения.
|