You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I noticed that the stack-pointer is initialized to just below the end of the stack. Is there a specific reason for this? My understanding is that the stack-pointer is decremented upon each use of the stack, so setting it to TK1_RAM_BASE+TK1_RAM_SIZE (or ORIGIN(RAM) + LENGTH(RAM) in terms of the linker-script), should be optimal.
libcrt0/crt0.S:
/* init stack below 0x40020000 (TK1_RAM_BASE+TK1_RAM_SIZE) */
li sp, 0x4001fff0
Am I missing something?
The text was updated successfully, but these errors were encountered:
I marked this as a potential bug a while ago. It's not serious and doesn't affect much, possibly just wasting a few bytes of RAM.
We have different behaviour in firmware's crt0 and tkey-libs, at least.
This needs some investigation. Maybe it's just a misreading of the RISC-V spec of stack alignment, or maybe it's something else, like I replied in e-mail earlier.
Since we plan on using tkey-libs in firmware, too, this needs to be looked at before that. See tillitis/tillitis-key1#129
I noticed that the stack-pointer is initialized to just below the end of the stack. Is there a specific reason for this? My understanding is that the stack-pointer is decremented upon each use of the stack, so setting it to
TK1_RAM_BASE+TK1_RAM_SIZE
(orORIGIN(RAM) + LENGTH(RAM)
in terms of the linker-script), should be optimal.libcrt0/crt0.S
:Am I missing something?
The text was updated successfully, but these errors were encountered: