Estoy tratando de implementar un sistema bastante complejo (¡al menos para mí!) en un mcu Cortex M4: LPC4370. Este tiene instrucciones ADC de alta velocidad (hasta 80 Msps), DMA y DSP (datos múltiples de instrucción única). Esto es lo que quiero hacer:
El reloj MCU es de 204 MHz y, por ahora, supongamos que ADC fs no es una especificación de diseño, pero idealmente me gustaría que fuera lo más alto posible. Así que necesito que el código sea lo más rápido posible. Aquí está la configuración de la memoria MCU.
Y aquí la MATRIZ MULTICAPA AHB
A partir de ahora, estoy considerando más la arquitectura general del firmware y, específicamente, la gestión de la memoria. Algunas consideraciones:
En la guía del usuario de LPC4370 (cap. 2):
Para optimizar el rendimiento de la CPU, ARM Cortex-M4 tiene tres buses para acceso a Instrucción (código) (I), acceso a Datos (D) y acceso al Sistema (S). El espacio de memoria de acceso de I-bus y D-bus se encuentra debajo de 0x2000 0000, el S-bus accede al espacio de memoria desde 0x2000 0000. Cuando las instrucciones y los datos se mantienen en memorias separadas, los accesos a códigos y datos se pueden realizar en paralelo en un ciclo Cuando el código y los datos se mantienen en la misma memoria, las instrucciones que cargan o almacenan datos pueden tardar dos ciclos.
Mi idea en este momento es mantener los datos muestreados en dos búferes diferentes ubicados en dos áreas de memoria diferentes (como LocRam128 y LocRam72) y "ping pong" DMA y M4 entre estas dos áreas. El único problema es que estas son las dos áreas utilizadas para la instrucción (I). Por lo tanto, el código de invitado también debe colocarse aquí, y esto no es bueno para mí. Me pregunto cómo podría usar RAMAHB32 de manera efectiva ya que solo está conectado al bus del sistema M4 (S) y no a datos (D) ni instrucciones (I).
¿Alguna pista?
Ok, ya que no puedes compartir más detalles. Te daré algunos puntos generales:
Espero que esto ayude.
pgvoorhees
instigar
pgvoorhees
instigar
eliot alderson
instigar
Jon
viejo contador de tiempo
viejo contador de tiempo