EmbeddedRelated.com
Forums

Issues with ICC12 & 9s12dp256b & boot loader

Started by zimm...@rpi.edu March 21, 2007
Hi All,
I'm currently using a 9s12DP256B chip from Technological Arts.
I'm using ICC12 v6.15 and the SRecCvt GUI

I'm having a lot of issues compiling a program that will load via the boot laoder. This is my first time using an HC12 chip, I have experience with a c8051 chip.

I tried following the tutorial located here
http://support.technologicalarts.ca/docs/Adapt9S12DP/Application%20Notes/How%20to%20use%20ICC12%20with%20Adapt9S12DP256%20and%20FLASH%20Loader.pdf

I've also scanned a few msg boards but havent found any information that helps me out.

My test program is supposed to turn on the LED on the board, but when i download and reset to EVB mode, nothing happens.

Compiler settings:
Custom target
Memory Address: 0x4000.0x7FFF:0xC000.0xFFFF
Program Memory: 0x1000
Stack Pointer: 0x4000
Expanded Memory Addr: 0xC0000.0xF7FFF

SRecCvt GUI version 1.0.7
Settings
Device: MC9S12Dx256
Memory: Flash
operation: Convert
Input file format: Banked
Output File Format: Linear
S record size: 32

I'm using the standard hcs12dp256.h file that comes with ICC
Any help would be much apreciated! I'm using the board for an independant study and need to get it working some time soon.
Thanks!

Here is my code

main.c

#include "hcs12dp256.h"

void main()

{

DDRP = 0xFF;
PTP = 0xFF;

}
vectors.c

#pragma nonpaged_function _start
extern void _start(void); /* entry point in crt??.s */

#define DUMMY_ENTRY (void (*)(void))0xFFFF

#pragma abs_address:0xefd0

/* change the above address if your vector starts elsewhere
*/
void (*interrupt_vectors[])(void) {
/* to cast a constant, say 0xb600, use
(void (*)())0xb600
*/
DUMMY_ENTRY, /*Reserved $FF80*/
DUMMY_ENTRY, /*Reserved $FF82*/
DUMMY_ENTRY, /*Reserved $FF84*/
DUMMY_ENTRY, /*Reserved $FF86*/
DUMMY_ENTRY, /*Reserved $FF88*/
DUMMY_ENTRY, /*Reserved $FF8A*/
DUMMY_ENTRY, /*PWM Emergency Shutdown*/
DUMMY_ENTRY, /*Port P Interrupt*/
DUMMY_ENTRY, /*MSCAN 4 Transmit*/
DUMMY_ENTRY, /*MSCAN 4 Receive*/
DUMMY_ENTRY, /*MSCAN 4 Error*/
DUMMY_ENTRY, /*MSCAN 4 Wake-up*/
DUMMY_ENTRY, /*MSCAN 3 Transmit*/
DUMMY_ENTRY, /*MSCAN 3 Receive*/
DUMMY_ENTRY, /*MSCAN 3 Error*/
DUMMY_ENTRY, /*MSCAN 3 Wake-up*/
DUMMY_ENTRY, /*MSCAN 2 Transmit*/
DUMMY_ENTRY, /*MSCAN 2 Receive*/
DUMMY_ENTRY, /*MSCAN 2 Error*/
DUMMY_ENTRY, /*MSCAN 2 Wake-up*/
DUMMY_ENTRY, /*MSCAN 1 Transmit*/
DUMMY_ENTRY, /*MSCAN 1 Receive*/
DUMMY_ENTRY, /*MSCAN 1 Error*/
DUMMY_ENTRY, /*MSCAN 1 Wake-up*/
DUMMY_ENTRY, /*MSCAN 0 Transmit*/
DUMMY_ENTRY, /*MSCAN 0 Receive*/
DUMMY_ENTRY, /*MSCAN 0 Error*/
DUMMY_ENTRY, /*MSCAN 0 Wake-up*/
DUMMY_ENTRY, /*Flash*/
DUMMY_ENTRY, /*EEPROM*/
DUMMY_ENTRY, /*SPI2*/
DUMMY_ENTRY, /*SPI1*/
DUMMY_ENTRY, /*IIC Bus*/
DUMMY_ENTRY, /*DLC*/
DUMMY_ENTRY, /*SCME*/
DUMMY_ENTRY, /*CRG Lock*/
DUMMY_ENTRY, /*Pulse Accumulator B Overflow*/
DUMMY_ENTRY, /*Modulus Down Counter Underflow*/
DUMMY_ENTRY, /*Port H Interrupt*/
DUMMY_ENTRY, /*Port J Interrupt*/
DUMMY_ENTRY, /*ATD1*/
DUMMY_ENTRY, /*ATD0*/
DUMMY_ENTRY, /*SCI1*/
DUMMY_ENTRY, /*SCI0*/
DUMMY_ENTRY, /*SPI0*/
DUMMY_ENTRY, /*Pulse Accumulator A Input Edge*/
DUMMY_ENTRY, /*Pulse Accumulator A Overflow*/
DUMMY_ENTRY, /*Timer Overflow*/
DUMMY_ENTRY, /*Timer Channel 7*/
DUMMY_ENTRY, /*Timer Channel 6*/
DUMMY_ENTRY, /*Timer Channel 5*/
DUMMY_ENTRY, /*Timer Channel 4*/
DUMMY_ENTRY, /*Timer Channel 3*/
DUMMY_ENTRY, /*Timer Channel 2*/
DUMMY_ENTRY, /*Timer Channel 1*/
DUMMY_ENTRY, /*Timer Channel 0*/
DUMMY_ENTRY, /*Real Time Interrupt*/
DUMMY_ENTRY, /*IRQ*/
DUMMY_ENTRY, /*XIRQ*/
DUMMY_ENTRY, /*SWI*/
DUMMY_ENTRY, /*Unimplement Intruction Trap*/
DUMMY_ENTRY, /*COP failure reset*/
DUMMY_ENTRY, /*Clock monitor fail reset*/
_start, /*Reset*/
};
I can't see a LED on the techarts board. Is your LED common to 5V or 0V.
The more likely is to 5V, in which case PTP=0xff will turn the LED off.
Try 0x00?

Jonathan

-----Original Message-----
From: 6... [mailto:6...] On Behalf
Of z...@rpi.edu
Sent: Wednesday, 21 March 2007 2:34 PM
To: 6...
Subject: [68HC12] Issues with ICC12 & 9s12dp256b & boot loader

Hi All,
I'm currently using a 9s12DP256B chip from Technological Arts.
I'm using ICC12 v6.15 and the SRecCvt GUI

I'm having a lot of issues compiling a program that will load via the
boot laoder. This is my first time using an HC12 chip, I have experience
with a c8051 chip.

I tried following the tutorial located here
http://support.
s/How%20to%20use%20ICC12%20with%20Adapt9S12DP256%20and%20FLASH%20Loader.
pdf>
technologicalarts.ca/docs/Adapt9S12DP/Application%20Notes/How%20to%20use
%20ICC12%20with%20Adapt9S12DP256%20and%20FLASH%20Loader.pdf

I've also scanned a few msg boards but havent found any information that
helps me out.

My test program is supposed to turn on the LED on the board, but when i
download and reset to EVB mode, nothing happens.

Compiler settings:
Custom target
Memory Address: 0x4000.0x7FFF:0xC000.0xFFFF
Program Memory: 0x1000
Stack Pointer: 0x4000
Expanded Memory Addr: 0xC0000.0xF7FFF

SRecCvt GUI version 1.0.7
Settings
Device: MC9S12Dx256
Memory: Flash
operation: Convert
Input file format: Banked
Output File Format: Linear
S record size: 32

I'm using the standard hcs12dp256.h file that comes with ICC

Any help would be much apreciated! I'm using the board for an
independant study and need to get it working some time soon.
Thanks!

Here is my code

main.c

#include "hcs12dp256.h"

void main()

{

DDRP = 0xFF;
PTP = 0xFF;

}

vectors.c

#pragma nonpaged_function _start
extern void _start(void); /* entry point in crt??.s */

#define DUMMY_ENTRY (void (*)(void))0xFFFF

#pragma abs_address:0xefd0

/* change the above address if your vector starts elsewhere
*/
void (*interrupt_vectors[])(void) {
/* to cast a constant, say 0xb600, use
(void (*)())0xb600
*/
DUMMY_ENTRY, /*Reserved $FF80*/
DUMMY_ENTRY, /*Reserved $FF82*/
DUMMY_ENTRY, /*Reserved $FF84*/
DUMMY_ENTRY, /*Reserved $FF86*/
DUMMY_ENTRY, /*Reserved $FF88*/
DUMMY_ENTRY, /*Reserved $FF8A*/
DUMMY_ENTRY, /*PWM Emergency Shutdown*/
DUMMY_ENTRY, /*Port P Interrupt*/
DUMMY_ENTRY, /*MSCAN 4 Transmit*/
DUMMY_ENTRY, /*MSCAN 4 Receive*/
DUMMY_ENTRY, /*MSCAN 4 Error*/
DUMMY_ENTRY, /*MSCAN 4 Wake-up*/
DUMMY_ENTRY, /*MSCAN 3 Transmit*/
DUMMY_ENTRY, /*MSCAN 3 Receive*/
DUMMY_ENTRY, /*MSCAN 3 Error*/
DUMMY_ENTRY, /*MSCAN 3 Wake-up*/
DUMMY_ENTRY, /*MSCAN 2 Transmit*/
DUMMY_ENTRY, /*MSCAN 2 Receive*/
DUMMY_ENTRY, /*MSCAN 2 Error*/
DUMMY_ENTRY, /*MSCAN 2 Wake-up*/
DUMMY_ENTRY, /*MSCAN 1 Transmit*/
DUMMY_ENTRY, /*MSCAN 1 Receive*/
DUMMY_ENTRY, /*MSCAN 1 Error*/
DUMMY_ENTRY, /*MSCAN 1 Wake-up*/
DUMMY_ENTRY, /*MSCAN 0 Transmit*/
DUMMY_ENTRY, /*MSCAN 0 Receive*/
DUMMY_ENTRY, /*MSCAN 0 Error*/
DUMMY_ENTRY, /*MSCAN 0 Wake-up*/
DUMMY_ENTRY, /*Flash*/
DUMMY_ENTRY, /*EEPROM*/
DUMMY_ENTRY, /*SPI2*/
DUMMY_ENTRY, /*SPI1*/
DUMMY_ENTRY, /*IIC Bus*/
DUMMY_ENTRY, /*DLC*/
DUMMY_ENTRY, /*SCME*/
DUMMY_ENTRY, /*CRG Lock*/
DUMMY_ENTRY, /*Pulse Accumulator B Overflow*/
DUMMY_ENTRY, /*Modulus Down Counter Underflow*/
DUMMY_ENTRY, /*Port H Interrupt*/
DUMMY_ENTRY, /*Port J Interrupt*/
DUMMY_ENTRY, /*ATD1*/
DUMMY_ENTRY, /*ATD0*/
DUMMY_ENTRY, /*SCI1*/
DUMMY_ENTRY, /*SCI0*/
DUMMY_ENTRY, /*SPI0*/
DUMMY_ENTRY, /*Pulse Accumulator A Input Edge*/
DUMMY_ENTRY, /*Pulse Accumulator A Overflow*/
DUMMY_ENTRY, /*Timer Overflow*/
DUMMY_ENTRY, /*Timer Channel 7*/
DUMMY_ENTRY, /*Timer Channel 6*/
DUMMY_ENTRY, /*Timer Channel 5*/
DUMMY_ENTRY, /*Timer Channel 4*/
DUMMY_ENTRY, /*Timer Channel 3*/
DUMMY_ENTRY, /*Timer Channel 2*/
DUMMY_ENTRY, /*Timer Channel 1*/
DUMMY_ENTRY, /*Timer Channel 0*/
DUMMY_ENTRY, /*Real Time Interrupt*/
DUMMY_ENTRY, /*IRQ*/
DUMMY_ENTRY, /*XIRQ*/
DUMMY_ENTRY, /*SWI*/
DUMMY_ENTRY, /*Unimplement Intruction Trap*/
DUMMY_ENTRY, /*COP failure reset*/
DUMMY_ENTRY, /*Clock monitor fail reset*/
_start, /*Reset*/
};
Welcome to the overly complex world of hc12 banked memory. I stick with
this chip because I've always loved Motorola's engineering but this memory
model is my least favorite aspect. I've worked with other 16bit
architectures that had 24bit addressing which made it much easier to write
a compiler to handle large complex programs. The sreccvt program is
indispensible but cryptic - I've never taken the time to really understand
what it does because life is too short.

I've developed programs > 64K for this chip but I've never used the
internal D-bug bootloader. I used an external pod for programming
(D-bug12). Unfortunately this increases the cost of development but does
give one access to C level debugging tools like No-ice.

-rob

On Tue, March 20, 2007 10:33 pm, z...@rpi.edu wrote:
> Hi All,
> I'm currently using a 9s12DP256B chip from Technological Arts.
> I'm using ICC12 v6.15 and the SRecCvt GUI
> I'm having a lot of issues compiling a program that will load via the
> boot laoder. This is my first time using an HC12 chip, I have experience
> with a c8051 chip.
>
> I tried following the tutorial located here
> http://support.technologicalarts.ca/docs/Adapt9S12DP/Application%20Notes/H
> ow%20to%20use%20ICC12%20with%20Adapt9S12DP256%20and%20FLASH%20Loader.pdf
>
> I've also scanned a few msg boards but havent found any information that
> helps me out.
>
> My test program is supposed to turn on the LED on the board, but when i
> download and reset to EVB mode, nothing happens.
>
> Compiler settings:
> Custom target
> Memory Address: 0x4000.0x7FFF:0xC000.0xFFFF
> Program Memory: 0x1000
> Stack Pointer: 0x4000
> Expanded Memory Addr: 0xC0000.0xF7FFF
> SRecCvt GUI version 1.0.7
> Settings
> Device: MC9S12Dx256
> Memory: Flash
> operation: Convert
> Input file format: Banked
> Output File Format: Linear
> S record size: 32
> I'm using the standard hcs12dp256.h file that comes with ICC
>
> Any help would be much apreciated! I'm using the board for an independant
> study and need to get it working some time soon. Thanks!
> Here is my code
> main.c
>
> #include "hcs12dp256.h"
> void main()
>
> {
> DDRP = 0xFF;
> PTP = 0xFF;
> }
>
> vectors.c
>
> #pragma nonpaged_function _start
> extern void _start(void); /* entry point in crt??.s */
>
> #define DUMMY_ENTRY (void (*)(void))0xFFFF
> #pragma abs_address:0xefd0
> /* change the above address if your vector starts elsewhere
> */
> void (*interrupt_vectors[])(void) = {
> /* to cast a constant, say 0xb600, use
> (void (*)())0xb600
> */
> DUMMY_ENTRY, /*Reserved $FF80*/
> DUMMY_ENTRY, /*Reserved $FF82*/
> DUMMY_ENTRY, /*Reserved $FF84*/
> DUMMY_ENTRY, /*Reserved $FF86*/
> DUMMY_ENTRY, /*Reserved $FF88*/
> DUMMY_ENTRY, /*Reserved $FF8A*/
> DUMMY_ENTRY, /*PWM Emergency Shutdown*/
> DUMMY_ENTRY, /*Port P Interrupt*/
> DUMMY_ENTRY, /*MSCAN 4 Transmit*/
> DUMMY_ENTRY, /*MSCAN 4 Receive*/
> DUMMY_ENTRY, /*MSCAN 4 Error*/
> DUMMY_ENTRY, /*MSCAN 4 Wake-up*/
> DUMMY_ENTRY, /*MSCAN 3 Transmit*/
> DUMMY_ENTRY, /*MSCAN 3 Receive*/
> DUMMY_ENTRY, /*MSCAN 3 Error*/
> DUMMY_ENTRY, /*MSCAN 3 Wake-up*/
> DUMMY_ENTRY, /*MSCAN 2 Transmit*/
> DUMMY_ENTRY, /*MSCAN 2 Receive*/
> DUMMY_ENTRY, /*MSCAN 2 Error*/
> DUMMY_ENTRY, /*MSCAN 2 Wake-up*/
> DUMMY_ENTRY, /*MSCAN 1 Transmit*/
> DUMMY_ENTRY, /*MSCAN 1 Receive*/
> DUMMY_ENTRY, /*MSCAN 1 Error*/
> DUMMY_ENTRY, /*MSCAN 1 Wake-up*/
> DUMMY_ENTRY, /*MSCAN 0 Transmit*/
> DUMMY_ENTRY, /*MSCAN 0 Receive*/
> DUMMY_ENTRY, /*MSCAN 0 Error*/
> DUMMY_ENTRY, /*MSCAN 0 Wake-up*/
> DUMMY_ENTRY, /*Flash*/
> DUMMY_ENTRY, /*EEPROM*/
> DUMMY_ENTRY, /*SPI2*/
> DUMMY_ENTRY, /*SPI1*/
> DUMMY_ENTRY, /*IIC Bus*/
> DUMMY_ENTRY, /*DLC*/
> DUMMY_ENTRY, /*SCME*/
> DUMMY_ENTRY, /*CRG Lock*/
> DUMMY_ENTRY, /*Pulse Accumulator B Overflow*/
> DUMMY_ENTRY, /*Modulus Down Counter Underflow*/
> DUMMY_ENTRY, /*Port H Interrupt*/
> DUMMY_ENTRY, /*Port J Interrupt*/
> DUMMY_ENTRY, /*ATD1*/
> DUMMY_ENTRY, /*ATD0*/
> DUMMY_ENTRY, /*SCI1*/
> DUMMY_ENTRY, /*SCI0*/
> DUMMY_ENTRY, /*SPI0*/
> DUMMY_ENTRY, /*Pulse Accumulator A Input Edge*/
> DUMMY_ENTRY, /*Pulse Accumulator A Overflow*/
> DUMMY_ENTRY, /*Timer Overflow*/
> DUMMY_ENTRY, /*Timer Channel 7*/
> DUMMY_ENTRY, /*Timer Channel 6*/
> DUMMY_ENTRY, /*Timer Channel 5*/
> DUMMY_ENTRY, /*Timer Channel 4*/
> DUMMY_ENTRY, /*Timer Channel 3*/
> DUMMY_ENTRY, /*Timer Channel 2*/
> DUMMY_ENTRY, /*Timer Channel 1*/
> DUMMY_ENTRY, /*Timer Channel 0*/
> DUMMY_ENTRY, /*Real Time Interrupt*/
> DUMMY_ENTRY, /*IRQ*/
> DUMMY_ENTRY, /*XIRQ*/
> DUMMY_ENTRY, /*SWI*/
> DUMMY_ENTRY, /*Unimplement Intruction Trap*/
> DUMMY_ENTRY, /*COP failure reset*/
> DUMMY_ENTRY, /*Clock monitor fail reset*/
> _start, /*Reset*/
> };
>
Jonathan Masters schrieb:
> I can't see a LED on the techarts board. Is your LED common to 5V or 0V.
> The more likely is to 5V, in which case PTP=0xff will turn the LED off.
> Try 0x00?
even better, let it flash
> Jonathan
>
> void main()
>
> {
>
> DDRP = 0xFF;
> while(1)
{

PTP = 0xFF;

PTP = 0;
}

}
#define DUMMY_ENTRY (void (*)(void))0xFFFF
but your DUMMY_ENTRY points into the jungle
let it point to _start
hth
Hans
--- In 6..., Hans-Werner wrote:
> > while(1)
> {
>
> PTP = 0xFF;
>
> PTP = 0;
> }
>
> }
> #define DUMMY_ENTRY (void (*)(void))0xFFFF

Woa... how fast did you want that thing to flash? If I do it with no
delay at all, I can't even see it turn on.
Good Evening,

I would strongly recommend not to use DP256B parts, but DP256 only.
Memory is of much better performance.

You are now able to use 23-bit addressing on S12X devices with the
"Global Addressing".
It is physically another paging scheme, but the compiler will do the
work for you.
Of course, as it is a 16-bit only machine, dealing with 23-bit
addresses takes more cycles and is less efficient.
However in many applications, users are not counting cycles and it
could be a way to develop easily.

Interesting to note also is that on the S12X families, there is not
only one PPAGE paging register, but one for each type of memory.
This is much better than on S12 as it means you don't have to keep
juggling with it.

Cheers,
Alban.
--- In 6..., robmilne@... wrote:
>
> Welcome to the overly complex world of hc12 banked memory. I stick with
> this chip because I've always loved Motorola's engineering but this
memory
> model is my least favorite aspect. I've worked with other 16bit
> architectures that had 24bit addressing which made it much easier to
write
> a compiler to handle large complex programs. The sreccvt program is
> indispensible but cryptic - I've never taken the time to really
understand
> what it does because life is too short.
>
> I've developed programs > 64K for this chip but I've never used the
> internal D-bug bootloader. I used an external pod for programming
> (D-bug12). Unfortunately this increases the cost of development but
does
> give one access to C level debugging tools like No-ice.
>
> -rob
>
> On Tue, March 20, 2007 10:33 pm, zimmea@... wrote:
> > Hi All,
> > I'm currently using a 9s12DP256B chip from Technological Arts.
> > I'm using ICC12 v6.15 and the SRecCvt GUI
> >
> >
> > I'm having a lot of issues compiling a program that will load via the
> > boot laoder. This is my first time using an HC12 chip, I have
experience
> > with a c8051 chip.
> >
> > I tried following the tutorial located here
> >
http://support.technologicalarts.ca/docs/Adapt9S12DP/Application%20Notes/H
> >
ow%20to%20use%20ICC12%20with%20Adapt9S12DP256%20and%20FLASH%20Loader.pdf
> >
> > I've also scanned a few msg boards but havent found any
information that
> > helps me out.
> >
> > My test program is supposed to turn on the LED on the board, but
when i
> > download and reset to EVB mode, nothing happens.
> >
> > Compiler settings:
> > Custom target
> > Memory Address: 0x4000.0x7FFF:0xC000.0xFFFF
> > Program Memory: 0x1000
> > Stack Pointer: 0x4000
> > Expanded Memory Addr: 0xC0000.0xF7FFF
> >
> >
> > SRecCvt GUI version 1.0.7
> > Settings
> > Device: MC9S12Dx256
> > Memory: Flash
> > operation: Convert
> > Input file format: Banked
> > Output File Format: Linear
> > S record size: 32
> >
> >
> > I'm using the standard hcs12dp256.h file that comes with ICC
> >
> >
> >
> > Any help would be much apreciated! I'm using the board for an
independant
> > study and need to get it working some time soon. Thanks!
> >
> >
> > Here is my code
> >
> >
> > main.c
> >
> > #include "hcs12dp256.h"
> >
> >
> > void main()
> >
> > {
> >
> >
> > DDRP = 0xFF;
> > PTP = 0xFF;
> >
> >
> > }
> >
> >
> >
> > vectors.c
> >
> > #pragma nonpaged_function _start
> > extern void _start(void); /* entry point in crt??.s */
> >
> > #define DUMMY_ENTRY (void (*)(void))0xFFFF
> >
> >
> > #pragma abs_address:0xefd0
> >
> >
> > /* change the above address if your vector starts elsewhere
> > */
> > void (*interrupt_vectors[])(void) = {
> > /* to cast a constant, say 0xb600, use
> > (void (*)())0xb600
> > */
> > DUMMY_ENTRY, /*Reserved $FF80*/
> > DUMMY_ENTRY, /*Reserved $FF82*/
> > DUMMY_ENTRY, /*Reserved $FF84*/
> > DUMMY_ENTRY, /*Reserved $FF86*/
> > DUMMY_ENTRY, /*Reserved $FF88*/
> > DUMMY_ENTRY, /*Reserved $FF8A*/
> > DUMMY_ENTRY, /*PWM Emergency Shutdown*/
> > DUMMY_ENTRY, /*Port P Interrupt*/
> > DUMMY_ENTRY, /*MSCAN 4 Transmit*/
> > DUMMY_ENTRY, /*MSCAN 4 Receive*/
> > DUMMY_ENTRY, /*MSCAN 4 Error*/
> > DUMMY_ENTRY, /*MSCAN 4 Wake-up*/
> > DUMMY_ENTRY, /*MSCAN 3 Transmit*/
> > DUMMY_ENTRY, /*MSCAN 3 Receive*/
> > DUMMY_ENTRY, /*MSCAN 3 Error*/
> > DUMMY_ENTRY, /*MSCAN 3 Wake-up*/
> > DUMMY_ENTRY, /*MSCAN 2 Transmit*/
> > DUMMY_ENTRY, /*MSCAN 2 Receive*/
> > DUMMY_ENTRY, /*MSCAN 2 Error*/
> > DUMMY_ENTRY, /*MSCAN 2 Wake-up*/
> > DUMMY_ENTRY, /*MSCAN 1 Transmit*/
> > DUMMY_ENTRY, /*MSCAN 1 Receive*/
> > DUMMY_ENTRY, /*MSCAN 1 Error*/
> > DUMMY_ENTRY, /*MSCAN 1 Wake-up*/
> > DUMMY_ENTRY, /*MSCAN 0 Transmit*/
> > DUMMY_ENTRY, /*MSCAN 0 Receive*/
> > DUMMY_ENTRY, /*MSCAN 0 Error*/
> > DUMMY_ENTRY, /*MSCAN 0 Wake-up*/
> > DUMMY_ENTRY, /*Flash*/
> > DUMMY_ENTRY, /*EEPROM*/
> > DUMMY_ENTRY, /*SPI2*/
> > DUMMY_ENTRY, /*SPI1*/
> > DUMMY_ENTRY, /*IIC Bus*/
> > DUMMY_ENTRY, /*DLC*/
> > DUMMY_ENTRY, /*SCME*/
> > DUMMY_ENTRY, /*CRG Lock*/
> > DUMMY_ENTRY, /*Pulse Accumulator B Overflow*/
> > DUMMY_ENTRY, /*Modulus Down Counter Underflow*/
> > DUMMY_ENTRY, /*Port H Interrupt*/
> > DUMMY_ENTRY, /*Port J Interrupt*/
> > DUMMY_ENTRY, /*ATD1*/
> > DUMMY_ENTRY, /*ATD0*/
> > DUMMY_ENTRY, /*SCI1*/
> > DUMMY_ENTRY, /*SCI0*/
> > DUMMY_ENTRY, /*SPI0*/
> > DUMMY_ENTRY, /*Pulse Accumulator A Input Edge*/
> > DUMMY_ENTRY, /*Pulse Accumulator A Overflow*/
> > DUMMY_ENTRY, /*Timer Overflow*/
> > DUMMY_ENTRY, /*Timer Channel 7*/
> > DUMMY_ENTRY, /*Timer Channel 6*/
> > DUMMY_ENTRY, /*Timer Channel 5*/
> > DUMMY_ENTRY, /*Timer Channel 4*/
> > DUMMY_ENTRY, /*Timer Channel 3*/
> > DUMMY_ENTRY, /*Timer Channel 2*/
> > DUMMY_ENTRY, /*Timer Channel 1*/
> > DUMMY_ENTRY, /*Timer Channel 0*/
> > DUMMY_ENTRY, /*Real Time Interrupt*/
> > DUMMY_ENTRY, /*IRQ*/
> > DUMMY_ENTRY, /*XIRQ*/
> > DUMMY_ENTRY, /*SWI*/
> > DUMMY_ENTRY, /*Unimplement Intruction Trap*/
> > DUMMY_ENTRY, /*COP failure reset*/
> > DUMMY_ENTRY, /*Clock monitor fail reset*/
> > _start, /*Reset*/
> > };
> >
> >
>