cancel
Showing results for 
Search instead for 
Did you mean: 

IVT [2]

econfalonieri
Associate II
Posted on November 03, 2003 at 06:12

IVT [2]

6 REPLIES 6
econfalonieri
Associate II
Posted on May 17, 2011 at 11:35

Dear Sirs, i made a mistake in my previous request:

I need to locate the Interupt Vector Table in the sector F3 (010000 - 01FFFF) on a 128 Kbyte memory ST92F150.

I know that by correctly loading ISR register I may correctly address a IVT in that location but I need to know how to locate there the IVT. How to comunicate to the linker to place there the table.

This is to make a porting of an application developped for ST92F120 on the new ST92F150.

May you tell me how to manage this task?

Thank'you in advance.

E.C.
kapil
Associate II
Posted on May 17, 2011 at 11:35

You can locate your IVT in flash3, to do that you need to change the .ld file a littel bit. You need to change the maping of .init section from ''anything'' to flash3 and you also have to fill ISR register with 0x1, the segement where the IVT is located

kapil
Associate II
Posted on May 17, 2011 at 11:35

But I believe .init section contains our whole Interrupt Vector Table

That’s true, it also contains the reset vector and it must be at physically address 0x000000; if we keep whole .init section in sector 0 then IVT will also remain there. What do you say?

ritu
Associate II
Posted on May 17, 2011 at 11:35

Apart from that you need to have one more file (.spp) whose init section lies in segment0 only and which makes a jump to segment _reset (segment 1) . As bootrom picks up the reset vector from beginning location of segment0.So from there a jump to segment1 is essential. And be careful to place your interrupt service routines also in segment1 (segment where you place your IVT). Attached here is the example code with IVT and interrupt service routines mapped in segment1 and remaining code in segment0.

Ritu
ritu
Associate II
Posted on May 17, 2011 at 11:35

yes if we map whole of the .init section in sector0 then IVT will also be placed there, so only initial reset vector is to be placed in sector0 and from there a jump to sector having IVT is made. (jps seg(__Reset), sof(__Reset)will do the job. )

The hex file will look something like 00 02 3F C1 00 24 (Here 00 02 is reset vector then at location 02 jump to sector having _reset is being made (segment 1 in this case).

Then at segment 1 we will have 00 24 and the rest of IVT.

Ritu
kapil
Associate II
Posted on May 17, 2011 at 11:35

If we have placed the IVT in sector 3 (NOT in sector 0) then don’t you think the IVT should also be visible only in sector 3, NOT in sector 0?