Vector Table

Ralf Corsepius corsepiu at faw.uni-ulm.de
Wed Nov 12 02:47:25 UTC 2003


On Tue, 2003-11-11 at 15:10, James Yates wrote:
> Can anyone tell me why my vector table is empty? When I run the hello
> sample application, it fails to run but think this is something to do
> with a missing vector table.
> 
> See part of map file below:
> 
> .monvects       0x00000000        0x0
>                 0x00000000                _monvects = .
> 
> .monram         0x008d1000        0x0
>                 0x008d1000                _ramstart = .
> 
> .vects          0x00800200        0x0
>                 0x00800200                _vectab = .
>  *(.vects)
>                 0x00800600                . = 0x800600
> 
> .interp
>  *(.interp)
Looks like an excerpt of an sh1/sh2 linker script to me (I am the
original author) ;)

The .monvects sections is assumed to be located in ROM, and therefore is
not initialized by RTEMS images.

The .vects section is assumed to be initialized by the compiler's
startup code and/or RTEMS initialization code.

Background: Our boards, the gensh1-BSP is derived from was equipped with
a ROM containing a gdb-stub, CMON-support (Hitachi debugger) and
board-initialization code. All RAM was battery-backed. We used gdb over
a serial to download images, and could boot either from ROM (through
gdb) or directly from preloaded images in battery backed RAM.

Therefore, we could use 3 different vector tables, 1 in ROM, 1 initial
vector table in battery-backed RAM (treated read-only) and the actual
(dynamic) vector table in RAM.

May-be this explains your confusion about the SH-vector tables.

Ralf





More information about the users mailing list