Hi all,
i am very newbie to this software and hope to find some guidance over here.
Firstly, I have encountered with this error:
Link Error : L1119: Vector allocated at absolute address 0xFFFE overlaps with sections placed in segment .absSeg2. At the same time, over at my prm file, i realised this:
*********************************************************************************************
VECTOR-ALLOCATION SECTION
Address InitValue InitFunction
---------------------------------------------------------------------------------------------
0xFFFE 0x0'Error _Startup
Both should be linked.
Can someone advise me what to do? what am i supposed to do to rectify this error.
Secondly, I would like to ask how to create a interrupt vector table in assembly language.
fyi, my program is written solely in assembly language.
Hoep to hear from someone soon! =)
已解决! 转到解答。
Hello,
For an assembly language program, the most direct method of implementing the vector table is to use absolute addressing for the table. Here is an example for a 9S08SE8 device.
; VECTOR TABLE:
ORG Vrtc
DC.W RTC_ISR ;(25) RTC overflow vector
DC.W -1
DC.W QUITIRQ ;(23) ADC conversion complete vector
DC.W -1
DC.W -1
DC.W QUITIRQ ;(20) Keyboard vector
DC.W -1
DC.W QUITIRQ ;(18) SCI Tx vector
DC.W QUITIRQ ;(17) SCI Rx vector
DC.W QUITIRQ ;(16) SCI error vector
DC.W -1
DC.W QUITIRQ ;(14) TPM2 overflow vector
DC.W -1
DC.W QUITIRQ ;(12) TPM2 Ch 0 vector
DC.W QUITIRQ ;(11) TPM1 overflow vector
DC.W -1
DC.W -1
DC.W -1
DC.W -1
DC.W QUITIRQ ;(6) TPM1 Ch 1 vector
DC.W QUITIRQ ;(5) TPM1 Ch 0 vector
DC.W -1
DC.W QUITIRQ ;(3) LVD vector
DC.W EXT_ISR ;(2) External IRQ vector
DC.W QUITIRQ ;(1) SWI instruction vector
DC.W _Startup ;(0) Reset vector
For this table, the only vectors in use are for the RTC module, the external IRQ, and the reset vector. QUITIRQ label pertains to a single RTI instruction.
If the remainder of the code is relocatable, any reference to vectors within the PRM file should be commented out so that the linker does not attempt to place code.
Regards,
Mac
Hello,
For an assembly language program, the most direct method of implementing the vector table is to use absolute addressing for the table. Here is an example for a 9S08SE8 device.
; VECTOR TABLE:
ORG Vrtc
DC.W RTC_ISR ;(25) RTC overflow vector
DC.W -1
DC.W QUITIRQ ;(23) ADC conversion complete vector
DC.W -1
DC.W -1
DC.W QUITIRQ ;(20) Keyboard vector
DC.W -1
DC.W QUITIRQ ;(18) SCI Tx vector
DC.W QUITIRQ ;(17) SCI Rx vector
DC.W QUITIRQ ;(16) SCI error vector
DC.W -1
DC.W QUITIRQ ;(14) TPM2 overflow vector
DC.W -1
DC.W QUITIRQ ;(12) TPM2 Ch 0 vector
DC.W QUITIRQ ;(11) TPM1 overflow vector
DC.W -1
DC.W -1
DC.W -1
DC.W -1
DC.W QUITIRQ ;(6) TPM1 Ch 1 vector
DC.W QUITIRQ ;(5) TPM1 Ch 0 vector
DC.W -1
DC.W QUITIRQ ;(3) LVD vector
DC.W EXT_ISR ;(2) External IRQ vector
DC.W QUITIRQ ;(1) SWI instruction vector
DC.W _Startup ;(0) Reset vector
For this table, the only vectors in use are for the RTC module, the external IRQ, and the reset vector. QUITIRQ label pertains to a single RTI instruction.
If the remainder of the code is relocatable, any reference to vectors within the PRM file should be commented out so that the linker does not attempt to place code.
Regards,
Mac
Hello and welcome to the fora, Daphne.
A quick search of this forum, just using L1119 yielded quite a few useful results for you.
Please try this search and some others using the box at the bottom of the page. If you're still having difficulties come back here again with further informed questions. Perhaps quoting the other posts.