What does [WEAK] mean in an STM32 startup file?
Clash Royale CLAN TAG#URR8PPP
up vote
2
down vote
favorite
I was reading the STM32F407 startup file in Keil software to gather some information. I faced this problem: What is the [WEAK]
symbol used for?
A part of the code that this symbol has been used in is:
Reset_Handler PROC
EXPORT Reset_Handler [WEAK]
IMPORT SystemInit
IMPORT __main
LDR R0, =SystemInit
BLX R0
LDR R0, =__main
BX R0
ENDP
There are other places in the code that this symbol has been used in. I just bring a part as an instance.
stm32 assembly keil
add a comment |Â
up vote
2
down vote
favorite
I was reading the STM32F407 startup file in Keil software to gather some information. I faced this problem: What is the [WEAK]
symbol used for?
A part of the code that this symbol has been used in is:
Reset_Handler PROC
EXPORT Reset_Handler [WEAK]
IMPORT SystemInit
IMPORT __main
LDR R0, =SystemInit
BLX R0
LDR R0, =__main
BX R0
ENDP
There are other places in the code that this symbol has been used in. I just bring a part as an instance.
stm32 assembly keil
AreIMPORT SystemInit
andIMPORT __main
really indented as shown here?
â Peter Mortensen
42 mins ago
add a comment |Â
up vote
2
down vote
favorite
up vote
2
down vote
favorite
I was reading the STM32F407 startup file in Keil software to gather some information. I faced this problem: What is the [WEAK]
symbol used for?
A part of the code that this symbol has been used in is:
Reset_Handler PROC
EXPORT Reset_Handler [WEAK]
IMPORT SystemInit
IMPORT __main
LDR R0, =SystemInit
BLX R0
LDR R0, =__main
BX R0
ENDP
There are other places in the code that this symbol has been used in. I just bring a part as an instance.
stm32 assembly keil
I was reading the STM32F407 startup file in Keil software to gather some information. I faced this problem: What is the [WEAK]
symbol used for?
A part of the code that this symbol has been used in is:
Reset_Handler PROC
EXPORT Reset_Handler [WEAK]
IMPORT SystemInit
IMPORT __main
LDR R0, =SystemInit
BLX R0
LDR R0, =__main
BX R0
ENDP
There are other places in the code that this symbol has been used in. I just bring a part as an instance.
stm32 assembly keil
stm32 assembly keil
edited 5 mins ago
Peter Mortensen
1,58031422
1,58031422
asked 4 hours ago
Amin
725
725
AreIMPORT SystemInit
andIMPORT __main
really indented as shown here?
â Peter Mortensen
42 mins ago
add a comment |Â
AreIMPORT SystemInit
andIMPORT __main
really indented as shown here?
â Peter Mortensen
42 mins ago
Are
IMPORT SystemInit
and IMPORT __main
really indented as shown here?â Peter Mortensen
42 mins ago
Are
IMPORT SystemInit
and IMPORT __main
really indented as shown here?â Peter Mortensen
42 mins ago
add a comment |Â
1 Answer
1
active
oldest
votes
up vote
5
down vote
accepted
It says the implementation of the function should be weakly linked (as opposed to strongly linked, which is the usual).
This allows providing a "fallback" implementation of a function, in case no other (strongly linked) is found.
This is often used for default interrupt handlers in bare-metal MCU frameworks. This way, when you implement an interrupt, you just have to write your function, without having to remove the default one from the sources, and the linker does the job.
See https://en.m.wikipedia.org/wiki/Weak_symbol
(Perhaps link to the non-mobile version instead, en.wikipedia.org/wiki/Weak_symbol)
â Peter Mortensen
40 mins ago
add a comment |Â
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
up vote
5
down vote
accepted
It says the implementation of the function should be weakly linked (as opposed to strongly linked, which is the usual).
This allows providing a "fallback" implementation of a function, in case no other (strongly linked) is found.
This is often used for default interrupt handlers in bare-metal MCU frameworks. This way, when you implement an interrupt, you just have to write your function, without having to remove the default one from the sources, and the linker does the job.
See https://en.m.wikipedia.org/wiki/Weak_symbol
(Perhaps link to the non-mobile version instead, en.wikipedia.org/wiki/Weak_symbol)
â Peter Mortensen
40 mins ago
add a comment |Â
up vote
5
down vote
accepted
It says the implementation of the function should be weakly linked (as opposed to strongly linked, which is the usual).
This allows providing a "fallback" implementation of a function, in case no other (strongly linked) is found.
This is often used for default interrupt handlers in bare-metal MCU frameworks. This way, when you implement an interrupt, you just have to write your function, without having to remove the default one from the sources, and the linker does the job.
See https://en.m.wikipedia.org/wiki/Weak_symbol
(Perhaps link to the non-mobile version instead, en.wikipedia.org/wiki/Weak_symbol)
â Peter Mortensen
40 mins ago
add a comment |Â
up vote
5
down vote
accepted
up vote
5
down vote
accepted
It says the implementation of the function should be weakly linked (as opposed to strongly linked, which is the usual).
This allows providing a "fallback" implementation of a function, in case no other (strongly linked) is found.
This is often used for default interrupt handlers in bare-metal MCU frameworks. This way, when you implement an interrupt, you just have to write your function, without having to remove the default one from the sources, and the linker does the job.
See https://en.m.wikipedia.org/wiki/Weak_symbol
It says the implementation of the function should be weakly linked (as opposed to strongly linked, which is the usual).
This allows providing a "fallback" implementation of a function, in case no other (strongly linked) is found.
This is often used for default interrupt handlers in bare-metal MCU frameworks. This way, when you implement an interrupt, you just have to write your function, without having to remove the default one from the sources, and the linker does the job.
See https://en.m.wikipedia.org/wiki/Weak_symbol
answered 4 hours ago
dim
12.6k22263
12.6k22263
(Perhaps link to the non-mobile version instead, en.wikipedia.org/wiki/Weak_symbol)
â Peter Mortensen
40 mins ago
add a comment |Â
(Perhaps link to the non-mobile version instead, en.wikipedia.org/wiki/Weak_symbol)
â Peter Mortensen
40 mins ago
(Perhaps link to the non-mobile version instead, en.wikipedia.org/wiki/Weak_symbol)
â Peter Mortensen
40 mins ago
(Perhaps link to the non-mobile version instead, en.wikipedia.org/wiki/Weak_symbol)
â Peter Mortensen
40 mins ago
add a comment |Â
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2felectronics.stackexchange.com%2fquestions%2f403511%2fwhat-does-weak-mean-in-an-stm32-startup-file%23new-answer', 'question_page');
);
Post as a guest
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Are
IMPORT SystemInit
andIMPORT __main
really indented as shown here?â Peter Mortensen
42 mins ago