MC56F8002 interrupt reset MCU

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

MC56F8002 interrupt reset MCU

Jump to solution
1,718 Views
jean-francoisle
Contributor III

Hi,

 

Code warrior 8.3.

 

I started a projet on MC56F8002 based on an old code. With the new silicon revision, the MCU is not working properly. After a debugging session, I realized that the MCU reset when an interrupt occurs. If I don't activate interrupts, the MCU do not reset. Here is the line to enable the interrupt __EI(0);. On the old silicon revision (mask 1M53M) there is no problem with interrupts.


Any suggestion?

 

JF

Labels (1)
Tags (1)
0 Kudos
1 Solution
1,467 Views
jean-francoisle
Contributor III

I got it.

In function _EntryPoint() I had this line: INTC_VBA = (int)&_vba >>7;

In the variable declaration section in this file, I put this line: extern unsigned int _vba;


In the linker file, I add the line in bold.

.interrupt_vectors :

{

      # interrupt vectors

    F_vba = .;

     * (interrupt_vectors.text) }

>.p_Interrupts


Seems to work properly. I'm doing test.


Regards.

View solution in original post

0 Kudos
3 Replies
1,467 Views
johnlwinters
NXP Employee
NXP Employee

Make sure the interrupt vectors are located up at the correct Address and that your startup code is telling the core that the vectors are up there. The 8006 has vectors at amuck lower address.

Best Regards,

John L. Winters

Senior Applications Engineer

AMR/EU MCU & MPU AE Group

Freescale Inc.

2100 Elliot Road

This email and any associated attachments have been classified as:

Freescale Confidential and Proprietary

0 Kudos
1,467 Views
jean-francoisle
Contributor III

Hi,

I don't know this MCU. How can I do to verify the interrupt vector address? I suppose this address in define in the linker file (.cmd)

        .p_Interruptsboot  (RWX) : ORIGIN = 0x00001000, LENGTH = 0x0004

        .p_Interrupts  (RWX) : ORIGIN = 0x00001000, LENGTH = 0x000000CC

How to configure the startup code? Is it in the 56F80xx_int.asm? What I have to do?

/////////////////////////////////////////////////

        section startup

        XREF  F_stack_addr

        XREF  F_xROM_to_xRAM

        XREF  F_pROM_to_xRAM

        XREF  F_Ldata_size

        XREF  F_Ldata_ROM_addr

        XREF  F_Ldata_RAM_addr

        org   p:

        GLOBAL Finit_56800_

/////////////////////////////////////////////////


Thanks for your help.

0 Kudos
1,468 Views
jean-francoisle
Contributor III

I got it.

In function _EntryPoint() I had this line: INTC_VBA = (int)&_vba >>7;

In the variable declaration section in this file, I put this line: extern unsigned int _vba;


In the linker file, I add the line in bold.

.interrupt_vectors :

{

      # interrupt vectors

    F_vba = .;

     * (interrupt_vectors.text) }

>.p_Interrupts


Seems to work properly. I'm doing test.


Regards.

0 Kudos