mirror of
https://bitbucket.org/librepilot/librepilot.git
synced 2025-01-18 03:52:11 +01:00
irq_stack: correct one word overlap of _irq_stack_top
The previous fix in r652 was _almost_ right. There was still a one word (4-byte) overlap between _irq_stack_top and the start of the data segment. _irq_stack_end + _irq_stack_size leaves the '.' pointer at the word immediatly after the stack. This commit corrects this error and places _irq_stack_top on the last word _inside_ the reserved space for the irq stack. [Before] $ ./tools/arm-2009q3/bin/arm-none-eabi-nm -n ./build/openpilot/OpenPilot.elf ... 20000000 A SRAM_BASE 20000000 B _irq_stack_end 20000400 d LED_GPIO_PORT <--- overlap 20000400 B _irq_stack_top <--- overlap 20000400 D _sdata 20000408 d ADC_GPIO_PORT ... [After] $ ./tools/arm-2009q3/bin/arm-none-eabi-nm -n ./build/openpilot/OpenPilot.elf ... 20000000 A SRAM_BASE 20000000 B _irq_stack_end 200003fc B _irq_stack_top 20000400 d LED_GPIO_PORT 20000400 D _sdata 20000408 d ADC_GPIO_PORT ... git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@668 ebee16cc-31ac-478f-84a7-5cbb03baadba
This commit is contained in:
parent
ac80771774
commit
918250868b
@ -275,7 +275,8 @@ SECTIONS
|
||||
_irq_stack_end = . ;
|
||||
. = . + _irq_stack_size ;
|
||||
. = ALIGN(4);
|
||||
_irq_stack_top = . ;
|
||||
_irq_stack_top = . - 4 ;
|
||||
. = ALIGN(4);
|
||||
} >RAM
|
||||
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user