$(LD) -o $(APP)_test.out $(LDFLAGS) reset.o \ core.o \ tclibS.o \ tclibC.o \ $(APP)_test.o
$(LD) -o $(APP)_test.out $(LDFLAGS) reset.o \ tclibC.o \ tclibS.o \ core.o \ $(APP)_test.o
Weird bug I encountered today and wasnt certain why changing the link order
The former results in a bug where global variables arent being updated. A breakpoint set in stm32_nvic_systick_isr and single stepping with prints of strSystick structure shows that, the structure elements arent being updated (incremented). However a dump of the asm code (arm-linux-gnueabi-objdump -d core_test.out) shows the correct instructions.
Changing the linke order to the latter corrects the problem. I cant understand this. strSystick is defined in IE_stm32.h and as such would be in core.o which is sourced to IE_stm32.c. Thats also where the handler stm32_nvic_systick_isr resides so this isnt making sense.
No comments:
Post a Comment