¡Es interesante! Busqué encontrar un artículo claro, pero no pude encontrar un artículo claro para esto. También encontré este enlace: ARM Cortex-R y este enlace: Cortex-R Series pero no están exactamente claros. en la página wiki escribió:
Los núcleos están diseñados para un uso robusto en tiempo real.
y en la página de Cortex-R escribió:
Los procesadores ARM Cortex®-R en tiempo real ofrecen soluciones informáticas de alto rendimiento para sistemas embebidos donde se requiere confiabilidad, alta disponibilidad, tolerancia a fallas, mantenibilidad y respuestas en tiempo real.
y estos:
- Alto rendimiento: procesamiento rápido combinado con una alta frecuencia de reloj
- En tiempo real: el procesamiento cumple con las restricciones de tiempo real en todas las ocasiones
- Seguro: sistemas confiables y confiables con alta resistencia a errores
- Rentable: características óptimas para rendimiento, potencia y área
Para el número uno: por ejemplo, para el Cortex-M, recientemente el NXP fabricó la serie NXP_LPC4XXX que tiene una velocidad de reloj de 200Mhz y para el Cortex-R, puede ver esto: Microcontroladores TMS570LS ARM Cortex ™ -R4 , es divertido porque tiene 180Mhz velocidad de reloj.
Para el número dos: está claro.
Para el número tres: ¡no está claro! ¿Qué significa esta oración? significa que el Cortex-M no es seguro / confiable?
Para el número cinco: Bueno, ¡creo que es solo un reclamo!
¿Quién tiene la experiencia para trabajar en esta serie (Cortex-R)? ¿Cuál es tu opinión al respecto? ¿Cuál es la diferencia profunda y exacta entre la serie Cortex-M y la serie Cortex-R?
Respuestas:
Divertido, yo uso ambos en el trabajo :)
El Cortex-M3 (usamos STM32s) es un MCU de propósito general que es lo suficientemente rápido y grande (almacenamiento flash) para las aplicaciones integradas más complejas.
Sin embargo, el R4 es una bestia completamente diferente, al menos la versión de Texas Instruments que uso: el RM42, similar al TMS570. El RM42 es un Cortex-R4 con dos núcleos que se ejecutan en "paso de bloqueo" para redundancia, lo que significa que un núcleo está 2 instrucciones por delante del otro y se utiliza para algunas comprobaciones y correcciones de errores. Además, uno de los núcleos está (físicamente) reflejado / volteado y girado 90 grados para mejorar la resistencia a la radiación / ruido :)
El RM42 funciona a una velocidad de reloj más alta que el STM32 (100MHz vs 72MHz) y tiene un conjunto de instrucciones ligeramente diferente y realiza algunas de las instrucciones más rápido que el M3 (por ejemplo, las instrucciones de división se ejecutan en un ciclo en el R4, no estoy seguro de que lo hagan en M3)
Los temporizadores HW son MUY precisos en comparación con Cortex-M3. Por lo general, necesitamos un desplazamiento estático para corregir la deriva en los M3, no así con el R4 :)
Donde llamaría a un Cortex-M3 un MCU de propósito general, llamaría al Cortex-R4 un MCU complejo en tiempo real / seguridad. Si no me equivoco, el RM42 cumple con SIL3 ...
En mi opinión, el R4 es un gran paso en la complejidad, incluso si no está planeando usar las características de seguridad / tiempo real.
Un muy buen ejemplo de la diferencia de complejidad: el periférico SPI tiene 9 controles y registros de estado en el STM32, mientras que el RM42 tiene 42. Es así con todos los periféricos :)
EDITAR:
Por lo que vale, en mis casos de uso, el Cortex-R4 @ 100MHz suele ser un 50-100% más rápido que el Cortex-M3 @ 72MHz cuando se realizan exactamente las mismas tareas. ¿Quizás porque el R4 tiene cachés de datos e instrucciones?
Otra comparación, se ejecutan unas 1000 líneas de código C y ASM en el reinicio antes de llegar a la llamada
main()
con el subconjunto de las características de seguridad que uso actualmente: D y no inicialización periférica ni nada, solo inicio y autocomprobación (CPU, RAM, Flash ECC, etc.).Esta página tiene más detalles.
fuente
D cache
yI cache
eran abreviaturas para el caché de datos e instrucciones.Familia ARM Cortex-R (v7-R)
Familia ARM Cortex-M (v7-M)
fuente
Ten un buen artículo sobre aquí .
Las series Cortex-R y cortex-M están destinadas a diferentes requisitos y para diferentes aplicaciones. Es importante conocer los parámetros y las características que los separan, ya que podría haber aplicaciones en las que ambos puedan encajar. Este documento está dirigido a tal escenario y ayuda a los Diseñadores a elegir. El objetivo final es ayudar a los Diseñadores o Desarrolladores a comprender las Arquitecturas de ARM.
fuente