This is the mail archive of the crossgcc@sources.redhat.com mailing list for the crossgcc project.

See the CrossGCC FAQ for lots more infromation.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

What is a vector file?


In studying a boot prom for an Hitachi SH032 along
with the source code, I am beginning to get a good
understanding of how the GNU AS, LD works. However,
when I read in the boot prom I have into my programmer
I find locations 0x0000 - 0x01C7 filled with various
hex numbers that I don't know what they are.  I do
know my code begins at 0x01C8.   While studying the
source code I believe that what I have at the 
beginning of the boot prom is something generated by 
this one source file called Vectors.S.  But what is
this file?  It seems as though it is setting up the
Hitachi microcontroller before it begins executing
code.  Here is some sections of this vector.S file...

/*----------------------------------------------------
FILE NAME:
  Vectors.S
FUNCTION:
  This file contains the vectory overlay for the
SH7000
  microcontroller.
ROUTINES:
NOTES:
  This file references 2 other interrupt handlers
  1. _start - entry point of program
  2. _interruptDispatch - for soft vectoring all the
other interrupts
----------------------------------------------------*/

/* ...Global Variables:
*/

  .extern ShTest
  .extern _interruptDispatchRsv
  .extern _interruptDispatch4
  .extern _interruptDispatch6

...this continues down for many many lines of this
stuff
....and then I see this....

  .extern _stack

/* ...Local Variables:
*/

/* ...Routines:
*/
  .section VECTORS
  .globl _vectors

_vectors:
 .int  ShTest       ! 000-003 0  Power up Reset Vector
 .int  _stack       ! 004-007 1  Power Up Stack
 .int  ShTest       ! 008-00B 2  Manual Reset Vector
 .int  _stack       ! 00C-00F 3  Manual Reset Stack
 .int  _interruptDispatch4      ! 010-013 4  Invalid
Instruction
 .int  _interruptDispatchRsv     ! 014-017 5  Reserved
 .int  _interruptDispatch6    ! 018-01B 6  Invalid
Slot Instruction
 .int  _interruptDispatchRsv     ! 01C-01F 7  Reserved
 .int  _interruptDispatchRsv     ! 020-023 8  Reserved
 .int  _interruptDispatch9  ! 024-027 9  CPU bus error

....this continues on down and finally ends with
this..

 .int  _interruptDispatchRsv     ! 1BC-1BF 111 A/D 
Reserved

/* ...Watch Dog Timer
*/
 .int  _interruptDispatch112       ! 1C0-1C3 112 WDT

/* ...Refresh Control
*/
 .int  _interruptDispatch113         ! 1C4-1C7 113 REF

 .end

I am but just a learner here so bear with me while I
ask some dumb questions.....

It looks as though as soon as the microcontroller
begins it is initalizing itself.  Is this what the
vector file is for?
Do all embedded microcontrollers use a file like this
at the beginning of their their boot prom and how much
intialization is necessary?
Is there any documentation about vector files and how
to use them (or other methods)?

Thanks for any help on this.

R.Floyd










__________________________________________________
Do You Yahoo!?
Yahoo! Messenger - Talk while you surf!  It's FREE.
http://im.yahoo.com/

------
Want more information?  See the CrossGCC FAQ, http://www.objsw.com/CrossGCC/
Want to unsubscribe? Send a note to crossgcc-unsubscribe@sourceware.cygnus.com


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]