I'm using a V2Pro based eval board with a simple set of frimware and software files. The software set includes the Xvectors.S file from the EDK library and I want/expect the code in the xvectors.S file to be loaded into memory with the image.
The vector code is in section .vectors, which is mapped by the linker script to 0xFFFF0000. However the map file shows zero length for the section and the debugger confirms that what is loaded there is the next section after the .vectors section.
map file snippet:
.vectors 0xffff0000 0x0 0xffff0000 __vectors_start = . *(.vectors) 0xffff0000 __vectors_end = .
linker script snippet:
.vectors : { __vectors_start = .; *(.vectors) __vectors_end = .; } > plb_bram_if_cntlr_1
xvectors.S file snippet:
.section .vectors,"ax"
.globl _vectorbase
_vectorbase: // Vector 0x0000, Jump to zero. critical_interrupt 0000, 0
// Vector 0x0100, Critical interrupt. critical_interrupt 0100, 1
It all looks right to me. I must be missing something. I've tried lots of name/case/quoting changes. I can't get the code for the vectors (expanded macro 'critical_interrupt" etc.) to be loaded in memory no matter what I do. Even messed with the case of the .s file extension which very bizarrely (to me anyway) changes whether the C preprocessor is invoked.
Any clues or ideas?? Thanks Steve