This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

程序跑飞 Program running out to 0x14(reserved handler)

CPU: Renesas RZ/T1 R7S910018 (ARMv7-R Cortex-R4 600MHz)

Board: RSK+RZT1

Probe: I-jet

IDE: IAR EWARM 7.4

Hi all,

  I've met a problem puzzles me. When I press "Go" to run on full speed, the program runs out to the address 0x14(reserved handler).

  The program had been running well until I implemented a MTU3 TGIA3 interrupt (multi-function timer unit) routine to the program, working together with other three SPI interrupts(SPI transmit/error/idle interrupts) used to interface the LCD.

  Before I implemted the TGIA3 interrupt, the program with SPI interrupts went well. So it seems the interrupts interacting cause the problem. All the interrupts disable the nesting function(nested interrupt is disabled). I use the VIC (vector interrupt controller) to provide the ISR entrance

address.

  I used the ETM to trace the program and found that returning from the TGIA3 interrupt causes the PC to change to 0x14. But when I put a breakpoint at the interrupt exit point and the PC won't goes to 0x14 but goes back to the point before interrupted.

  Here are the screenshots.

http://renesasrulz.com/cfs-file.ashx/__key/communityserver-discussions-components-files/27/c1.PNG

Here are the ETM trace shots before it stops at 0x14.

  I've trapped here for almost a week and greatly hope to obtain help. Thank you all very much!

Parents
  • 有没有可能就是中断嵌套问题或是优先级设置问题?

    现在我们有一个相对完整的程序,没有使用MTU_TGIA3_IRQn 但是用了MTU_TCIV4_IRQn CMTW_CMWI0_IRQnPOE3_OEI1_IRQnECAT_SYNC0_IRQnECAT_SYNC1_IRQnECAT_IRQn,6个中断,首先这几个中断的优先级不同,优先级顺序如下POE3_OEI1_IRQn > MTU_TCIV4_IRQn > CMTW_CMWI0_IRQn > ECAT_SYNC0_IRQn = ECAT_SYNC1_IRQn = ECAT_IRQn

    其次,对应中断的ISR都用” __irq __nested __arm” 设置为nested Enable

    在应用中这几个中断也是根据各自的中断源随机发生,没有出现过类似的问题,我觉得可以你尝试一下,将中断设置为  __irq __nested __arm

Reply
  • 有没有可能就是中断嵌套问题或是优先级设置问题?

    现在我们有一个相对完整的程序,没有使用MTU_TGIA3_IRQn 但是用了MTU_TCIV4_IRQn CMTW_CMWI0_IRQnPOE3_OEI1_IRQnECAT_SYNC0_IRQnECAT_SYNC1_IRQnECAT_IRQn,6个中断,首先这几个中断的优先级不同,优先级顺序如下POE3_OEI1_IRQn > MTU_TCIV4_IRQn > CMTW_CMWI0_IRQn > ECAT_SYNC0_IRQn = ECAT_SYNC1_IRQn = ECAT_IRQn

    其次,对应中断的ISR都用” __irq __nested __arm” 设置为nested Enable

    在应用中这几个中断也是根据各自的中断源随机发生,没有出现过类似的问题,我觉得可以你尝试一下,将中断设置为  __irq __nested __arm

Children
No data