Digamos que programo un Delfino con este fragmento de código C:
int main () {
while (true) {
byte packet[1536];
readPacketFromUSB(packet);
writePacketToSerial(packet);
}
}
¿Qué tan rápido puedo ejecutar el bucle, copiando 1536 bytes del USB a la serie?
Desde la hoja de datos del microcontrolador TMS320F28377S :
Puerto serie con búfer multicanal (McBSP):
Velocidad de reloj de McBSP, \ $ CLKG = \ frac {CLKSRG} {1 + CLKGDV} \ $
donde la fuente de CLKSRG podría ser LSPCLK, CLKX o CLKR.
Parece que la configuración más rápida disponible es CLKGDV = 1 y LSPCLK = 200 MHz.
Por lo tanto, \ $ CLKG = 100 MHz \ $ o \ $ 100 Mbps \ $ velocidad en baudios.
Considerando solo los tiempos de lectura / escritura, mi bucle debería ejecutarse a \ $ \ frac {100 Mbps} {2 * (1536 bytes)} ≈ 4.1 KHz \ $.
¿Suena 4.1 KHz? ¿Hay una fuente importante de gastos generales que me faltan?