RX63N SCI Interrupt Problem

Our latest RX63N project uses twelve serial ports (SCI1 through SCI12).

All of our serial communicate interfaces start with the example code provided by Renesas.

The first four serial ports (SCI1, SCI2, SCI3 and SCI4) communicate through a current loop interface to eight peripheral devices each.

These four serial ports work properly after testing and debugging.

The next four serial ports (SCI5, SCI6, SCI7 and SCI8) communicate through an RS232 interface to one master device each.

When a message is sent from the master device, the application goes to sleep.

When the e2studio IDE is paused, the debugger shows that the current location is the Excep_UndefinedInst function.

The problem occurs on the first received character, which can be seen in the receive data register.

If I turn off the receive interrupt but leave the receiver enabled, the application continues to run properly, and the sent character can be seen in receive data register.

All four ports exhibit the same behavior.

They all fail on the first received character.

It appears that the interrupt service functions are not being located properly in the vector table.

Our RAM usage is at 98% of the 256K of data memory, and our ROM usage is at 10% of the 2MB of flash memory.

The configuration settings for the serial ports appears to be correct, and we are able to receive one character of data at the specified communication parameters into the receive data register.

What would cause the application to fail to find the interrupt service function?

Any help in resolving this problem would be greatly appreciated.

Thank you.

 

 

 

  • Have you checked the interrupt vector table to see where the vectors are located? It should not be difficult to find them in the memory window in e2 studio (or in the mot-file if you generated one).
  • In reply to FrankL:

    I suspected that the ISRs that I created were not being registering in the vector table, but I did not know how to view the vector table.
    It turns out I forgot to include the vect.h header file in the source file where the ISRs were created.
    The vect.h header file contains the #pragma interrupt directive for every ISR to update the vector table.
  • In reply to David MacPherson:

    David,

    I am glad to hear that you have solved your issue!
    Thank you for sharing your solution with us.

    Mike Clements
    RenesasRulz Moderator