Conocimientos complementarios antes de utilizar Sys.c (actualizado continuamente)

/* ---Arquitectura de registro STM32---


 

Algunos registros comunes de la arquitectura de registros STM32:

    SCB: pertenece al área de registro de control global en la arquitectura de registro STM32 y juega un papel importante en el control de toda la MCU.

    FLASH: La memoria flash es responsable de almacenar el código del programa y ejecutar programas. En STM32, FLASH se divide en diferentes áreas que pertenecen al chip y tiene diferentes estados de protección.

    SRAM: La memoria estática de acceso aleatorio (SRAM) es una alternativa a la memoria dinámica de acceso aleatorio (DRAM). No es necesario actualizar la SRAM y tiene mejor velocidad y confiabilidad.

    EXTI: El controlador externo de interrupciones y eventos permite interrumpir eventos, señales y comunicación con E/S externas.

    NVIC: el controlador de interrupción vectorial integrado (NVIC) maneja las interrupciones y el NVIC tiene un control de prioridad que permite procesar la interrupción de mayor prioridad sin necesidad de insertarla.

    RCC: El controlador de reloj (RCC) es responsable de controlar los relojes dentro del chip. Proporciona un reloj externo de alta velocidad, un reloj PLL y la opción de utilizar un reloj RC interno.

    GPIO: El puerto de E/S de propósito general (GPIO) proporciona la entrada y salida del chip. Específicamente, GPIO está conectado a pines dentro del chip y generalmente se usa para realizar operaciones de control de entrada y salida en circuitos de chip en forma digital.

    TIM: Un temporizador (TIM) se utiliza para temporización, contadores y otros procesamientos. El TIM puede realizar funciones de temporización y conteo, como la generación de PWM (modulación de ancho de pulso) y la activación de contadores desde otros temporizadores para implementar circuitos de temporización complejos.

    UART: La interfaz de comunicación serial (UART) permite que el chip envíe/reciba comunicación externamente. El UART tiene una velocidad de comunicación adaptable, lo que permite que los datos se comuniquen bidireccionalmente entre los dos UART.

    ADC: un convertidor analógico a digital (ADC) convierte una señal analógica en una señal digital que el chip puede leer y procesar.

    I2C: Se puede utilizar una interfaz serie (I2C) para comunicarse con otros dispositivos, para el control de entrada/salida del chip y para la comunicación con otros chips/logotipos.

    AFIO: proporciona un método de mapeo de IO flexible para chips STM32

    SysTick: se utiliza comúnmente para la gestión de retrasos y tiempos en sistemas integrados.

Estos y otros registros constituyen la arquitectura de registro completa de STM32. Para los desarrolladores de STM32, comprender la función y el uso de cada registro puede comprender mejor la estructura general de los recursos del chip, depurar y reparar problemas de hardware.

*/

/* ---SCB---


 

Registros clave y banderas contenidas en el SCB (Bloque de control del sistema):

1 registro CPUID: se utiliza para ver el modelo y el número de versión del núcleo del procesador.

2 registro INTCTRL: se utiliza para controlar el procesamiento y la prioridad de interrupciones, incluido el control de interrupciones de la prioridad NVIC y el temporizador SysTick.

3 registro ACTLR: se utiliza para habilitar funciones opcionales de algunas arquitecturas ARM.

4 Registro SCR: se utiliza para controlar el estado y el comportamiento del procesador, incluida la activación/desactivación de ISR, la activación/desactivación del modo de bajo consumo, etc.

5 Registro CCR: se utiliza para controlar el coprocesador y el estado del conjunto de instrucciones del procesador, incluida la activación/desactivación de la FPU, el coprocesador y el modo Thumb2.

6 Registro SHCSR: se utiliza para controlar el estado permanente del hardware del sistema, incluida la habilitación/deshabilitación de excepciones.

7 Registro DFSR: Se utiliza para indicar el estado y la información de fallas de la memoria de datos.

8 registros MMFSR y BFSR: se utilizan para indicar los derechos de acceso y el estado de datos e instrucciones, incluidas excepciones de acceso a la memoria, excepciones de acceso al bus y excepciones de instrucciones indefinidas.

9 Registro ISR: se utiliza para indicar excepciones o interrupciones activas y también se puede utilizar para borrar excepciones e interrupciones pendientes.

10 Registro VTOR: se utiliza para almacenar la dirección base de la tabla de vectores.

11 Registro AIRCR: se utiliza para almacenar el valor de estado predeterminado después de restablecer el procesador, y el procesador se puede restablecer a través de este registro.

12 Registro STIR: se utiliza para la interrupción del activador de software; este registro se puede utilizar para iniciar una nueva solicitud de interrupción durante la respuesta a la interrupción.

13 Registro SHP: se utiliza para controlar la prioridad de interrupción NVIC, incluida la configuración del grupo de interrupción y la configuración de la prioridad de interrupción.

14 Registro CPACR: se utiliza para controlar los derechos de acceso del coprocesador, incluida la habilitación/deshabilitación del módulo VFP y el módulo NEON, etc.

15 Registro CFSR: se utiliza para indicar el estado y la información de falla del procesador, incluidas excepciones del procesador, excepciones de acceso a la memoria, excepciones de acceso al bus, etc.

16 Registro HFSR: se utiliza para registrar información relevante cuando el procesador tiene una excepción de hardware.

17 Registro DFSR: se utiliza para indicar información relevante cuando el acceso a los datos es anormal.

18 registros MMAR y BFAR: se utiliza para indicar la información relevante de una dirección de memoria anormal.

*/

/* ---INCLUIR---



 

1 AFIO_MAPR: registro de mapeo IO, utilizado para configurar la función de multiplexación GPIO.

2 AFIO_EXTICR1-4: Registros de control de línea de interrupción externa, utilizados para configurar los pines GPIO conectados a la línea de interrupción externa.

3 AFIO_MAPR2: Se utiliza para configurar el esquema de acceso Flash del sistema.

4 AFIO_EVCR: registro de control de eventos, utilizado para controlar eventos y salida de eventos.

5 AFIO_MAPR_SWJ_CFG: registro de configuración de pin JTAG, utilizado para configurar el modo JTAG SWJ. Este modo se utiliza para la depuración de JTAG, la depuración en modo de depuración de un solo cable y las pruebas a nivel de placa.

6 AFIO_MAPR_CAN_REMAP: registro de mapeo de la interfaz CAN, utilizado para configurar el mapeo de multiplexación de la interfaz CAN.

*/


 

/* ---NVIC---



 

1 NVIC_ISER0-NVIC_ISER3: registros de habilitación de interrupciones NVIC, utilizados para controlar el estado de habilitación de cada interrupción.

2 NVIC_ICER0-NVIC_ICER3: registros de desactivación de interrupciones NVIC, utilizados para controlar el estado de desactivación de cada interrupción.

3 NVIC_IPR0-NVIC_IPR95: registro de prioridad de interrupción NVIC, utilizado para configurar el valor de prioridad de cada interrupción, donde cada registro contiene la prioridad de 4 interrupciones.

4 NVIC_STIR: el software NVIC activa el registro de interrupción, que se utiliza para generar una nueva solicitud de interrupción inmediatamente después de que finaliza la respuesta de interrupción actual del procesador.

5 NVIC_ICPR0-NVIC_ICPR3: registros de borrado de interrupciones NVIC, utilizados para borrar el estado pendiente de cada interrupción para la siguiente respuesta de interrupción.

6 NVIC_ISPR0-NVIC_ISPR3: registros pendientes de interrupción NVIC, utilizados para suspender solicitudes de interrupción para mantener el estado de prioridad de interrupción.

7 NVIC_IABR0-NVIC_IABR3: registros de identificación de actividad de interrupción de NVIC, utilizados para determinar el estado de actividad de cada interrupción.

8 NVIC_IPR: Registro de prioridad NVIC.

9 NVIC_ITCR: Registro de habilitación de acceso a datos periféricos y seguimiento de instrucciones.

10 NVIC_ITNS: registro de habilitación de entrada de interrupción.

*/


 

/* ---RCC---




 

1 RCC_CR: Registro de control de reloj, utilizado para controlar la configuración y habilitar el estado de la fuente de reloj interna, y se puede configurar para habilitar fuentes de reloj HSE, HSI, PLL, etc.

2 RCC_CFGR: Registro de configuración de reloj, utilizado para configurar y controlar la división y multiplicación de frecuencia del reloj del sistema del chip STM32, para ajustar la frecuencia del reloj del sistema y de cada reloj periférico.

3 RCC_APB1ENR: registro de habilitación del reloj del bus APB1, que controla el estado de habilitación del reloj periférico en el bus APB1 y puede encender o apagar el reloj periférico correspondiente.

4 RCC_APB2ENR: registro de habilitación del reloj del bus APB2, que controla el estado de habilitación del reloj periférico en el bus APB2 y puede encender o apagar el reloj periférico correspondiente.

5 RCC_AHBENR: registro de habilitación del reloj del bus AHB, que controla el estado de habilitación del reloj periférico en el bus AHB y puede activar o desactivar el reloj periférico correspondiente.

6 RCC_CSR: Registro de estado y control de reloj, utilizado para almacenar y controlar el estado y restablecer la información del reloj del sistema.

*/




 

/* ---SysTick---

    1 SYSTICK_CTRL Registrarse

    Este registro (dirección: 0xE000E010) se utiliza para controlar el comportamiento del temporizador SysTick. Entre ellos, el significado de cada uno es el siguiente:

        Bit 0: HABILITAR, 1 significa habilitar el temporizador SysTick, 0 significa deshabilitar.

        Bit 1: TICKINT, 1 significa habilitar la interrupción del temporizador SysTick, 0 significa deshabilitar.

        Bit 2: CLKSOURCE, 1 significa usar el reloj del procesador como fuente de reloj de SysTick, 0 significa usar la fuente de reloj externa como fuente de reloj de SysTick.

        Bit 16~23: RESERVADO, bit reservado, el valor escrito se ignorará.

        Bit 24 ~ 31: COUNTFLAG, 1 indica que el temporizador SysTick ha contado hasta 0 (es decir, SysTick se desborda) y 0 indica que el contador SysTick no se ha desbordado.

       

    2 SYSTICK_LOAD Registrarse

    Este registro (dirección: 0xE000E014) se utiliza para configurar el valor de recarga del temporizador SysTick.

        El contador del temporizador SysTick cuenta regresivamente y se emite una interrupción cada vez que el valor del conteo disminuye en 1.

        El registro de carga SYSTICK_LOAD se puede utilizar para cargar valores de recarga. Después de cada interrupción, el contador se restablecerá al nuevo valor cargado.

    3 SYSTICK_VAL Registro

    Este registro (dirección: 0xE000E018) se utiliza para leer el valor actual del contador SysTick.

        Debido a que el contador SysTick cuenta atrás, su valor es el conteo desde LOAD hasta 0.

    4 SYSTICK_CALIB Registrarse

    Este registro (dirección: 0xE000E01C) contiene el registro de función del temporizador SysTick. Entre ellos, el significado de cada uno es el siguiente.

        Bit 0: TENMS, este registro de solo lectura contiene el número de ciclos que el contador resta de 1 a 0 de LOAD, este valor se puede usar para calibrar la precisión de la fuente de reloj externa.

        Bit 1~23: RESERVADO, bit reservado, el valor escrito se ignorará.

        Bit 23: SKEW, 1 significa que la fuente de reloj externo actual tiene una pendiente (Skew), 0 significa que no hay pendiente. Skew indica la fluctuación o el salto del reloj durante el mecanismo IFF (indicador de inserción y eliminación).

        Bit 24: NOREF, 1 indica que no se puede acceder a la fuente de reloj externa, el reloj se puede usar para uso interno, pero no se puede usar para la calibración de la fuente de reloj, 0 indica que se puede acceder a la fuente de reloj externa.

        Bit 25: RESERVADO, bit reservado, se ignorará el valor escrito.

        Bit 26: SKEWCTL, 1 significa habilitar el control de pendiente IFF, 0 significa deshabilitar.

        Bit 27~31: RESERVADO, bit reservado, el valor escrito se ignorará.


 

*/

#incluir <stdio.h>

int principal (vacío)

{

    printf("hola palabra!!!");

    devolver 0;

}

Supongo que te gusta

Origin blog.csdn.net/JohnJill/article/details/130546189
Recomendado
Clasificación