Motorola HC12 User Manual

Page of 328
Operating Procedures
Initializing the Vector Table
MCUez HC12 Assembler
User’s Manual
MOTOROLA
Operating Procedures
225
NOTE:
The functions
XIRQFunc, SWIFunc,
and
ResetFunc
are published. This
is required because they are referenced in the linker PRM file. All interrupt
functions must be terminated with an RTI instruction.
The vector table is initialized using the linker command VECTOR ADDRESS.
Example:
 LINK test.abs
 NAMES
   test.o
 END
 SEGMENTS
   MY_ROM  = READ_ONLY  0x0800 TO 0x08FF;
   MY_RAM  = READ_WRITE 0x0B00 TO 0x0CFF;
 END
 PLACEMENT
   .data        INTO MY_RAM;
   .text        INTO MY_ROM;
 END
 INIT ResetFunc
 VECTOR ADDRESS 0xFFF2 IRQFunc
 VECTOR ADDRESS 0xFFF4 XIRQFunc
 VECTOR ADDRESS 0xFFF6 SWIFunc
 VECTOR ADDRESS 0xFFF8 OpCodeFunc
 VECTOR ADDRESS 0xFFFE ResetFunc
NOTE:
The statement
INIT ResetFunc
defines the application entry point. Usually,
this entry point is initialized with the same address as the reset vector. The
statement
VECTOR ADDRESS 0xFFF4 XIRQFunc
 specifies that the
address of function
XIRQFunc
 should be written at address
0xFFF4
.
11.4.2  Initializing Vector Table in Assembly Source Files Using a Relocatable Section
Initializing the vector table in the assembly source file requires that all entries
in the table are initialized. Interrupts that are not used must be associated with
a standard handler.
The labels or functions, which should be inserted in the vector table, must be
implemented in the assembler source file or an external reference must be
available for them. The vector table can be defined in an assembly source file
in an additional section containing constant variables.