Características de Cortex-M3
Alto rendimiento Muchas instrucciones son de un solo ciclo, incluidas las relacionadas con la multiplicación. Y en términos de rendimiento general, Cortex-M3 es comparable a la mayoría de las otras arquitecturas. El bus de instrucciones y el bus de datos están separados y la adquisición de valores y el acceso interno se pueden realizar en paralelo. La llegada de Thumb-2 se despide de la antigua generación de conmutación de estado. Estado ARM y estado Thumb de 16 bits. Esto simplifica el desarrollo de software y el mantenimiento del código, lo que permite que los productos lleguen al mercado más rápidamente. El conjunto de instrucciones Thumb-2 aporta más flexibilidad a la programación. Muchas operaciones de datos ahora se pueden realizar con código más corto, lo que significa que Cortex-M3 tiene una mayor densidad de código y requiere menos memoria. Las instrucciones se procesan como 32 bits. Se pueden recuperar hasta dos instrucciones en el mismo ciclo, dejando más ancho de banda para la transmisión de datos. El diseño de Cortex-M3 permite que el microcontrolador funcione a altas frecuencias (la tecnología moderna de fabricación de semiconductores puede garantizar velocidades superiores a 100MHz). Incluso funcionando a la misma velocidad, los ciclos por instrucción (CPI) de CM3 son menores, por lo que se puede realizar más trabajo al mismo MHz; por otro lado, la misma aplicación requiere menos tiempo de CPU en CM3.
2.11.2 Función avanzada de procesamiento de interrupciones El controlador de interrupciones vectoriales anidadas incorporado admite hasta 240 entradas de interrupciones externas. La función de interrupción vectorizada reduce drásticamente la latencia de la interrupción porque ya no se requiere software para determinar el origen de la interrupción. El anidamiento de interrupciones también se implementa a nivel de hardware y no requiere código de software para implementarlo. Cortex-M3 empuja automáticamente a R0-R3, R12, LR, PSR y PC al ingresar a la rutina de servicio de excepción, y los abre automáticamente al regresar. No sólo acelera la respuesta a las interrupciones, sino que también elimina la necesidad de código en lenguaje ensamblador (detallado en el Capítulo 8). NVIC admite el establecimiento de diferentes prioridades para cada interrupción, lo que hace que la gestión de interrupciones sea extremadamente flexible. La implementación más amplia debe admitir al menos 8 niveles de prioridad y puede modificarse dinámicamente. Hay otras dos formas de optimizar la respuesta a las interrupciones: el "mecanismo de interrupción mordedura de cola" y el "mecanismo de interrupción tardía". Algunas instrucciones que requieren más ciclos para ejecutarse pueden interrumpirse y reanudarse como si fueran una secuencia de instrucciones. Estas instrucciones incluyen cargar múltiples registros (LDM), almacenar múltiples registros (STM), PUSH que involucra múltiples registros y POP que involucra múltiples registros. A menos que el sistema esté completamente bloqueado, NMI (interrupción no enmascarable) responderá a la solicitud tan pronto como se reciba. Para muchas aplicaciones críticas para la seguridad, la NMI es esencial (como el apagado de emergencia cuando una reacción química está a punto de salirse de control).
El Cortex-M3 de bajo consumo requiere una pequeña cantidad de puertas lógicas, por lo que es inherentemente adecuado para aplicaciones que requieren un bajo consumo de energía (potencia inferior a 0,19 mW/MHz. Admite modos de ahorro de energía (). SLEEPING y SLEEPDEEP) en el nivel central. Al utilizar "Esperar instrucción de interrupción (WFI)" y "Esperar instrucción de evento (WFE)", el núcleo puede entrar en modo de suspensión y despertarse de diferentes maneras. Además, el reloj del módulo se suministra por separado en la medida de lo posible, por lo que la mayoría de los "grupos funcionales" del CM3 se pueden detener durante el sueño. CM3 está diseñado para ser completamente estático, sincrónico y sintetizable. Cualquier proceso de semiconductores estándar o de baja potencia se puede consumir de forma segura.
Características del sistema: el sistema admite la operación de "banda de direccionamiento de bits" (una "versión significativamente mejorada" del mecanismo de direccionamiento de 8051 bits), modo big-endian invariante en bytes y admite acceso a datos no alineados. Tiene un mecanismo avanzado de manejo de fallas y admite múltiples tipos de excepciones y fallas, lo que facilita el diagnóstico de fallas. Al introducir el mecanismo de puntero de pila acumulada, se traza una línea clara entre la pila utilizada por los programas del sistema y la pila utilizada por los programas del usuario. Si se combina con la MPU opcional, el procesador puede satisfacer plenamente aplicaciones que tienen requisitos estrictos en cuanto a robustez y confiabilidad del software.
Soporte de depuración Además de admitir JTAG tradicional, también admite interfaces de depuración de línea serie más nuevas y mejores. Basado en la solución de depuración CoreSight, el procesador puede acceder al estado del procesador y al contenido de la memoria incluso cuando está en ejecución.
Soporte integrado para hasta 6 puntos de interrupción y 4 puntos de vigilancia de datos. Opcionalmente se puede utilizar un ETM para el seguimiento de instrucciones. El seguimiento de datos puede utilizar DWT En términos de depuración, se han agregado las siguientes funciones nuevas, incluido el registro de estado de falla, nueva excepción de falla y operación de parche flash, lo que simplifica enormemente la depuración. El módulo ITM opcional permite que el código de prueba genere información de depuración y es tan cómodo de usar como "simplemente toma tu bolso y muévete".