¿Qué significa [WEAK] en el código de ensamblaje de inicio de STM32?

6

Estaba leyendo el archivo de inicio STM32F407 en el software Keil para recopilar información. Me enfrenté a este problema: ¿para qué se usa el símbolo [WEAK] ?

Una parte del código en el que se ha utilizado este símbolo es:

Reset_Handler    PROC
                 EXPORT  Reset_Handler             [WEAK]
        IMPORT  SystemInit
        IMPORT  __main

                 LDR     R0, =SystemInit
                 BLX     R0
                 LDR     R0, =__main
                 BX      R0
                 ENDP

Hay otros lugares en el código en los que se ha utilizado este símbolo.

    
pregunta Amin

1 respuesta

16

Dice que la implementación de la función debe estar débilmente vinculada (en lugar de fuertemente vinculada, que es la habitual).

Esto permite proporcionar una implementación "alternativa" de una función, en caso de que no se encuentre ninguna otra (fuertemente vinculada).

Esto se usa a menudo para los manejadores de interrupciones predeterminados en marcos de MCU completos. De esta manera, cuando implementas una interrupción, solo tienes que escribir tu función, sin tener que eliminar la predeterminada de las fuentes, y el enlazador hace el trabajo.

Consulte enlace

    
respondido por el dim

Lea otras preguntas en las etiquetas